TracFastCgi のバージョン 1 とバージョン 2 との変更
- 日時:
- 2012/01/16 5:19:14 (13年前)
凡例:
- 未変更
- 追加
- 削除
- 更新
-
TracFastCgi
v1 v2 1 1 = Trac を FastCGI で使用する = #TracwithFastCGI 2 2 3 バージョン 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 サーバにサポートされています。 4 5 {{{ 6 #!html 7 <p style="background: #fdc; border: 2px solid #d00; font-style: italic; padding: 0 .5em; margin: 1em 0;"> 8 <strong>Windows 向けの Note:</strong> Trac の FCGI は Windows では使用できません。 Windows では_fcgi.py で使用されている Socket.fromfd が実装されていないためです。 9 </p> 10 }}} 3 [http://www.fastcgi.com/ FastCGI] インタフェースを使用すると [wiki:TracModPython mod_python] 同様に Trac を常駐させることができます。そのため、外部からのリクエストごとに新しいプロセスを生成する CGI インタフェースよりも処理速度は速くなるうえ、 mod_python では実現出来ない [http://httpd.apache.org/docs/suexec.html Apache の SuEXEC] に対応させることができます (例えば、 Web サーバとは異なる権限で起動させることができます)。また、 mod_python より多くの種類の Web サーバでサポートされています。 4 5 '''Windows 向けの Note:''' Trac の FCGI は Windows では使用できません。 `_fcgi.py` が必要とする `Socket.fromfd` が Windows では実装されていないためです。 IIS を使用しているのであれば、 [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp AJP] を使うこともできます。 (訳注: Apache でも mod_proxy_ajp 経由で ajp を使用できます。) 11 6 12 7 == 単純な Apache の設定 == #SimpleApacheconfiguration 13 8 14 Apache で利用可能な FastCGI モジュールは 2 種類あります: `mod_fastcgi` と 15 `mod_fcgid` です。これ以降に書かれている `FastCgiIpcDir` と `FastCgiConfig` ディレクティブ 16 は `mod_fastcgi` のディレクティブです; `DefaultInitEnv` は `mod_fcgid` 17 のディレクティブです。 18 19 `mod_fastcgi` では、 Apache の設定ファイルに以下の設定を追記します。 20 ファイル: 9 Apache で利用可能な FastCGI モジュールは 2 種類あります: `mod_fastcgi` と 10 `mod_fcgid` (推奨) です。後者の方がよりメンテナンスされています。 11 12 ==== `mod_fastcgi` でのセットアップ ==== #setupwithmod_fastcgi 13 `mod_fastcgi` では `FastCgiIpcDir` と `FastCgiConfig` ディレクティブを使用して Apache の設定ファイルに設定を行います: 21 14 {{{ 22 15 # Enable fastcgi for .fcgi files … … 31 24 デフォルトの設定に問題がなければ、 `FastCgiIpcDir` の設定は必須ではありません。 `LoadModule` の行は `IfModule` グループの後になければいけないことに注意して下さい。 32 25 33 `ScriptAlias` を設定するもしくは似たオプションが TracCgi で説明されていますが、34 `trac.cgi` の代わりに `trac.fcgi` を 呼びます。26 `ScriptAlias` もしくは TracCgi で説明されている類似のオプションを設定しますが、 27 `trac.cgi` の代わりに `trac.fcgi` を指定してください。 35 28 36 29 `TRAC_ENV` を以下のように設定することができます: … … 39 32 }}} 40 33 41 もしくは複数の Trac プロジェクトを扱っているときは、このように設定します:34 複数の Trac プロジェクトを扱っているときは、このように設定します: 42 35 {{{ 43 36 FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/parent/dir/of/projects 44 37 }}} 45 38 46 これらの設定は、 `mod_fcgid` では動きません。似ていますが 47 `mod_fcgid` での部分的な解決策は以下の通りになります: 39 ==== `mod_fcgid` でのセットアップ ==== #setupwithmod_fcgid 40 `ScriptAlias` を設定します。 (詳細は TracCgi を参照してください)、 ただし 41 `trac.cgi` の代わりに `trac.fcgi` を呼び出します。 Note: 最後のスラッシュを忘れずに。とても重要です。 42 {{{ 43 ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.fcgi/ 44 }}} 45 46 `mod_fcgid` で Trac environment を設定するには `DefaultInitEnv` 47 ディレクティブを使用します。このディレクティブは `Direcotry` や `Location` 48 コンテキストで使用できないので、複数のプロジェクトを設定する場合、 49 下に記述する Environment を設定する別の方法を試してください。 50 48 51 {{{ 49 52 DefaultInitEnv TRAC_ENV /path/to/env/trac/ 50 53 }}} 51 しかし、これは `Directory` や `Location` コンテキストで使用することができません。 52 よって、複数のプロジェクトに対応するのは難しくなります。 53 54 これらのモジュールの両方 (同様に [http://www.lighttpd.net/ lighttpd] と CGI も) で動かすよりよい方法は、 55 `trac.fcgi` に以下の値を設定することです。 56 Web サーバに環境変数を設定する必要がなくなります。例:54 55 ==== Environment を設定する別の方法 ==== #alternativeenvironmentsetup 56 Trac environment へのパスを設定するための、より適した方法は、パスを 57 `trac.fcgi` スクリプト自体に書き込むことです。これによってサーバの環境変数を 58 設定する必要がなくなり、どちらの !FastCgi モジュール (および 59 [http://www.lighttpd.net/ lighttpd] や CGI など) でも、動作するようになります: 57 60 {{{ 58 61 import os 59 62 os.environ['TRAC_ENV'] = "/path/to/projectenv" 60 63 }}} 61 or 64 または 62 65 {{{ 63 66 import os … … 65 68 }}} 66 69 67 プロジェクトごとの `ScriptAliases` と `.fcgi` スクリプトを設定すれば、 68 この方法を使用して複数のプロジェクトに対応することができます。 69 `trac.fcgi` をコピーして、ファイル名を適切に変更し、上記のコードをそれぞれのスクリプトに追記します。 70 71 この [https://coderanger.net/~coderanger/httpd/fcgi_example.conf fcgid 設定例] を見たところ、 !ScriptAlias ディレクティブでは末尾の / も含めて、このように設定する: 70 プロジェクトごとの `ScriptAlias` と `.fcgi` スクリプトを設定すれば、 71 起動スクリプトに `TRAC_ENV` 等を設定する方法を使用して複数のプロジェクトに対応することができます。 72 73 この [https://coderanger.net/~coderanger/httpd/fcgi_example.conf fcgid 設定例] の通り、 !ScriptAlias ディレクティブでは末尾の / も含めて設定してください: 72 74 {{{ 73 75 ScriptAlias / /srv/tracsite/cgi-bin/trac.fcgi/ 74 76 }}} 75 77 76 == Simple Cherokee Configuration == 77 78 Configuration wanted. 79 80 == 単純な Lighttpd の設定 == #SimpleLighttpdConfiguration 78 == Cherokee の簡単な設定 == #SimpleCherokeeConfiguration 79 80 Cherokee 側の設定はとても簡単です。 Trac を SCGI プロセスとして起動できるかどうかのみ知っている必要があります。 81 Cherokee が起動していないときにはいつでも、 Cherokee が Trac を切り離せるようにすることによって、 Trac を手動で起動することも、いっそのこと自動的に起動することもできます。 82 最初に、ローカルのインタプリタである cherokee-admin で information source を設定します。 83 84 {{{ 85 Host: 86 localhost:4433 87 88 Interpreter: 89 /usr/bin/tracd —single-env —daemonize —protocol=scgi —hostname=localhost —port=4433 /path/to/project/ 90 }}} 91 92 もしそのポート番号に到達できなければ、インタプリタコマンドは起動されたことになります。information source の定義において、 ''ローカルインタプリタ'' の代わりに、 ''リモートホスト'' を ''information source'' として使用するならば、 spawner を手動で起動する必要があることを覚えておいてください。 93 94 そして、 Trac にアクセスするために SCGI ハンドラによって管理される新しいルールを作成しなければなりません。このルールは例えば、 trac.example.net という新しい仮想サーバ内で作成し、 2 つのルールのみを必要とします。 '''デフォルト''' ルールは以前に作成された information source に関する SCGI ハンドラで使用されます。 95 2 つ目のルールは Trac のインタフェースを正しく表示するために必要ないくつかの静的ファイルを扱うために設定します。ルールを ''/chrome/common'' の ''ディレクトリルール'' として作成し、 ''静的ファイル'' のハンドラを適切なファイルをポイントする ''ドキュメントルート'' と共に設定するだけです: ''/usr/share/trac/htdocs/'' 96 97 Note:\\ 98 tracd プロセスが起動しない場合や cherokee が 503 エラーページを表示する場合、 [http://trac.saddi.com/flup python-flup] がインストールされていない可能性があります。\\ 99 Python-flup は SCGI の能力を trac に与える従属関係にあります。 debian 基本システムからインストールできます: 100 {{{ 101 sudo apt-get install python-flup 102 }}} 103 104 == Lighttpd の簡単な設定 == #SimpleLighttpdConfiguration 81 105 82 106 FastCGI フロントエンドは最初 [http://www.lighttpd.net/ lighttpd] のような、 Apache 以外の Web サーバのために開発されました。 … … 85 109 他の Web サーバに比べて CPU や、メモリの占有率がとても少ないです。 86 110 87 `trac.fcgi` を lighttpd で使用するためには、 lighttpd.conf に以下の行を追加します: 88 {{{ 111 `trac.fcgi`(0.11 以前) / fcgi_frontend.py (0.11) を lighttpd で使用するためには、 lighttpd.conf に以下の行を追加します: 112 {{{ 113 #var.fcgi_binary="/usr/bin/python /path/to/fcgi_frontend.py" # 0.11 if installed with easy_setup, it is inside the egg directory 114 var.fcgi_binary="/path/to/cgi-bin/trac.fcgi" # 0.10 name of prior fcgi executable 89 115 fastcgi.server = ("/trac" => 116 90 117 ("trac" => 91 118 ("socket" => "/tmp/trac-fastcgi.sock", 92 "bin-path" => "/path/to/cgi-bin/trac.fcgi",119 "bin-path" => fcgi_binary, 93 120 "check-local" => "disable", 94 121 "bin-environment" => … … 99 126 }}} 100 127 101 動かしたい Trac のインスタンス毎に `fastcgi.server` のエントリを追加する必要があります。別の方法として、 、上記の `TRAC_ENV` の代わりに `TRAC_ENV_PARENT_DIR` を使用でき、128 動かしたい Trac のインスタンス毎に `fastcgi.server` のエントリを追加する必要があります。別の方法として、上記の `TRAC_ENV` の代わりに `TRAC_ENV_PARENT_DIR` を使用でき、 102 129 `lighttpd.conf` に設定する代わりに `trac.fcgi` ファイルに 103 130 `bin-environment` (上記の Apache の設定 に書かれています) の2つのうちのどちらかを設定します。 131 132 Note: lighttpd には fastcgi.server の uri が例えばこの例では、 '/trac' とするところを '/' としてしまう 'SCRIPT_NAME' と 'PATH_INFO' に関するバグがあります。詳細については、 [http://trac.edgewall.org/ticket/2418 本家チケット 2418] を参照して下さい。 このバグは lighttpd 1.4.23 以降で修正されています。 fastcgi.server のパラメータとして、 `"fix-root-scriptname" => "enable"` を追加する必要があるでしょう。 104 133 105 134 lighttpd で2つのプロジェクトを動かすには、 `lighttpd.conf` に以下の設定を追加します: … … 108 137 ("first" => 109 138 ("socket" => "/tmp/trac-fastcgi-first.sock", 110 "bin-path" => "/path/to/cgi-bin/trac.fcgi",139 "bin-path" => fcgi_binary, 111 140 "check-local" => "disable", 112 141 "bin-environment" => … … 117 146 ("second" => 118 147 ("socket" => "/tmp/trac-fastcgi-second.sock", 119 "bin-path" => "/path/to/cgi-bin/trac.fcgi",148 "bin-path" => fcgi_binary, 120 149 "check-local" => "disable", 121 150 "bin-environment" => … … 125 154 ) 126 155 }}} 127 各フィールドの値が異なることに注意して下さい。もし `.fcgi` スクリプトに 128 環境変数を設定するほうが好ましい場合は、 `trac.fcgi` をコピー/名前変更をして下さい。例として、 129 `first.fcgi` と `second.fcgi` が上記の設定では参照されるようにします。130 上記の設定で、両方のプロジェクトが 同じ `trac.fcgi` スクリプトで起動していても、156 Note: 各フィールドの値が異なることに注意して下さい。もし、 157 `.fcgi` スクリプト内の環境変数を設定する方が好ましいならば、 `trac.fcgi` スクリプトを 158 例えば、 `first.fcgi` や `second.fcgi` というようにコピー / リネームして、上記設定の中でこれらのスクリプトを参照するようにしてください。 159 両方のプロジェクトが同じ `trac.fcgi` スクリプトから起動しているとしても、 131 160 異なるプロセスになることに注意して下さい。 132 161 {{{ 133 #!html 134 <p style="background: #fdc; border: 2px solid #d00; font-style: italic; padding: 0 .5em; margin: 1em 0;"> 135 <strong>Note from c00i90wn:</strong> server.modules をロードする順番はとても重要です。もし、 mod_auth が mod_fastcgi より <strong> 先に </strong> ロードされる設定になっていない場合、サーバはユーザの認証に失敗します。 136 </p> 162 #!div class=important 163 '''Note''': server.modules をロードする順番はとても重要です。もし、 mod_auth が mod_fastcgi より '''先に''' mod_auth がロードされない設定になっていない場合、サーバはユーザ認証に失敗します。 137 164 }}} 138 165 認証のために lighttpd.conf の 'server.modules' 中で mod_auth を有効にして、 auth.backend と認証方法を選択して下さい: … … 174 201 175 202 }}} 176 パスワードファイルがない場合、 lighttpd (確認したバージョンは 1.4.3) が停止するので注意して下さい。177 178 バージョン 1.3.16 以前では lighttpd は 'valid-user' をサポートしていないので注意してください。203 Note: パスワードファイルがない場合、 lighttpd (確認したバージョンは 1.4.3) が停止するので注意して下さい。 204 205 Note: バージョン 1.3.16 以前では lighttpd は 'valid-user' をサポートしていないので注意してください。 179 206 180 207 条件付の設定は静的リソースをマッピングするときに便利です。例として FastCGI を経由せずに直接イメージファイルや CSS を参照するときなどです。: … … 193 220 ("trac" => 194 221 ("socket" => "/tmp/trac-fastcgi.sock", 195 "bin-path" => "/path/to/cgi-bin/trac.fcgi",222 "bin-path" => fcgi_binary, 196 223 "check-local" => "disable", 197 224 "bin-environment" => … … 212 239 ( 213 240 "socket" => "/tmp/trac.sock", 214 "bin-path" => "/path/to/cgi-bin/trac.fcgi",241 "bin-path" => fcgi_binary, 215 242 "check-local" => "disable", 216 243 "bin-environment" => … … 238 265 ("trac" => 239 266 ("socket" => "/tmp/trac-fastcgi.sock", 240 "bin-path" => "/path/to/cgi-bin/trac.fcgi",267 "bin-path" => fcgi_binary, 241 268 "check-local" => "disable", 242 269 "bin-environment" => … … 249 276 使用言語指定の詳細については [http://trac.lighttpd.net/trac/wiki/TracFaq TracFaq] の 2.13 の質問を参照して下さい。 250 277 251 その他重要な情報、例えば、 [http://trac.lighttpd.net/trac/wiki/TracInstall lighttpd の TracInstall] や、 [wiki:TracCgi# 静的なリソースをマッピングするTracCgi] などは fast-cgi 固有ではありませんが、インストールの詳細をつかむのに有用でしょう。278 その他重要な情報、例えば、 [http://trac.lighttpd.net/trac/wiki/TracInstall lighttpd の TracInstall] や、 [wiki:TracCgi#MappingStaticResources TracCgi] などは fast-cgi 固有ではありませんが、インストールの詳細をつかむのに有用でしょう。 252 279 253 280 trac-0.9 を使用している場合、[http://lists.edgewall.com/archive/trac/2005-November/005311.html 些細なバグ] について読んでください。 … … 257 284 制限された権限で lighttpd を起動するにあたって気をつけること: 258 285 259 もし、 trac.fcgi が lighttpd の設定で __server.username = "www-data"__ や __server.groupname = "www-data"__を設定しても起動せずどうしようもないときは、 `bin-environment` セクションの `PYTHON_EGG_CACHE` を `www-data` のホームディレクトリまたは `www-data` アカウントで書き込みが可能なディレクトリに設定して下さい。 (訳注: debian 系 Linux に限定した話だと思われます。 `www-data` は lighttpd を起動するユーザに適宜読み替えてください。)260 261 262 == 簡単な [http://trac.edgewall.org/wiki/LiteSpeed LiteSpeeed] の設定 == #SimpleLighttpdConfiguration286 もし、 trac.fcgi が lighttpd の設定で `server.username = "www-data"` や `server.groupname = "www-data"` を設定しても起動せずどうしようもないときは、 `bin-environment` セクションの `PYTHON_EGG_CACHE` を `www-data` のホームディレクトリまたは `www-data` アカウントで書き込みが可能なディレクトリに設定して下さい。 (訳注: debian 系 Linux に限定した話だと思われます。 `www-data` は lighttpd を起動するユーザに適宜読み替えてください。) 287 288 289 == !LiteSpeed の簡単な設定 == #SimpleLighttpdConfiguration 263 290 264 291 FastCGI フロントエンドは最初 [http://www.litespeedtech.com/ LiteSpeed] のような、 Apache 以外の Web サーバのために開発されました。 265 292 266 [http://trac.edgewall.org/wiki/LiteSpeed LiteSpeed] Web サーバはイベント駆動、非同期型であり、Apache に代わるものとしてセキュアで拡張可能になるようにゼロからデザインされています。そして、最低限のリソースで操作できます。 [http://trac.edgewall.org/wiki/LiteSpeed LiteSpeed]は Apache の設定ファイルから直接操作でき、ビジネスに不可欠な環境をターゲットにしています。267 268 セットアップ 269 270 1)最初に Trac プロジェクトをインストールして動作することを確認して下さい。最初のインストールでは、 "tracd" を使用します。271 272 2)このセットアップでは仮想ホストを作成します。以下、この仮想ホストのことを !TracVhost と呼びます。このチュートリアルで、先ほど作ったプロジェクトが以下の URL 経由でアクセスできると仮定します:293 !LiteSpeed Web サーバはイベント駆動、非同期型であり、 Apache に代わるものとしてセキュアで拡張可能になるようにゼロからデザインされています。そして、最低限のリソースで操作できます。 !LiteSpeed は Apache の設定ファイルから直接操作でき、ビジネスに不可欠な環境をターゲットにしています。 294 295 === セットアップ === 296 297 1. 最初に Trac プロジェクトをインストールして動作することを確認して下さい。最初のインストールでは、 "tracd" を使用します。 298 299 2. このセットアップでは仮想ホストを作成します。以下、この仮想ホストのことを !TracVhost と呼びます。このチュートリアルで、先ほど作ったプロジェクトが以下の URL 経由でアクセスできると仮定します: 273 300 274 301 {{{ … … 276 303 }}} 277 304 278 3) "!TracVhost → External AApps" タブへ移動し、新しい "External Application" を作成します。305 3. "!TracVhost → External Apps" タブへ移動し、新しい "External Application" を作成します。 279 306 280 307 {{{ … … 294 321 }}} 295 322 296 4) (非必須)"!TracVhost → Security" タブへ移動し、新しいセキュリティ "Realm" を作成することができます。323 4. (非必須) htpasswd ベースの認証を使用するならば、 "!TracVhost → Security" タブへ移動し、新しいセキュリティ "Realm" を作成することができます。 297 324 298 325 {{{ … … 304 331 もし、 htpasswd ファイルを持っていない、もしくは作り方を知らない場合は、 http://sherylcanter.com/encrypt.php にアクセスし、ユーザ名:パスワード の一対を生成して下さい。 305 332 306 5)"!PythonVhost → Contexts" へ移動し、新しい "FCGI Context" を作成します。333 5. "!PythonVhost → Contexts" へ移動し、新しい "FCGI Context" を作成します。 307 334 308 335 {{{ … … 312 339 }}} 313 340 314 6)/fullpathto/mytracproject/conf/trac.ini を修正します。341 6. /fullpathto/mytracproject/conf/trac.ini を修正します。 315 342 316 343 {{{ … … 321 348 }}} 322 349 323 7) [http://trac.edgewall.org/wiki/LiteSpeed LiteSpeed] を "lswsctrl restart" で再起動し、新しい Trac プロジェクトに以下の URL でアクセスします: 350 7. !LiteSpeed を "lswsctrl restart" で再起動し、新しい Trac プロジェクトに以下の URL でアクセスします: 324 351 325 352 {{{ … … 327 354 }}} 328 355 356 == Nginx 簡単な設定 == 357 358 1. Nginx 設定のスニペット - 0.6.32 で動作することを確認しました。 359 {{{ 360 server { 361 listen 10.9.8.7:443; 362 server_name trac.example; 363 364 ssl on; 365 ssl_certificate /etc/ssl/trac.example.crt; 366 ssl_certificate_key /etc/ssl/trac.example.key; 367 368 ssl_session_timeout 5m; 369 370 ssl_protocols SSLv2 SSLv3 TLSv1; 371 ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 372 ssl_prefer_server_ciphers on; 373 374 # (Or ``^/some/prefix/(.*)``. 375 if ($uri ~ ^/(.*)) { 376 set $path_info /$1; 377 } 378 379 # You can copy this whole location to ``location [/some/prefix]/login`` 380 # and remove the auth entries below if you want Trac to enforce 381 # authorization where appropriate instead of needing to authenticate 382 # for accessing the whole site. 383 # (Or ``location /some/prefix``.) 384 location / { 385 auth_basic "trac realm"; 386 auth_basic_user_file /home/trac/htpasswd; 387 388 # socket address 389 fastcgi_pass unix:/home/trac/run/instance.sock; 390 391 # python - wsgi specific 392 fastcgi_param HTTPS on; 393 394 ## WSGI REQUIRED VARIABLES 395 # WSGI application name - trac instance prefix. 396 # (Or ``fastcgi_param SCRIPT_NAME /some/prefix``.) 397 fastcgi_param SCRIPT_NAME ""; 398 fastcgi_param PATH_INFO $path_info; 399 400 ## WSGI NEEDED VARIABLES - trac warns about them 401 fastcgi_param REQUEST_METHOD $request_method; 402 fastcgi_param SERVER_NAME $server_name; 403 fastcgi_param SERVER_PORT $server_port; 404 fastcgi_param SERVER_PROTOCOL $server_protocol; 405 fastcgi_param QUERY_STRING $query_string; 406 407 # for authentication to work 408 fastcgi_param AUTH_USER $remote_user; 409 fastcgi_param REMOTE_USER $remote_user; 410 } 411 } 412 }}} 413 414 2. trac.fcgi の変更: 415 416 {{{ 417 #!/usr/bin/env python 418 import os 419 sockaddr = '/home/trac/run/instance.sock' 420 os.environ['TRAC_ENV'] = '/home/trac/instance' 421 422 try: 423 from trac.web.main import dispatch_request 424 import trac.web._fcgi 425 426 fcgiserv = trac.web._fcgi.WSGIServer(dispatch_request, 427 bindAddress = sockaddr, umask = 7) 428 fcgiserv.run() 429 430 except SystemExit: 431 raise 432 except Exception, e: 433 print 'Content-Type: text/plain\r\n\r\n', 434 print 'Oops...' 435 print 436 print 'Trac detected an internal error:' 437 print 438 print e 439 print 440 import traceback 441 import StringIO 442 tb = StringIO.StringIO() 443 traceback.print_exc(file=tb) 444 print tb.getvalue() 445 446 }}} 447 448 3. nginx をリロードし、 trac.fcgi をこのように起動します: 449 450 {{{ 451 trac@trac.example ~ $ ./trac-standalone-fcgi.py 452 }}} 453 454 上記設定は以下の条件だと仮定します: 455 * trac のインスタンスを実行するためのユーザ名を 'trac' とします。ホームディレクトリに trac Environment をおきます。 456 * Trac environment は `/home/trac/instance` に配置します。 457 * `/home/trac/htpasswd` に認証情報が含まれています。 458 * `/home/trac/run` は nginx を起動しているグループが所有しています。 459 * Linux を使用しているならば、 `/home/trac/run` に (`chmod g+s run`) を設定します。 460 * [http://trac.edgewall.org/ticket/7239 本家チケット 7239] のパッチを適用し、ソケットファイルのパーミッションをそのつど修正しなければいけません。 461 462 残念ですが、 nginx は fastcgi_pass ディレクティブ内の変数展開をサポートしていません。 463 したがって、 1 つのサーバーブロックから複数の trac インスタンスを起動することができません。 464 465 セキュリティ面で不安があるならば、 各 Trac インスタンスを別々のユーザで起動してください。 466 467 Trac を FCGI の外部アプリケーションとして起動するもう一つの方法は、[http://trac.edgewall.org/ticket/6224 本家チケット 6224] を参照して下さい。 468 329 469 ---- 330 See also TracCgi, TracModPython, TracInstall, TracGuide470 See also: TracGuide, TracInstall, [wiki:TracModWSGI ModWSGI], [wiki:TracCgi CGI], [wiki:TracModPython ModPython], [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe]