Changes between Initial Version and Version 1 of TracModPython


Ignore:
Timestamp:
06/11/06 17:57:32 (18 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracModPython

    v1 v1  
     1= Trac と mod_python = 
     2 
     3Trac では [http://www.modpython.org/ mod_python] をサポートします。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。 
     4 
     5== シンプルなコンフィグレーション == 
     6 
     7もし mod_python をインストールしたならば、 Apache の設定ファイルに以下の一行を追加してモジュールをロードしなければなりません: 
     8{{{ 
     9LoadModule python_module modules/mod_python.so 
     10}}} 
     11 
     12mod_python を使用した簡単な Trac のセットアップ方法は以下のようになります: 
     13{{{ 
     14<Location /projects/myproject> 
     15   SetHandler mod_python 
     16   PythonHandler trac.web.modpython_frontend  
     17   PythonOption TracEnv /var/trac/myproject 
     18   PythonOption TracUriRoot /projects/myproject 
     19</Location> 
     20}}} 
     21 
     22`TracUriRoot` オプションは不要な場合もありますのでご注意ください。まずは `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば追加するようにしてください。 
     23 
     24認証設定は [wiki:TracCgi#認証を追加する CGI] と同じです: 
     25{{{ 
     26<Location "/projects/myproject/login"> 
     27  AuthType Basic 
     28  AuthName "myproject" 
     29  AuthUserFile /var/trac/myproject/.htaccess 
     30  Require valid-user 
     31</Location> 
     32}}} 
     33 
     34もし Trac のインストールが、通常の Python ライブラリのパスの中に無い場合、 Apache が Trac の mod_python ハンドルを見つけられるように `PythonPath` ディレクティブで指定しなければなりません: 
     35{{{ 
     36<Location /projects/myproject> 
     37  ... 
     38  PythonPath "sys.path + ['/path/to/trac']" 
     39  ... 
     40</Location> 
     41}}} 
     42 
     43 
     44== マルチプロジェクトのセットアップ == 
     45 
     46Trac の mod_python ハンドラは Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションをサポートしています。 
     47{{{ 
     48<Location /projects> 
     49  SetHandler mod_python 
     50  PythonHandler trac.web.modpython_frontend  
     51  PythonOption TracEnvParentDir /var/trac 
     52  PythonOption TracUriRoot /projects 
     53</Location> 
     54}}} 
     55 
     56`/projects` の URL をリクエストすると、 `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。 
     57 
     58あなたのプロジェクトのホームページとして、サブディレクトリのリストが必要ないならば、以下のようにすることができます。 
     59{{{ 
     60<LocationMatch "/.+/"> 
     61}}} 
     62 
     63これは Apache に mod_python を使用するために !DocumentRoot フォルダの代わりのロケーションを使用することを教えます。 
     64 
     65すべてのプロジェクトに対して、 `<LocationMatch>` ディレクティブを使用することによって同じ認証の仕組みを使用することができます。 
     66{{{ 
     67<LocationMatch "/[^/]+/login"> 
     68  AuthType Basic 
     69  AuthName "Trac" 
     70  AuthUserFile /var/trac/.htaccess 
     71  Require valid-user 
     72</LocationMatch> 
     73}}} 
     74 
     75== 仮想ホストの設定 == 
     76 
     77以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 ( 例えば、!http://trac.mycompany.com といった 
     78URL でアクセスすることができます): 
     79 
     80{{{ 
     81<VirtualHost * > 
     82    DocumentRoot /var/trac/myproject 
     83    ServerName trac.mycompany.com 
     84    <Directory /> 
     85        SetHandler mod_python 
     86        PythonHandler trac.web.modpython_frontend 
     87        PythonOption TracEnv /var/trac/myproject 
     88        PythonOption TracUriRoot / 
     89    </Directory> 
     90    <Location /login> 
     91        AuthType Basic 
     92        AuthName "MyCompany Trac Server" 
     93        AuthUserFile /var/trac/myproject/.htusers 
     94        Require valid-user 
     95    </Location> 
     96</VirtualHost> 
     97}}} 
     98 
     99== トラブルシューティング == 
     100 
     101=== フォームを送信するときの問題 === 
     102 
     103もし、 Trac のなかの何かしらのフォームを送信したときに、トラブルに見舞われたら(一般的な問題として、送信後にスタートページにリダイレクトされてしまうという問題があります)、あなたが指定した {{{DocumentRoot}}} と mod_python がマッピングしたのと同じフォルダやファイルを指しているかどうか確認してください。いくつかの理由のために、 mod_python は静的なリソースがマッピングされているのを嫌います。 
     104 
     105=== .htaccess ファイルを使用する === 
     106 
     107ディレクトリの設定をほんのちょっと修正するには `.htaccess` ファイルを使用すればいいかもしれませんが、これは動作しません。 Apache が Trac URL に "/" (スラッシュ) を追加すると、正しい動作を妨げてしまいます。 
     108 
     109それでは、 mod_rewrite を使用すればいいように見えますが、これも動作しません。とにかく、百害あって一理なしです。指示に従ってください。:) 
     110 
     111=== 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 ''ではありません'')。  
     123 
     124=== OS X での特記 === 
     125 
     126OS X で mod_python を使用するとき、 `apachectl restart` コマンドで Apache の再起動ができないでしょう。これは、 mod_python 3.2 でおそらく修正されるでしょう。しかし、 [http://www.dscpl.com.au/projects/vampire/patches.html ここ] にあるパッチを適用すれば、 3.2 以前のバージョンでもこの問題を回避できます。 
     127 
     128---- 
     129See also: TracGuide, TracInstall, TracCgi, TracFastCgi