1

使用 fedora 20 并安装了 php 5.5.8,phpinfo 不会显示任何带有 opcache 的内容。

将以下内容添加到 php.ini

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

但是在我的浏览器中使用 phpinfo 打开一个 php 文件并没有显示任何 opcache,甚至没有显示我添加的设置(是的,我重新启动了 httpd 并且更改同一文件中的其他设置反映在 phpinfo 的输出中)。

寻找cache php让我:

php-opcache.x86_64 : Zend OPcache

很奇怪,因为根据文档opcache 只能编译为共享扩展。

如果您使用 --disable-all 禁用了默认扩展的构建,则必须使用 --enable-opcache 选项编译 PHP 以使 OPcache 可用。

4

2 回答 2

2

事实上,F20 中的 php-opcache 是作为共享扩展构建的:

[root@jupiter local]# rpm -q -l php-opcache
/etc/php-zts.d/opcache-default.blacklist
/etc/php-zts.d/opcache.ini
/etc/php.d/opcache-default.blacklist
/etc/php.d/opcache.ini
/usr/lib64/php-zts/modules/opcache.so
/usr/lib64/php/modules/opcache.so

我有点困惑你仍然修改 php.ini 而不是 /etc/php.d - 这是几年来的流行菜。您应该在 phpinfo 的“已解析的其他 .ini 文件”部分中有 opcache.ini。鉴于您已经修改了 php.ini,我相信您有非常旧的 php.ini,它保留了很长时间并且不再适用于最新的 PHP。

于 2014-06-10T06:20:28.303 回答
1

备查:

看起来安装php-opcache.x86_64将重新安装所有 php 包。所以“正常”的 php 二进制文件带有--disable-all标志,因此安装 opcache 需要安装新的二进制文件。

我不确定这是否正确但正在运行

yum install php-opcache.x86_64

(注意;我使用的是 x86_64)架构,因此它可能会根据您的架构和安装的 Fedora 版本 32/64 x86 版本而有所不同)

安装之后,我的 php.ini 中现在有了 opcache:

该程序使用 Zend 脚本语言引擎:Zend Engine v2.5.0,版权所有 (c) 1998-2014 Zend Technologies 与 Zend OPcache v7.0.4-dev,版权所有 (c) 1999-2014,由 Zend Technologies 与 Xdebug v2。 2.5,版权所有 (c) 2002-2014,作者 Derick Rethans

于 2014-06-10T06:14:06.283 回答