在Ubuntu 14.04上编译时,PHP 5.5 Zend OPcache未运行

时间:2015-08-05 17:46:48

标签: php ubuntu nginx opcache

我在Ubuntu 14.04上编译了PHP 5.5.27作为Nginx 1.8.0的一部分,使用PHP-FPM部署,并且无法弄清楚它为什么不起作用。

我在系统上有以下php.ini文件。我没有使用Apache,所以第三个出局......所以留下了前两个:

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

当我启动nginx时,我从我的phpinfo.php(安全)页面看到我指向我编译的php.ini,即:

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

但是没有Zend 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安装启用:

/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 

1 个答案:

答案 0 :(得分:2)

刚刚找到的解决方案...将以下内容添加到php.ini文件的末尾:

zend_extension=opcache.so

在php.net上的PHP安装指南中对此进行了讨论,但我记得已经读过这个不再需要了,虽然它很明显(也许我曾经错误地调用了b / c一次,共享库的路径是必需的它显然不是。)

我原本以为使用--enable-opcache进行编译的PHP 5.5可以处理这个问题但事实并非如此。也许是为了未来的PHP版本; - )