1

我有运行 Opcache 的 PHP FPM 5.5 - 以下是我的 Opcache 设置(非常标准):

; Opcache Configuration
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=50000
opcache.fast_shutdown=1
opcache.revalidate_freq=120

在 PHP FPM 下,我运行了许多不同的域,这些域具有不同的池,使用动态来启动最小/最大等数量的进程 - 这运行良好。

我想问:opcache 是否像 APC 一样按域运行?

很难找到有关 Opcache 的每个域因素的任何信息。

谢谢你

4

1 回答 1

3

如果要按域使用 OpCache(虚拟主机),则必须为每个域创建 php-wrapper,并将具有不同目录的 PHPRC 变量设置为 php.ini。

两个虚拟主机的两个包装器:

foo 包装器- /var/www/foo/cgi-bin/php5-wrapper

#!/bin/sh
PHPRC=/etc/php5/foo/
export PHPRC
#export PHP_FCGI_MAX_REQUESTS=5000
#export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php

并创建 /etc/php5/foo/php.ini 文件

条形包装器- /var/www/bar/cgi-bin/php5-wrapper

#!/bin/sh
PHPRC=/etc/php5/bar/
export PHPRC
#export PHP_FCGI_MAX_REQUESTS=5000
#export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php

并创建 /etc/php5/bar/php.ini 文件

你可以简单地测试它。

  1. 下载此应用程序:https ://github.com/PeeHaa/OpCacheGUI
  2. 为 OpCacheGUI 设置两个 VirtualHost:foo.opcache(带有 foo 包装器)和 bar.opcache(带有 bar 包装器)
  3. 为测试应用程序设置两个虚拟主机:foo.app(带有 foo 包装器)和 bar.app(带有 bar 包装器)。使用两个不同的应用程序或相同的应用程序但不同的目录。
  4. 在 foo.app 和 bar.app 上做一些请求。
  5. 检查 foo.opcache 和 bar.opcache 中 OpCacheGUI 中的“缓存脚本”选项卡。

它适用于 php-fcgid。

于 2014-05-08T12:41:22.893 回答