PHP 5.5 Zend OPcache не работает при компиляции в Ubuntu 14.04

1

Я скомпилировал php 5.5.27 на Ubuntu 14.04 как часть Nginx 1.8.0 с использованием PHP-FPM и не могу понять, почему он не работает.

У меня есть следующие файлы php.ini в системе. Я не использую Apache, так что третий вышел... так что выходит 1-й два:

/srv/etc/web_x/php/php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini 

Когда я запускаю nginx, я вижу на своей странице phpinfo.php(secure), что я указываю на свой скомпилированный php.ini, то есть:

Loaded Configuration File   /srv/etc/web_x/php/php.ini

Однако информация об Zenc OPcache отсутствует, поэтому она не работает.

Единственное упоминание о opcache заключается в настройках параметров --enable-opcache. Полные параметры настройки в соответствии с phpinfo (я использую скрипт с переменными, намного проще представить его таким образом, как с переменными):

'./configure' '--prefix=/srv/apps/web_x/php' '--with-config-file-path=/srv/etc/web_x/php' '--with-config-file-scan-dir=/srv/etc/web_x/php/conf.d' '--with-curl' '--with-pear' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-freetype-dir' '--with-t1lib' '--with-mcrypt' '--with-mhash' '--with-mysql' '--with-mysqli' '--with-pgsql' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-openssl' '--with-xmlrpc' '--with-xpm-dir' '--with-xsl' '--with-bz2' '--with-gettext' '--with-readline' '--with-fpm-user=wwx' '--with-fpm-group=wwx' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--with-snmp' '--disable-debug' '--enable-opcache' '--enable-fpm' '--enable-cli' '--enable-gd-native-ttf' '--enable-inline-optimization' '--enable-json' '--enable-exif' '--enable-wddx' '--enable-zip' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-mbstring' '--enable-soap' '--enable-sockets' '--enable-shmop' '--enable-dba' '--enable-shared' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg'

Странная вещь, если я посмотрю на настройки, которые я вижу, что показывает, что я включил Zend OPcache для моей компиляции, но не включен для установленной Ubuntu PHP CLI install:

/srv/etc/web_x/php/php.ini:[opcache]
/srv/etc/web_x/php/php.ini:opcache.enable=1
/srv/etc/web_x/php/php.ini:opcache.enable_cli=1
...

/etc/php5/cli/php.ini:[opcache]
/etc/php5/cli/php.ini:;opcache.enable=0
/etc/php5/cli/php.ini:;opcache.enable_cli=0
...

Тем не менее, если я проверю Ubuntu PHP CLI, я вижу:

php --version

PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies 
  • 0
    проверьте оставшуюся часть phpinfo (), она покажет вам, какие INI-файлы загружаются / анализируются. возможно, он включен в другом файле, загруженном ПОСЛЕ основного cli / php.ini
Теги:
nginx
opcache

1 ответ

2

Только что найденное решение... добавьте следующее в конец файла php.ini:

zend_extension=opcache.so

Это обсуждается в руководстве по установке PHP на php.net, но я помню, что прочитал, что это больше не требовалось, хотя это явно (возможно, я напомнил неправильно b/c один раз, когда требуется путь к общей библиотеке, и это ясно нет).

Я бы ожидал, что компиляция PHP 5.5 с помощью --enable-opcache могла бы справиться с этим, но это не так. Возможно, для будущей версии PHP ;-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню