Changes between Version 4 and Version 5 of TracModPython
- Timestamp:
- Oct 21, 2006, 4:00:07 AM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracModPython
v4 v5 1 1 = Trac と mod_python = 2 [[TracGuideToc]] 2 3 3 Trac では [http://www.modpython.org/ mod_python] を サポートします。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。4 Trac では [http://www.modpython.org/ mod_python] を利用可能です。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、特に [TracCgi CGI] と比べて、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。 4 5 5 6 == シンプルなコンフィグレーション == … … 8 9 {{{ 9 10 LoadModule python_module modules/mod_python.so 11 }}} 12 13 ''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。'' 14 15 httpd.conf に以下の記述を追加してmod_python が正しくインストールされているかどうかを確かめることができます。セキュリティ上の理由で、この記述はテストが終了したら削除すべきです。 16 {{{ 17 <Location /mpinfo> 18 SetHandler mod_python 19 PythonHandler mod_python.testhandler 20 </Location> 10 21 }}} 11 22 … … 20 31 }}} 21 32 22 `TracUriRoot` オプションは不要な場合もありますのでご注意ください。まずは `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば追加するようにしてください。33 '''`TracUriRoot`''' オプションは不要な場合もあります。 `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば '''`TracUriRoot`''' を追加して下さい。 `Location` と '''`TracUriRoot`''' が同じパスになることに気づくでしょう。 23 34 24 認証設定は [wiki:TracCgi#認証を追加する CGI] と同じです: 35 === 認証設定 === 36 37 認証の設定は [wiki:TracCgi#認証を追加する CGI] と同じです: 25 38 {{{ 26 39 <Location "/projects/myproject/login"> 27 40 AuthType Basic 28 41 AuthName "myproject" 29 AuthUserFile /var/trac/myproject/.ht access42 AuthUserFile /var/trac/myproject/.htpasswd 30 43 Require valid-user 31 44 </Location> 32 45 }}} 46 47 === !PythonPath を設定する === 33 48 34 49 もし Trac のインストールが、通常の Python ライブラリのパスの中に無い場合、 Apache が Trac の mod_python ハンドルを見つけられるように `PythonPath` ディレクティブで指定しなければなりません: … … 41 56 }}} 42 57 58 !PythonPath ディレクティブを使用するときは気をつけてください。そして、 `SetEnv PYTHONPATH` は動かないので使用しないで下さい。 43 59 44 60 == マルチプロジェクトのセットアップ == 45 61 46 Trac の mod_python ハンドラ は Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションをサポートしています。62 Trac の mod_python ハンドラには Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションがあります。 47 63 {{{ 48 64 <Location /projects> … … 54 70 }}} 55 71 56 `/projects` の URL をリクエストすると、 `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。72 `/projects` の URL をリクエストすると、 TracEnvironment の親ディレクトリ `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。 57 73 58 74 あなたのプロジェクトのホームページとして、サブディレクトリのリストが必要ないならば、以下のようにすることができます。 … … 65 81 すべてのプロジェクトに対して、 `<LocationMatch>` ディレクティブを使用することによって同じ認証の仕組みを使用することができます。 66 82 {{{ 67 <LocationMatch "/ [^/]+/login">83 <LocationMatch "/projects/[^/]+/login"> 68 84 AuthType Basic 69 85 AuthName "Trac" 70 AuthUserFile /var/trac/.ht access86 AuthUserFile /var/trac/.htpasswd 71 87 Require valid-user 72 88 </LocationMatch> … … 75 91 == 仮想ホストの設定 == 76 92 77 以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 ( 93 以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 (例えば、!http://trac.mycompany.com といった 78 94 URL でアクセスすることができます): 79 95 … … 82 98 DocumentRoot /var/trac/myproject 83 99 ServerName trac.mycompany.com 84 < Directory/>100 <Location /> 85 101 SetHandler mod_python 86 102 PythonHandler trac.web.modpython_frontend 87 103 PythonOption TracEnv /var/trac/myproject 88 104 PythonOption TracUriRoot / 89 </ Directory>105 </Location> 90 106 <Location /login> 91 107 AuthType Basic 92 108 AuthName "MyCompany Trac Server" 93 AuthUserFile /var/trac/myproject/.ht users109 AuthUserFile /var/trac/myproject/.htpasswd 94 110 Require valid-user 95 111 </Location> … … 97 113 }}} 98 114 115 複数のプロジェクトをサポートする仮想ホストの設定では、 "`TracEnv`" /var/trac/myproject を "`TracEnvParentDir`" /var/trac/ に置き換えて下さい。 116 99 117 == トラブルシューティング == 118 119 サーバエラーのページがでたときには、 まずはApache のエラーログを確認するか、 `PythonDebug` オプションを有効にして下さい: 120 {{{ 121 <Location /projects/myproject> 122 ... 123 PythonDebug on 124 </Location> 125 }}} 100 126 101 127 === フォームを送信するときの問題 === 102 128 103 もし、 Trac のなかの何かしらのフォームを送信したときに、トラブルに見舞われたら(一般的な問題として、送信後にスタートページにリダイレクトされてしまうという問題があります)、あなたが指定した {{{DocumentRoot}}} と mod_python がマッピングしたのと同じフォルダやファイルを指しているかどうか確認してください。いくつかの理由のために、 mod_python は静的なリソースがマッピングされているのを嫌います。 129 もし、 Trac で何かしらのフォームを送信したときに、トラブルに見舞われたら(よくある問題として、送信後にスタートページにリダイレクトされてしまうという問題があります)、 {{{DocumentRoot}}} の中に mod_python をマッピングしたパスと同じフォルダやファイルが存在しないか確認してください。どういうわけか、 mod_python は静的リソースと同じところにマッピングされると混乱してしまいます。 130 131 === 仮想ホストの設定においての問題 === 132 133 もし <Location /> ディレクティブが使用されているとき、 `DocumentRoot` を設定すると ''403 (Forbidden)'' エラーになるでしょう。 `DocumentRoot` ディレクティブを削除するか、アクセスが許されているディレクトリに設定されているかどうかを確認して下さい (対応する `<Directory>` ブロックにて) 134 135 <Location /> で `SetHandler` を使用すると、すべてを mod_python でハンドルすることになりますが、いかなる CSS も image/icons もダウンロードできなくなります。この問題を回避するために、 <Location /trac> で `SetHandler None` を使用しています。しかし、この方法がエレガントな解決方法だとは思っていません。 104 136 105 137 === .htaccess ファイルを使用する === … … 110 142 111 143 === Win32 での特記 === 112 113 もし、 Windows 上で mod_python (3.1.3 または 3.1.4) を使用して Trac を起動しているならば、 114 添付ファイルのアップロードがたぶん動作 '''しない''' でしょう。 115 これは、既知の問題で、 Trac のレベルではきれいに解決できません。 116 117 とはいうものの、 mod_python レベルでの解決方法があります。 118 パッチ [http://projects.edgewall.com/trac/attachment/ticket/554/util_py.patch attachment:ticket:554:util_py.patch] を 119 (Lib/site-packages)/modpython/util.py ファイルに適用して下さい。 120 121 もし、 `patch` コマンドを持っていないならば、ファイルを [http://svn.apache.org/viewcvs.cgi/httpd/mod_python/trunk/lib/python/mod_python/util.py?rev=103562&view=markup 修正済みの util.py]に置き換えることもできます。 (mod_python 3.1.4 リリース以前に書かれたものですが、事象が修正されます 122 現在の 3.1.4 ''ではありません'')。 144 Windows 上で mod_python 3.2 より前のバージョンで Trac を動かしている場合、 添付ファイルのアップロードが '''動かない''' でしょう。この問題は 3.1.4 以降で解決されました。 mod_python をアップグレードしてこの問題を解決してください。 123 145 124 146 === OS X での特記 === … … 126 148 OS X で mod_python を使用するとき、 `apachectl restart` コマンドで Apache の再起動ができないでしょう。これは、 mod_python 3.2 でおそらく修正されるでしょう。しかし、 [http://www.dscpl.com.au/projects/vampire/patches.html ここ] にあるパッチを適用すれば、 3.2 以前のバージョンでもこの問題を回避できます。 127 149 150 === SELinux での特記 === 151 152 もし、 Trac が ''Cannot get shared lock on db.lock'' というようなメッセージが出力されたら、 153 リポジトリに セキュリティコンテキストを設定する必要があるでしょう: 154 155 {{{ 156 chcon -R -h -t httpd_sys_content_t PATH_TO_REPOSITORY 157 }}} 158 159 See also [[http://subversion.tigris.org/faq.html#reposperms]] 160 161 === FreeBSD での特記 === 162 mod_python と sqlite パッケージのインストールバージョンに注意して下さい。 Ports には両パッケージともいろいろなバージョンがありますが、初期の pysqlite と mod_python は組み合わせることができません。前者は python のスレッド機能サポートが必要ですし、 後者 は python のスレッド機能なしのインストールが必要です。 163 164 === Subversion での特記 === 165 166 Trac でコマンドライン、 TracStandalone で使用しているときは動くのに、 mod_python を使用しているときのみ、 `Unsupported version control system "svn"` というエラーが出力される場合、 [TracModPython#PythonPathを設定する PythonPath] ディレクティブに Python bindings へのパスを追加するのを忘れている可能性があります。 (Python の `site-packages` ディレクトリに Python binding へのパスをはるか、 `.pth` ファイルを作っておくのがベターです。) 167 168 これに当てはまらない場合、使用している Subversion のライブラリが Apache が使用しているバージョンと適合性がないかもしれません。(たいてい `apr` ライブラリの不適合性が原因になります。)その場合、 Apache の svn モジュール (`mod_dav_svn`) も使用できないでしょう。 169 128 170 ---- 129 171 See also: TracGuide, TracInstall, TracCgi, TracFastCgi