= Trac を FastCGI で使用する = バージョン 0.9 以降、 Trac は [http://www.fastcgi.com/ FastCGI] インタフェースをサポートするようになりました。 [wiki:TracModPython mod_python] 同様、 Trac を常駐させるため、外部の各リクエストに対して新しいプロセスを生成する CGI インタフェースよりも処理速度が速いです。その上 `mod_python` とは異なり [http://httpd.apache.org/docs/suexec.html SuEXEC] をサポートすることができます。また、より多くの種類の Web サーバにサポートされています。 == 単純な Apache の設定 == {{{ # Enable fastcgi for .fcgi files # (If you're using a distro package for mod_fcgi, something like # this is probably already present) AddHandler fastcgi-script .fcgi FastCgiIpcDir /var/lib/apache2/fastcgi LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so }}} `TRAC_ENV` を以下のように設定することができます: {{{ FastCgiConfig -initial-env TRAC_ENV=/path/to/env/trac }}} もしくは複数の Trac プロジェクトを扱っているときは、このように設定します: {{{ FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/parent/dir/of/projects }}} `ScriptAlias` を設定するもしくは似たオプションが TracCgi で説明されていますが、 `trac.cgi` のかわりに `trac.fcgi` と呼びます。 == 単純な Lighttpd の設定 == FastCGI フロントエンドは最初 [http://www.lighttpd.net/ lighttpd] のような、 Apache 以外の Web サーバのために開発されました。 lighttpd はセキュアで高速で、規格に準拠したとても柔軟な Web サーバで、高いパフォーマンスの環境で最適化されます。 他の Web サーバに比べて CPU や、メモリの占有率がとても少ないです。 `trac.fcgi` を lighttpd で使用するためには、 lighttpd.conf に以下の行を追加します: {{{ fastcgi.server = ("/trac" => ("trac" => ("socket" => "/tmp/trac-fastcgi.sock", "bin-path" => "/path/to/cgi-bin/trac.fcgi", "check-local" => "disable", "bin-environment" => ("TRAC_ENV" => "/path/to/projenv") ) ) ) }}} 動かしたい Trac のインスタンス毎に `fastcgi.server` のエントリを追加する必要があります。別の方法として、、上記の `TRAC_ENV` の代わりに `TRAC_ENV_PARENT_DIR` を使用できます。 その他重要な情報、例えば、 [http://trac.lighttpd.net/trac/wiki/TracInstall lighttpd の TracInstall] や、 [wiki:TracCgi#静的なリソースをマッピングする TracCgi] などは fast-cgi 固有ではありませんが、インストールの詳細をつかむのに有用でしょう。 lighttpd を再起動し、ブラウザに `http://yourhost.example.org/trac` を入力して、 Trac にアクセスして下さい。 ---- See also: TracCgi, TracModPython, TracInstall, TracGuide