Як правильно увімкнути OPCache PHP 5.5 в Ubuntu 14.04?


10

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

Якщо я правильно розумію, 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. Після того, як це було встановлено 0, OPCache успішно працює (можливо, пов’язаний із цією помилкою ?).

Тому все, що потрібно для включення 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: message] [pid 19088] AH00060: seg fault $ PHP Попередження: Модуль 'Zend OPcache' вже завантажений у невідомому рядку 0 PHP Попередження: Zend OPcache: реєстрація модуля не вдалася! в Невідомо на рядок 0
Кодіум

Я зрозумів це. Я встановити opcache через Судо php5enmod opcache
Codium

Тож якщо /etc/php5/cli/php.iniнеправильний, який правильний шлях?
Qian Chen

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

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

Використовуйте такий інструмент, як стан 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.