如何在 Debian 中启用 OPcache?

如何在 Debian 中启用 OPcache?

刚刚安装了 php5-fpm。所有消息来源都说装甲运兵车模块已被替换为OP缓存并且它是默认编译的但未启用。

我该如何启用此模块?我在服务器上找不到 opcache.so 文件

我已检查过/usr/lib/php5/etc/php5找不到。

php -v
PHP 5.4.4-14+deb7u4 (cli) (built: Aug 23 2013 14:37:41)

答案1

您可以像 shaun m 所说的那样更新 PHP,或者如果您不想这样做,您可以从 PECL 安装 zendopcache

检查最新版本这里,这将安装版本 7.0.3。

通过 php-pear 安装“pecl”

`sudo apt-get install -y php-pear`

安装构建依赖项

sudo apt-get install -y build-essential php5-dev

安装 Zend OpCache

sudo pecl install zendopcache-7.0.3

找到opcache.so的位置

sudo find / -name 'opcache.so'

我的是

/usr/lib/php5/20100525/opcache.so

现在创建 opcache.ini

sudo vim /etc/php5/mods-available/opcache.ini

添加此信息

zend_extension=/usr/lib/php5/20100525/opcache.so # File path from above
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

现在为 conf 文件创建一个符号链接

sudo ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

重启服务

sudo service php5-fpm restart
sudo service apache2 restart

确认安装

php -v

应该提到

Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

然后(可选)完成清理

sudo apt-get remove --purge build-essential php5-dev

参考

答案2

OPCache 仅在新版 PHP 5.5 中默认启用和编译,而不是 Wheezy 附带的 5.4。如果您想在 Debian 中使用 OPCache 和 PHP 5.5,您必须添加 dotdeb 存储库(见下文)并从那里安装。

deb http://packages.dotdeb.org wheezy-php55 all 
deb-src http://packages.dotdeb.org wheezy-php55 all

答案3

补充 Jeremy Davis 的回答......

如果您的 /tmp 目录被挂载为“noexec”(阻止执行写入该目录的脚本,这在面向公众的服务器上很常见),则 pecl install 命令将会失败,如下所示:

shtool at '/tmp/pear/temp/zendopcache/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.

为了避免这种情况,您可以将 /tmp 分区重新挂载为 exec,然后 pecl install,然后再重新挂载为 noexec,如下所示:

mount -o remount,exec /tmp
pecl install zendopcache
mount -o remount,noexec /tmp

在与我们的系统管理员确认这没问题之后,我尝试在生产服务器上进行操作,并且它运行良好(无论如何,之后您必须重新启动 PHP 进程(无论是 FPM 还是 Apache 模块),因此在负载非常高的服务器上这可能不是一个好主意,但对于轻度使用的公共服务器,整个过程似乎运行良好。

答案4

您可以安装 APC whit pecl

pecl install apc

安装它需要 php-pear 和 php-dev。

或者你可以使用 apt-get 安装

apt-get install php5-apc

相关内容