启用 Opcache 不起作用

Posted

技术标签:

【中文标题】启用 Opcache 不起作用【英文标题】:Enabling Opcache Not Working 【发布时间】:2014-12-16 13:11:15 【问题描述】:

我正在尝试启用 Opcache,但由于某种原因,在编辑我的 php.ini 文件并重新启动 apache(甚至重新启动服务器)后,它仍然没有启用。运行测试我可以看到 php 文件位置:

Loaded Configuration File   /etc/php5/apache2/php.ini

在我添加的那个文件中:

zend_extension=/usr/lib/php5/20121212/opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

zend 扩展的位置由 locate opcache.so 定义。这没有用。然后我注意到 php 正在加载一个附加文件 /etc/php5/apache2/conf.d/05-opcache.ini。在该文件中,它看起来像:

; configuration for php ZendOpcache module
; priority=05
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

但是,重启 apache 后它仍然无法启用。以下是我的 phpinfo() 输出:

Opcode Caching  Disabled

我怎样才能让它启用?

【问题讨论】:

多年以后,我有同样的问题,没有答案解决。 :( 我正好跑到the same issue... 仍然没有答案... 【参考方案1】:

phpinfo() 的输出中,查看下面列出的.ini 文件:

已解析的其他 .ini 文件

可能有类似的东西

/usr/local/php5/php.d/20-extension-opcache.ini

确保在此文件中设置了opcache.enable=1

【讨论】:

谢谢先生。这让我发疯,就像它工作一样,然后运行 ​​sudo apachectl restart【参考方案2】:

如果一切都失败了,你可以试试:

sudo yum install php-opcache

解决了我的 Fedora PHP 7.2 版本的问题。

原来我没有安装 opcache(一个关键的问题是 phpinfo() 的“已解析的其他 .ini 文件”部分缺少 .ini 文件)。

【讨论】:

【参考方案3】:

检查 php.ini 中的 [opcache] 部分

[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0

【讨论】:

不,已被注释掉。即使取消注释并设置为 1,我仍然遇到同样的问题。【参考方案4】:

您可能正在寻找 ini 文件位置

cat /etc/php.d/10-opcache.ini

【讨论】:

【参考方案5】:

首先这样做

sudo apt-get install libpcre3-dev

然后

sudo pecl install zendopcache-beta

【讨论】:

以上是关于启用 Opcache 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 wamp 中为 php 启用 opcache

启用 Hystrix 后 Autowire 不起作用

启用 php_openssl 不起作用

为啥启用 SSL 时 Charles Proxy 不起作用?

启用 ProGuard 规则时 Gson 解析不起作用

启用迁移不起作用