为什么PHP 5.5的OPcache显示零命中?suPHP的罪魁祸首?

Sim*_*ast 9 php suphp opcache

我的(共享)Web主机上启用了PHP 5.5的OPcache扩展,但由于某种原因,它总是在统计信息中报告"0次点击".可能是因为它与suPHP不兼容?

或者任何人有任何其他建议,为什么有0缓存命中?

在此输入图像描述

Ter*_*ryE 8

可以轻松地为CLI和基本GCI启用OPcache,但除非PHP进程持续多个请求,否则您只会在设计方案中看到缓存命中- 例如,在同一请求中多次编译相同的脚本时.(我说设计,因为这样的脚本无法定义全局命名空间实体,如类或函数,因为第二次和后续编译将失败.)

在大多数共享主机配置中,系统管理员将PHP配置为一次性php-cgi执行,即在托管帐户UID内基于每个请求启动PHP映像.这具有简单和安全的优点.这也具有性能差的缺点,因为PHP映像启动开销是基于每个请求引起的,并且由于mmap的SMA在映像关闭时被丢弃,所以任何编译的脚本都不会从请求到请求持续存在.

要使OPcache工作,您需要拥有将在一系列请求中持续存在的PHP进程.一些mod_fcgid模式确实支持这一点,但是如果没有配置的进一步细节,我不能给你任何进一步的指导.抱歉.


Sim*_*ast 5

我被告知,目前没有opcache扩展与suPHP兼容,遗憾的是.

LiteSpeed的suEXEC 可以支持操作码缓存,但仅支持 " 守护进程 "或" 进程组 "模式,而不是标准的" 工作 "模式(请参阅此处的说明).

因此,即使您可以在cPanel或INI中启用opcache,也不会获得缓存命中,因为PHP进程结束并释放RAM.看起来我暂时没有运气.