我正在尝试在我的服务器上启用opCache(ubuntu 12.04 LTS
运行apache 2.4.7
时PHP Version 5.5.10-1+deb.sury.org~precise+1
).
在开始做任何事情之前,我读了这篇高度相关的帖子,告诉我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
Run Code Online (Sandbox Code Playgroud)
这没关系,因为这个人告诉它被禁用了.但是,当我查阅phpinfo();
它时,向我显示以下内容(根据我的理解,它告诉我已经使用了opCache).
我的opcache是否已启用并使用,如何查看/验证它?
Ray*_*Ray 35
相信你phpinfo()
,你已经运行了必要的共享模块,或者它不会出现.
此外,您的opcache确实已启用,但仅适用于Web,而不是cli.库的默认值是为web启用的,因此要禁用以分号开头取消注释行,如下所示:
opcache.enable=0
Run Code Online (Sandbox Code Playgroud)
如上所述,对于命令行php使用,默认为禁用,启用它,取消注释并设置为1
opcache.enable_cli=1
Run Code Online (Sandbox Code Playgroud)
以下是所有运行时参数的列表,以及用于进一步参考的默认值:http://www.php.net/manual/en/opcache.configuration.php
如果你想要一个很酷的网络监控页面(如apc.php为apc做的那样)试试这个:https: //github.com/rlerdorf/opcache-status
由于某些原因,关于 PHP OPcache for PHP v5.5(第一个支持它的版本)有很多相互冲突的文档,一些网页说默认情况下启用它,而另一些网页则说默认情况下它已编译,但未启用。
仅凭我的记忆,我想我见过 PHP 5.5 和 5.6 安装,其中 OPcache 确实已编译但尚未启用。这可以解释为什么默认php.ini
行显示为禁用。这种混乱可能是由于 PHP 的编译方式多种多样。
无论如何,由于各种原因,PHP 7+ 似乎总是默认启用 OPcache,并且再次避免复杂的讨论:编译。
话虽如此,OP 问题实际上是为了检查 OPcache 是否启用(仅)。
为此,有一个特殊的函数 opcache_get_status
,它也可以接受数组。展望未来,该函数可能会变得更加流行,因为它更适合解释 OPcache 配置设置,而不是php.ini
可以在各种脚本等中使用。
这是一个简单的例子:
<?php (is_array(opcache_get_status()) ? 'enabled' : 'disabled') ?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
48764 次 |
最近记录: |