PHP FPM 5.5 - Opcache是​​否运行Per Domain

时间:2014-01-06 22:26:37

标签: php opcache

我有运行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的每个域因子的任何信息。

三江源

1 个答案:

答案 0 :(得分:3)

如果你想为每个域使用OpCache(VirtualHost),你必须为每个域创建php-wrapper,并将不同目录的PHPRC变量设置为php.ini。

两个VirtualHosts的两个包装器:

foo wrapper - / 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文件

bar wrapper - / 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. 为测试应用程序设置两个VirtualHost:foo.app(带有foo包装器)和bar.app(带有bar包装器)。使用两个不同的应用程序或相同的应用程序但不同的目录。
  4. 在foo.app和bar.app上做一些请求。
  5. 检查"缓存脚本"选项卡在foo.opcache和bar.opcache中的OpCacheGUI中。
  6. 它正在为php-fcgid工作。