やっとこさ、院に進学するための全ての手続きが終わった。これでひとまず安心か。
さて前回tracを入れてみたものの、ページ遷移がスゲェ遅いのでfastcgiを組み込むことにした。
とりあえずいつものようにpkg_infoで既に入っちゃってないかどうか確認。
入ってなかったのでportupgrade -Nでmod_fastcgiを入れた。
次にhttp.confの編集。
LoadModule fastcgi_module [path] と AddModule mod_fastcgi.c のコメントアウトを解除。
んで以下を追加。
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
FastCgiIpcDir /var/lib/apache/fastcgi
</IfModule>
FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/var/trac/proj
また前回書いた
<Directory "/usr/local/share/trac/cgi-bin/">
AddHandler cgi-script .cgi
DirectoryIndex trac.cgi
Options ExecCGI
order deny,allow
deny from all
allow from 192.168.1
</Directory>
を以下のように修正
<Directory "/usr/local/share/trac/cgi-bin/">
DirectoryIndex trac.fcgi
Options ExecCGI
order deny,allow
deny from all
allow from 192.168.1
</Directory>
また、ScriptAliasの部分も
ScriptAlias /proj_name /usr/local/share/trac/cgi-bin/trac.cgiから
ScriptAlias /proj_name /usr/local/share/trac/cgi-bin/trac.fcgiに直す。
そしてapacheの再起動...の前にFastCgiIpcDirで設定した/var/lib/apache/fastcgi
をまだ作ってないのでmkdirしてchown -R www:www /var/lib/apache
てか、色んなページをみると、なんでみんなFastCgiIpcDirを必ず設定してるのかなーと思い調べてみた。
http://snap.shot.cx/ZWiki/FastCgiIpcDirより
通常、FastCGIの動的サーバを上げると、/var/tmp/fcgi/dynamic以下に通信用ソケットファイルが「動的に」作成される。しかし/var/tmp以下って、多くのUNIXライクなOSではtmpwatchの回収対象となってしまっている。 tmpwatchというやつは、使われていないと思われるテンポラリファイルを消してくれるコマンドラインツールで、だいたい一日一回cron経由で起動されていたりする。
で、こいつに引っかかって使われていないsocket fileが削除されてしまい、プロセス間通信が出来なくなってしまう、という仕掛けらしい。
つまり、↑みたいな状況に遭遇したら、FastCgiIpcDirをちゃんと設定して、tmpwatchの回収対象にならないよう注意する必要がある。
なるほど。/var/tmpは避けた方が無難なのか。でも/var以下って基本的に残しておくモノだと認識していたのだが。tmpwatchの存在意義がワカラン。/var/tmpと/tmpを使い分ければいい様なだけの気がする。/var/tmpにあるんだけどもう古し、絶対使わんし...っていうファイルを消したいときに使うのかなぁ...。んまぁ、とりあえず見よう見まねでここまでやっちゃったのでサーバにtmpwatch入ってないけどこのままでいいか。
んでapacheを再起動。
んーヤバイぐらい早い!流石にパッパッと遷移するほどではないがかなり待ち時間が短縮された。だいたい次のページ表示までに1-2秒ほどかな。とりあえず速度的には問題ないのでこのままいこうかなぁと思ってる。