
私は Parallels/Plesk (11.0.9 Update #22、最終更新日 2012 年 10 月 31 日 03:33 AM CentOS 6.3 (最終) x86_64) を使用した VPS を持っています。
Apache (CGI/FastCGI) をインストールし、リバース プロキシとして nginx を使用しています。すべて正常に動作しています。キャッシュ用に APC をインストールしましたが、問題はアップタイムが常に 0 であることです。15 秒ごとに再起動します。あらゆる場所を調べましたが、解決方法が見つかりません。
サーバーでは猶予再起動が有効になっていますが、6 時間ごとに実行されるため、APC の稼働時間には影響しません。Google で検索すると、Apache が FastCGI ではなく FCGId で実行されていることに関係している可能性があることがわかりました。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 が適切に動作するようにするにはどうすればよいですか。 稼働時間が 1 分未満であっても、APC はキャッシュをかなりうまく実行しています (92% がヒット)。
答え1
PHP_FCGI_MAX_REQUESTS に達すると、PHP は終了し、新しい PHP が生成されます。この数値は次のように調整できます。
DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000
答え2
これはおそらく、Fcgiがアプリケーションを終了したことによるものです。負荷(1時間あたりのリクエスト数)に応じて、次のいずれかになります。 http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidプロセスあたりの最大リクエスト数
またはhttp://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgididleタイムアウト(これがより似合うと思います)
効果を得るには、この値を増やしてみてください。