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

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

我正在设置一个本地服务器来测试配置;它是一个干净的 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

IE它显然被启用了,但同时又被禁用了。

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

答案1

由于某些原因,设置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.iniApache 的(例如/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 status 之类的工具来检查一切是否正常,它将帮助您进行微调。

希望这对某人有帮助。

答案3

我在使用 php-fpm 时遇到了这个问题。我发现在 /etc/php5/fpm/conf.d 中有一个符号链接05-opcache.ini../../mods-available/opcache.ini一个20-opcache.ini指向同一位置的符号链接。这导致了冲突。

我删除了一个(20,因为修改日期较晚),重新启动了 php-fpm,一切恢复正常。

答案4

正确的文件是:/etc/php5/apache2/conf.d/user.ini

相关内容