Назад | Перейти на главную страницу

Как включить OPcache в Debian?

Только что установил php5-fpm. Все источники говорят, что apc модуль заменен на OPcache и он компилируется по умолчанию, но не включен.

Как я могу включить этот модуль. Я не могу найти файл opcache.so на своем сервере

я проверил /usr/lib/php5 и /etc/php5 но не могу найти.

php -v
PHP 5.4.4-14+deb7u4 (cli) (built: Aug 23 2013 14:37:41)

Вы можете обновить PHP, как говорит Шаун М., или, если вы не хотите этого делать, вы можете установить zendopcache из PECL

Проверить последнюю версию Вот, это устанавливает версию 7.0.3.

Установите "pecl" через php-pear

`sudo apt-get install -y php-pear`

Установить зависимости сборки

sudo apt-get install -y build-essential php5-dev

Установите Zend OpCache

sudo pecl install zendopcache-7.0.3

Найдите расположение opcache.so

sudo find / -name 'opcache.so'

Мой

/usr/lib/php5/20100525/opcache.so

Теперь создайте opcache.ini

sudo vim /etc/php5/mods-available/opcache.ini

Добавьте эту информацию

zend_extension=/usr/lib/php5/20100525/opcache.so # File path from above
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Теперь создайте символическую ссылку для файла conf

sudo ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

Перезапустить сервисы

sudo service php5-fpm restart
sudo service apache2 restart

Подтвердите установку

php -v

Следует упомянуть о

Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Затем (необязательно) закончите очисткой

sudo apt-get remove --purge build-essential php5-dev

Ссылка

OPCache включен и компилируется по умолчанию только в новом PHP 5.5, а не в версии 5.4, поставляемой с Wheezy. Если вы хотите использовать OPCache и PHP 5.5 в Debian, вам нужно добавить репозитории dotdeb (см. Ниже) и выполнить установку оттуда.

deb http://packages.dotdeb.org wheezy-php55 all 
deb-src http://packages.dotdeb.org wheezy-php55 all

Чтобы добавить к ответу Джереми Дэвиса ...

В случае, если ваш каталог / tmp смонтирован как «noexec» (предотвращая выполнение написанных в нем сценариев, что является обычным для общедоступных серверов), команда установки pecl завершится ошибкой следующим образом:

shtool at '/tmp/pear/temp/zendopcache/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.

Чтобы избежать этого, вы можете перемонтировать раздел / tmp как exec, затем установить pecl, а затем перемонтировать как noexec, например:

mount -o remount,exec /tmp
pecl install zendopcache
mount -o remount,noexec /tmp

После проверки с нашим системным администратором, что все в порядке, я попробовал его на производственном сервере, и он работал отлично (вам все равно придется перезапустить свой PHP-процесс (будь то FPM или модуль Apache) после этого, так что, вероятно, не лучший идея на сервере с очень высокой нагрузкой, но для слабо используемых публичных серверов весь процесс, кажется, работает нормально.

Вы можете установить APC whit pecl

pecl install apc

Для его установки необходимы php-pear и php-dev.

Или вы можете установить whit apt-get

apt-get install php5-apc