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