如何在Ubuntu 14.04中正确启用PHP 5.5的OPCache?


10

我正在设置本地服务器以测试配置;这是一台干净的14.04 LAMP服务器,在操作系统安装期间选择。

如果我理解正确,OPCache随PHP 5.5一起提供(php -v确认这一点),但处于禁用状态。我已经按照Internet的建议启用了它,但是我收到了有关是否成功的混合消息。

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

即,它显然已启用,同时已禁用。

14.04存储库PHP软件包是否可以启用OPCache,还是需要从源代码编译PHP?

Answers:


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(PHPInfo中的快速关闭从1更改为0),我确实重新启动了php5-fpm以及nginx
Maciej Swic 2015年

对我来说仍然是同样的问题:/日志:[Sat Jun 13 19:54:33.435550 2015] [core:notice] [pid 19088] AH00060:seg fault $ PHP警告:模块“ Zend OPcache”已在第0行PHP中加载警告:Zend OPcache:模块注册失败!在第0行上的“未知”中
2015年

我知道了。我已经通过sudo php5enmod opcache安装了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,一切都恢复了。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.