启用 PHP 5.5 OPCache

Posted

技术标签:

【中文标题】启用 PHP 5.5 OPCache【英文标题】:Enable PHP 5.5 OPCache 【发布时间】:2015-05-08 02:39:00 【问题描述】:

配置OPCacheas recomanded后,不工作了。

那么,如何调试 OPCache 看看问题出在哪里?

或者我错过了什么?

我的配置:

php.ini

php -v

在代码中

opcache_get_status(); // return false
//but
extension_loaded('Zend OPcache') // return true

【问题讨论】:

我已经在这个标签上回答了这个问题 2 或 3 次。 Opcache 在从共同父进程派生的进程之间使用 SMA。由于 CLI 调用的范围是单个请求,因此在 CLI 上下文中执行时它什么也不做。搜索以前的 [opcache] Qs 以获取更多详细信息。 我没有在 CLI 上下文中执行,它是通过 apache 在网站上执行的。不过我会看标签的,谢谢! 在这种情况下,cli php -v 不相关。您需要 mod_php5 版本,并且您需要将任何 opcache_* API 调用作为 Web 请求事件运行,如果只是来自 localhost URI 的 wget 以获得有意义的诊断 【参考方案1】:

我有同样的问题。我在C:\wamp\bin\apache\apache2.4.17\bin 位置编辑了php.ini 文件并解决了问题。但是在我在C:\wamp\bin\php\php5.6.15 路径中编辑php.ini 之前。 你应该在C:\wamp\bin\apache\apache2.4.17\bin 路径中编辑php.ini 文件。我正在享受 OPCache 的速度!

【讨论】:

【参考方案2】:

已经有一段时间了,所以我想你已经从这个问题上移开了,但万一你还没有。注意到您正在运行 Xdebug...

您是否检查过您的 php.ini 以确保以下不是问题?

If you want to use OPcache with » Xdebug, you must load OPcache before Xdebug.

http://php.net/manual/en/opcache.installation.php

可能值得一提的另一件事是您不需要指定共享库的路径。以下内容就足够了:

zend_extension=opcache.so

【讨论】:

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

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

PHP5.5+启用OPCache

启用Esxi 5.5 SSH 功能

日志文件未在 Laravel 5.5 中写入

centos 6 编译安装php-5.4/5.5(lamp模式)

PHP 5.5 OPCache 不适用于 apache