21 | | 環境変数 {{{TRAC_ENV}}} は通常通り Trac environment のディレクトリを指定します (複数の Trac environment を含むディレクトリであれば {{{TRAC_ENV_PARENT_DIR}}} を使うこともできます)。 {{{PYTHON_EGG_CACHE}}} は Python eggs を一時的に展開するのに使用するディレクトリを指定します。[[BR]] |
22 | | 明快さのために、このファイルの拡張子は {{{.wsgi}}} とすべきです。 Apache にアクセス権を開放できるのであれば、このファイルは自分が所有権を持つディレクトリに置くこともできます。 |
23 | | この .wsgi ファイルは TracAdmin のコマンド {{{deploy}}} を使用することで作成することができます。 |
| 20 | 環境変数 `TRAC_ENV` は通常通り Trac environment のディレクトリを指定します (複数の Trac environment を含むディレクトリであれば `TRAC_ENV_PARENT_DIR` を使うこともできます)。 `PYTHON_EGG_CACHE` は Python eggs を一時的に展開するのに使用するディレクトリを指定します。 |
| 21 | |
| 22 | '''重要な Note:''' 複数の `.wsgi` ファイルを使用する場合 (それぞれのファイルに別個の Trac environment を設定するケースなど) は、 `os.environ['TRAC_ENV']` には Trac environment のパスを ''設定しない'' でください。この方法を使うと、別の Trac environment の設定が Trac にロードされてしまうことがあります。 (以前にロードした Trac environment のパスが使われてしまいます。) この問題は `.wsgi` ファイルの内容を下記の通り変更することで回避できます: |
| 23 | |
| 24 | {{{ |
| 25 | #!python |
| 26 | import os |
| 27 | |
| 28 | os.environ['PYTHON_EGG_CACHE'] = '/usr/local/trac/mysite/eggs' |
| 29 | |
| 30 | import trac.web.main |
| 31 | def application(environ, start_response): |
| 32 | environ['trac.env_path'] = '/usr/local/trac/mysite' |
| 33 | return trac.web.main.dispatch_request(environ, start_response) |
| 34 | }}} |
| 35 | |
| 36 | 分かりやすくするために、このファイルの拡張子は `.wsgi` とすべきです。 Apache にアクセス権を開放できるのであれば、このファイルは自分が所有権を持つディレクトリに置くこともできます。この .wsgi ファイルは TracAdmin のコマンド `deploy` を使用することで作成することができます。 |
| 73 | |
| 74 | ''Note: 私の環境では mod_wsgi 2.5 と Python 2.6.1 を使うと Internal Server Error が発生しました (Apache 2.2.11 および Trac 0.11.2.1)。 Python 2.6.2 にアップグレードすると解決しました。 ([http://www.mail-archive.com/modwsgi@googlegroups.com/msg01917.html ここ] に書いてある通り)[[BR]]-- Graham Shanks'' |
| 75 | |
| 76 | == mod_wsgi 使用におけるTrac での Apache 基本認証 == #ApacheBasicAuthenticationforTracthrumod_wsgi |
| 77 | |
| 78 | 上記の mod_wsgi のドキュメントには、 Apache の設定例 a) trac をバーチャルホストでサブドメインを作成して動かす例と b) Trac の認証として、 Apache の基本認証を設定する例が記載されています。 |
| 79 | |
| 80 | |
| 81 | 例えば、 trac を !http://trac.my-proj.my-site.org としてホストし、{{{/home/trac-for-my-proj}}} フォルダから起動する場合で、 {{{the-env}}} を作成するために、 {{{trac-admin the-env initenv}}} コマンドを使用し、 {{{the-deploy}}} フォルダを作成するために、 {{{trac-admin the-env deploy the-deploy}}} コマンドを使用した場合です: |
| 82 | |
| 83 | htpasswd ファイルを作成します: |
| 84 | {{{ |
| 85 | cd /home/trac-for-my-proj/the-env |
| 86 | htpasswd -c htpasswd firstuser |
| 87 | ### and add more users to it as needed: |
| 88 | htpasswd htpasswd seconduser |
| 89 | }}} |
| 90 | ( セキュリティ面より、このファイルはドキュメントルートにおきます) |
| 91 | |
| 92 | 以下の設定を含んだファイルを作成します。例 {{{/etc/apache2/sites-enabled/trac.my-proj.my-site.org.conf}}} (ubuntu): |
| 93 | |
| 94 | {{{ |
| 95 | <Directory /home/trac-for-my-proj/the-deploy/cgi-bin/trac.wsgi> |
| 96 | WSGIApplicationGroup %{GLOBAL} |
| 97 | Order deny,allow |
| 98 | Allow from all |
| 99 | </Directory> |
| 100 | |
| 101 | <VirtualHost *:80> |
| 102 | ServerName trac.my-proj.my-site.org |
| 103 | DocumentRoot /home/trac-for-my-proj/the-env/htdocs/ |
| 104 | WSGIScriptAlias / /home/trac-for-my-proj/the-deploy/cgi-bin/trac.wsgi |
| 105 | <Location '/'> |
| 106 | AuthType Basic |
| 107 | AuthName "Trac" |
| 108 | AuthUserFile /home/trac-for-my-proj/the-env/htpasswd |
| 109 | Require valid-user |
| 110 | </Location> |
| 111 | </VirtualHost> |
| 112 | |
| 113 | }}} |
| 114 | |
| 115 | |
| 116 | (サブドメインが適切に動くにようにするには、 /etc/hosts ファイルの変更や、ホストサーバの DNS の A レコードにサブドメインを追加する必要があります) |