我有一个使用 Parallels/Plesk 的 VPS(11.0.9 更新 #22,最后更新于 2012 年 10 月 31 日 03:33 AM CentOS 6.3 (Final) x86_64)
我安装了 apache (CGI/FastCGI) 并使用 nginx 作为反向代理。一切运行正常。我安装了 APC 进行缓存,但问题是正常运行时间始终为 0。它每 15 秒左右重启一次。我到处都检查过了,但找不到解决方案。
服务器已启用宽限重启,但每 6 小时一次,这不会影响 APC 正常运行时间。在 Google 中搜索后,我发现这可能与 Apache 有关,它使用 FCGId 而不是 FastCGI 运行。Plesk/Apache 正在使用此配置文件:usr/local/psa/admin/conf/templates/default/service/php_over_fastcgi.php,其内容为:
<IfModule mod_fcgid.c>
<Files ~ (\.php)>
SetHandler fcgid-script
FCGIWrapper <?php echo $VAR->server->webserver->apache->phpCgiBin ?> .p$
Options +ExecCGI
allow from all
</Files>
问题出在这里还是其他地方?我该如何修复此问题以与 FastCGI 配合使用并使 APC 正常工作。我忘了说明,即使正常运行时间不到一分钟,APC 的缓存工作也相当不错(命中率为 92%)。
答案1
当 PHP_FCGI_MAX_REQUESTS 达到时,PHP 将死亡,然后会产生一个新的 PHP。您可以使用以下方法调整此数字:
DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000
答案2
这可能是由于 Fcgi 终止应用程序。根据您的负载(每小时的请求数),可能是 http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestsperprocess
或者http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgididletimeout(我认为这更适合)
尝试增加此值以实现效果。