PerlDynamic も FastCGI で動かしてみたけど
発生していたInternal Server Errorについては、-idle-timeout オプションを変更してエラーは出なくなりました。
[Wed Jan 24 19:44:25 2007] [error] [client **.**.**.**] FastCGI: comm with (dynamic) server "..../pathto/mt/mt.fcgi" aborted: (first read) idle timeout (30 sec) [Wed Jan 24 19:44:25 2007] [error] [client **.**.**.**] FastCGI: incomplete headers (0 bytes) received from server "..../pathto/mt/mt.fcgi"
Apache のログを見ていると、こんなログが出ていました。そのまま idle timeout ということで、
*Module mod_fastcgi(英語)
このmod_fastcgiのドキュメントにある-idle-timeoutオプションはデフォルト 30 秒です。Apacheのエラーログを見る限り 30 秒でタイムアウトしているということなので 60 秒に。それでもダメだったのでログを見ながらエイッ 300 秒(^_^;)。
結果 Internal Server Error についても出なくなり、全ての再構築、記事の投稿、保存など一応生活に必要な部分は動きました。はじめで書いたようにプラグインが原因かとも思ったけど、原因はこのタイムアウトでした。
mod_fastcgi の設定については、こんな感じでコメントアウトしていろいろオプションは外してしまいました。動いているしおかしくなったら考えます。
<IfModule mod_fastcgi.c> AddHandler fastcgi-script .fcgi FastCGIConfig -autoUpdate FastCGIConfig -idle-timeout 300 # FastCGIConfig -maxClassProcesses 4 # FastCGIConfig -maxProcesses 5 # FastCGIConfig -minProcesses 1 FastCgiIpcDir /tmp/fcgi_ipc </IfModule>
次に、PerlDynamicもFastCGIで高速に、
- ファイル名変更(またはコピー、ln や ln -s。)
- mt/plugins/PerlDynamic/mt-perl-dynamic.cgi → mt/plugins/PerlDynamic/mt-perl-dynamic.fcgi
- テンプレート mt-dynamic.php を編集
- 名称変更した mt-perl-dynamic.cgi を呼び出している部分にも fcgi と名称を変更。
これで、再構築不要化カスタマイズ(MT3.3専用版)PerlDynamic 内の CGI 呼び出し部分も FastCGI 化されて動きました。
ps 等でプロセス見る限りは常駐しているので、おそらく。
がしかし。。。。。。
読み込むたびに違う記事が表示される。。。。。PerlDynamic 部分は cgi と、結局戻しました。
まだ、The blog of H.Fujimoto(tag: ダイナミックパブリッシング)での方法の記事とかは見あたらないし。
(2007年3月29日更新) 2007年3月10日にバージョンが 3.10 になって FastCGI にも対応したようです。しかし。。。(^_^;)カテゴリーページについての動作がおかしく、どれかのカテゴリーページを表示すると、それ以降は別のカテゴリーページを表示しても最初に表示されていたページが強制的に表示されてしまう。。。。(^_^;)また戻しました。。。。