Как правильно включить OPCache PHP 5.5 в Ubuntu 14.04?


10

Я настраиваю локальный сервер для тестирования конфигураций; это чистый сервер 14.04 LAMP, выбранный при установке ОС.

Если я правильно понимаю, OPCache поставляется с PHP 5.5 ( php -vподтверждает это), но в отключенном состоянии. Я следовал советам Интернета, чтобы включить его, однако я получаю смешанные сообщения о том, было ли это успешно.

Мой php.iniимеет

zend_extension=/usr/lib/php5/20121212/opcache.so
opcache.enable=1
opcache.enable_cli=1

все же php -i, после перезагрузки машины, говорит мне

Opcode Caching => Disabled
Optimization => Disabled
Startup Failed => Opcode Caching is disabled for CLI

opcache.enable => On => On
opcache.enable_cli => Off => Off

то есть он явно включен и одновременно отключен.

Возможно ли включение OPCache с помощью пакета PHP репозитория 14.04, или мне нужно скомпилировать PHP из исходного кода?

Ответы:


8

По некоторым причинам настройка fast_shutdown=1вызывала проблемы и препятствовала запуску OPCache. После установки 0OPCache успешно запущен и работает (возможно, это связано с этой ошибкой ?).

Поэтому все, что нужно для включения OPCache - это установить

; Determines if Zend OPCache is enabled
opcache.enable=1

в Apache с php.iniпоследующим перезапуском сервера

service apache2 restart

Примечание: php -iимеет тенденцию использовать отличное php.iniот Apache (например /etc/php5/cli/php.ini), отсюда и противоречивое расхождение в исходном вопросе.


Это не решило мою проблему. Есть еще идеи? Я использую php5-fpm и редактирую правильный php.ini (быстрое завершение работы изменилось с 1 на 0 в PHPInfo), и я перезапустил php5-fpm, а также nginx
Maciej Swic

Для меня все та же проблема: / logs: [Sat Jun 13 19: 54: 33.435550 2015] [core: note] [pid 19088] AH00060: ошибка сегмента $ PHP Предупреждение: модуль 'Zend OPcache' уже загружен в Unknown в строке 0 PHP Предупреждение: Zend OPcache: регистрация модуля не удалась! в Неизвестно на линии 0
Codium

Я понял это. Я установил opcache через sudo php5enmod opcache
Codium

Так что, если /etc/php5/cli/php.iniневерно, каков правильный путь?
Цянь Чен

2

В течение дня я столкнулся с точно такой же проблемой и рад, что решил ее следующим образом. Хотя приведенный выше ответ помечен как ответ, из комментариев к этому ответу ясно, что он не полностью отвечает на вопрос.

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

/etc/php5/cli/conf.d 

Затем введите следующее там

zend_extension=opcache.so
opcache.memory_consumption=128
opcache.max_accelerated_files=2500
opcache.interned_strings_buffer=8
opcache.revalidate_freq=60
opcache.fast_shutdown=1

Не забудьте перезапустить Apache

Используйте такой инструмент, как статус Opcache, чтобы проверить, все ли в порядке, и он поможет вам с точной настройкой областей.

Надеюсь, что это помогает кому-то.


1

Я столкнулся с этим при использовании php-fpm. Я обнаружил в /etc/php5/fpm/conf.d , что существует символическая ссылка 05-opcache.iniна ../../mods-available/opcache.iniи один20-opcache.ini указывающий на то же место. Это было причиной конфликта.

Я удалил один (20, поскольку у него была более поздняя дата модификации), перезапустил php-fpm, и все вернулось.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.