如何判断PHP OPcache是否已启用?

lnxxn5zx  于 2023-04-19  发布在  PHP
关注(0)|答案(4)|浏览(236)

我正在尝试在我的服务器上启用opCache(ubuntu 12.04 LTS,运行apache 2.4.7PHP Version 5.5.10-1+deb.sury.org~precise+1)。
在开始做任何事情之前,我读了this highly relevant post,它告诉我默认情况下opCache是禁用的,我必须手动启用它。
我进入php.ini,发现没有opcache.so的文本,而且与opcache相关的所有内容都被注解掉了。像这样:

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

; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0

这是可以的,因为那个人告诉我它被禁用了。但是当我咨询phpinfo();时,它向我显示了以下内容(根据我的理解,它告诉我opCache已经被使用了)。

那么我的opcache是否已启用和使用,我如何查看/验证它?

vptzau2j

vptzau2j1#

相信你的phpinfo(),你已经运行了必要的共享模块,否则它不会出现。
另外,你的opcache确实是启用的,但只针对web,而不是cli。库的默认值是针对web启用的,所以,要disable取消注解以分号开头的行,如下所示:

opcache.enable=0

如前所述,对于命令行PHP使用,默认值是禁用的,要启用它,请取消注解并设置为1

opcache.enable_cli=1

以下是所有运行时参数的列表,以及进一步参考的默认值:http://www.php.net/manual/en/opcache.configuration.php
更新:截至2020年,该库可能不再维护,请参阅下面的评论以了解其他可能的选项。
如果你想要一个很酷的web监视器页面(就像apc.php为apc所做的那样),试试这个:https://github.com/rlerdorf/opcache-status

oyxsuwqo

oyxsuwqo2#

出于某种原因,有很多关于PHP OPcache for PHP v5.5(第一个支持它的版本)的相互矛盾的文档,一些网页说它默认启用,而其他人说它是编译的,但默认不启用。
仅凭我的记忆,我想我见过PHP 5.5和5.6安装时,OPcache确实编译过,但尚未启用。这可以解释为什么默认php.ini行显示为禁用。混淆可能是由于PHP可以编译的各种方式。
无论如何,由于各种原因,PHP 7+ pretty much always似乎默认启用了OPcache,并且再次避免复杂的讨论:正在编译
所有这一切都说,OP问题实际上是为了检查OPcache是否启用(仅)。
为此,有一个special functionopcache_get_status,它也可以接受数组。展望未来,这个函数可能会变得更受欢迎,因为它比php.ini更适合解释OPcache配置设置,并且可以在各种脚本中使用等。
这里有一个简单的例子:

<?php (is_array(opcache_get_status()) ? 'enabled' : 'disabled') ?>

参考:https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm?comment=25376

yzckvree

yzckvree3#

如前所述,phpinfo()显示模块安装的状态。
但是,使用OPcache functions可以找到更多有用的状态和配置,以便进一步调试。

opcache_get_configuration(): array|false

上面的函数返回该高速缓存示例的配置信息。例如,您可以看到opcache.enableopcache.enable_cli的设置值。

opcache_get_status(): array|false

上面的函数返回关于内存缓存示例的状态信息。如果OPCache被禁用,则此函数返回false。

wqnecbli

wqnecbli4#

在docker容器/任何linux中:

php -i | grep 'opcache.enable'
# or the entire configuration of opcache:
# php -i | grep 'opcache'

相关问题