trac to lighttpd
せっかくなので、一度やったApache2/CGIはやめて、lighttpdを使ってみる。
# apt-get install lighttpd
バージョンは1.4.13が入った。
CGIもつまらないので、FastCGIを使ってみる。
FastCGIは、バックエンドプロセスを常駐化できるので、CGIで都度呼び出しするよりは速い。
mod_pythonにくらべても、SuEXECが使えるというメリットがある。
Configuring Trac with FastCGI and lighttpd
http://njr.sabi.net/2005/07/31/configuring-trac-with-fastcgi-and-lighttpd/
中身はだいぶ前のバージョンに対応したものだ。
# mkdir /var/www/trac # chown www-data:www-data /var/www/trac/ # cp /usr/share/trac/cgi-bin/trac.fcgi /var/www/trac/ # chown www-data:www-data /var/www/trac/trac.fcgi
Debianの作法か、メインの設定ファイルは"/etc/lighttpd/lighttpd.conf"であるが、追加の設定ファイルは"/etc/lighttpd/conf-available/"に置くようになっているので、trac用の設定ファイルを追記する。作成した設定ファイルは、起動時に実行されるようにconf-enabledにシンボリックリンクを作成しておく。
# vi /etc/lighttpd/conf-available/10-trac.conf fastcgi.server = ("/trac" => ("trac" => ("socket" => "/tmp/trac-fastcgi.sock", "bin-path" => "/var/www/trac/trac.fcgi", "check-local" => "disable", "bin-environment" => ("TRAC_ENV" => "/var/trac/kinneko") ) ) ) # cd /etc/lighttpd/conf-enabled # ln -s ../conf-available/10-trac.conf ./ # /etc/init.d/lighttpd restart Stopping web server: lighttpd. Starting web server: lighttpd.
fcgiファイルを認識しないな。
type: application/octet-streamで送られて来るよ。
mod_fastcgiがデフォルトでオンじゃないのかな。
エラーも出ている。
2007-01-23 15:48:25: (server.c.871) WARNING: unknown config-key: fastcgi.server (ignored)
10-trac.confの先頭に以下を追記する。
server.modules += ( "mod_fastcgi" )
サーバーの起動エラーは出なくなったが、ブラウザからのアクセスで、Pythonの実行エラー画面は表示されるようになった。
なんだろう?
関連するファイルを見ていくとファイルが開けていない風だ。
# chown -R www-data.www-data /var/trac/
ああ、表示できた。
これだったか。
環境変数を渡すには、fcgiファイルに直接書き込んでしまう手もある。
# vi trac.fcgi import os os.environ['TRAC_ENV'] = "/var/trac/kinneko"
trac.fcgiをコピーして名前を変えれば、lighttpdの設定をあまりいじらなくても複数プロジェクトの運営ができる。
TRAC_ENV_PARENT_DIRを使うと、もっと簡単にプロジェクトのリンクリストを出すことができる。httpdの設定は、これだと変更の必要がなくなる。