RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
linux:apc


PHP: APC opcache

APC крайне популярный даже в 2016 году опкэш.

Установка

Centos 6

# yum install php-pecl-apc

Версия в base репозитории

Name        : php-pecl-apc
Arch        : i686
Version     : 3.1.9
Release     : 2.el6
Size        : 96 k
Repo        : base
Summary     : APC caches and optimizes PHP intermediate code
URL         : http://pecl.php.net/package/APC
License     : PHP
Description : APC is a free, open, and robust framework for caching and optimizing PHP
            : intermediate code.

Версия в Atomic репозитории

<code>
Name        : php-pecl-apc
Arch        : i686
Version     : 3.1.15
Release     : 0.6.svn329913.el6.art
Size        : 140 k
Repo        : atomic
Summary     : APC caches and optimizes PHP intermediate code
URL         : http://pecl.php.net/package/APC
License     : PHP
Description : APC is a free, open, and robust framework for caching and optimizing PHP
            : intermediate code.

Debian 7

# apt-get install php-apc

Если используется репозиторий dotdeb

# apt-get install php5-apc

pecl

APC можно установить и через pecl

# pecl install apc

Но для этого нужно дополнительно ставить devel-пакеты, gcc и др.

# yum install httpd-devel gcc make php-devel php-pear pcre-devel 

Иначе можно словить такую ошибку

/usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h: No such file or directory
compilation terminated.
make: *** [apc.lo] Error 1
ERROR: `make' failed

Конфигурационный файл apc.ini

Пример конфигурационного файла

[APC]
extension=apc.so
apc.enabled=1
;Only set to 1 while debugging
apc.enable_cli=0
apc.shm_segments=1

;32M per WordPress install
apc.shm_size=256M

;Relative to the number of cached files (you may need to watch your stats for a day or two to find out a good number)
apc.num_files_hint=7000

;Relative to the size of WordPress
apc.user_entries_hint=4096

;The number of seconds a cache entry is allowed to idle in a slot before APC dumps the cache
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl=3600

;Setting this to 0 will give you the best performance, as APC will
;not have to check the IO for changes. However, you must clear 
;the APC cache to recompile already cached files. If you are still
;developing, updating your site daily in WP-ADMIN, and running W3TC
;set this to 1
apc.stat=1

;This MUST be 0, WP can have errors otherwise!
apc.include_once_override=0

;Allow 2 seconds after a file is created before it is cached to prevent users from seeing half-written/weird pages
apc.file_update_protection=2

;Leave at 2M or lower. WordPress does't have any file sizes close to 2M
apc.max_file_size=2M

;Ignore files
apc.filters = "/var/www/apc.php"

apc.cache_by_default=1
apc.use_request_time=1
apc.slam_defense=0
apc.mmap_file_mask=/var/www/temp/apc.XXXXXX
apc.stat_ctime=0
apc.canonicalize=1
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
apc.lazy_classes=0
apc.lazy_functions=0

Описание опций на сайте PHP.

Как отключить APC и включить только для некоторых сайтов

Отключаем APC по-умолчанию (apc.ini)

extension=apc.so
apc.enabled=1
apc.cache_by_default=0

Включаем на уровне виртуального хоста или через .htaccess файл.

<IfModule mod_php5.c>
php_flag apc.cache_by_default On
</IfModule>

Веб-интерфейс

У APC есть встроенный админ-интерфейс. Для активации необходимо скопировать apc.php в желаемый каталог

CentOS

# cp apc.php /var/www/html/apc.php

Debian

# cp /usr/share/doc/php-apc/apc.php /var/www/html/apc.php

Но если для PHP вы используете репозиторий dotdeb, то файла apc.php у вас не будет. В каталоге /usr/share/doc/php5-apc/ где казалось бы он должен быть только файл changelog.Debian.gz

# find / -type f -name apc.php*
/usr/share/phpmyadmin/libraries/import/upload/apc.php

apc.php можно достать из .deb пакета - http://ftp.us.debian.org/debian/pool/main/p/php-apc/php-apc_3.1.13-1_amd64.deb

pecl

Если установка производилась через pecl, то apc.php должен быть в каталоге /usr/share/pear/apc.php

Проверка

При попытке зайти по адресу http://foobar.com/apc.php

появится сообщение You need to set a password at the top of apc.php before this will work!

Устанавливаем логин и пароль для доступа к APC

defaults('ADMIN_USERNAME','apc');               // Admin Username
defaults('ADMIN_PASSWORD','password');          // Admin Password - CHANGE THIS TO ENABLE!!!

Альтернативный админ интерфейс для APC

Ошибки

PHP Startup: apc.shm_size now uses M/G suffixes

Ошибка PHP Warning: PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files решается просто

Необходимо указать размер кэша в мегабайтах "M" или гигабайтах "G"

Вместо

apc.shm_size=256

должно быть указано

apc.shm_size=256M

phpmyadmin не работает с APC

Ошибка

PHP Fatal error:  Class 'PMA_Error_Handler' not found in .../phpMyAdmin/libraries/common.inc.php on line X
PHP Fatal error:  Call to undefined function PMA_getenv() in .../phpMyAdmin/libraries/common.inc.php on line X

Отключаем через .htaccess (см. выше) или через виртуальный хост

<Directory /var/www/phpMyAdmin/>
    php_admin_value apc.enabled 0
</Directory>

Unable to allocate memory for pool

Ссылки

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
linux/apc.txt · Последнее изменение: 2018/06/21 02:49 (внешнее изменение)