Changes between Version 1 and Version 2 of TracModPython


Ignore:
Timestamp:
2007/03/06 12:34:28 (17 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracModPython

    v1 v2  
    11= Trac と mod_python = 
     2[[TracGuideToc]] 
    23 
    3 Trac では [http://www.modpython.org/ mod_python] をサポートします。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。 
     4Trac では [http://www.modpython.org/ mod_python] を利用可能です。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、特に [TracCgi CGI] と比べて、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。 
    45 
    56== シンプルなコンフィグレーション == 
     
    89{{{ 
    910LoadModule python_module modules/mod_python.so 
     11}}} 
     12 
     13 ''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。'' 
     14 
     15httpd.conf に以下の記述を追加してmod_python が正しくインストールされているかどうかを確かめることができます。セキュリティ上の理由で、この記述はテストが終了したら削除すべきです。 
     16{{{ 
     17<Location /mpinfo> 
     18   SetHandler mod_python 
     19   PythonHandler mod_python.testhandler 
     20</Location> 
    1021}}} 
    1122 
     
    2031}}} 
    2132 
    22 `TracUriRoot` オプションは不要な場合もありますのでご注意ください。まずは `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば追加するようにしてください 
     33'''`TracUriRoot`''' オプションは不要な場合もあります。 `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば '''`TracUriRoot`''' を追加して下さい。 `Location` と '''`TracUriRoot`''' が同じパスになることに気づくでしょう 
    2334 
    24 認証設定は [wiki:TracCgi#認証を追加する CGI] と同じです: 
     35=== 認証設定 === 
     36 
     37認証の設定は [wiki:TracCgi#認証を追加する CGI] と同じです: 
    2538{{{ 
    2639<Location "/projects/myproject/login"> 
    2740  AuthType Basic 
    2841  AuthName "myproject" 
    29   AuthUserFile /var/trac/myproject/.htaccess 
     42  AuthUserFile /var/trac/myproject/.htpasswd 
    3043  Require valid-user 
    3144</Location> 
    3245}}} 
     46 
     47=== !PythonPath を設定する === 
    3348 
    3449もし Trac のインストールが、通常の Python ライブラリのパスの中に無い場合、 Apache が Trac の mod_python ハンドルを見つけられるように `PythonPath` ディレクティブで指定しなければなりません: 
     
    4156}}} 
    4257 
     58!PythonPath ディレクティブを使用するときは気をつけてください。そして、 `SetEnv PYTHONPATH` は動かないので使用しないで下さい。 
    4359 
    4460== マルチプロジェクトのセットアップ == 
    4561 
    46 Trac の mod_python ハンドラは Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションをサポートしています。 
     62Trac の mod_python ハンドラには Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションがあります。 
    4763{{{ 
    4864<Location /projects> 
     
    5470}}} 
    5571 
    56 `/projects` の URL をリクエストすると、 `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。 
     72`/projects` の URL をリクエストすると、 TracEnvironment の親ディレクトリ `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。 
    5773 
    5874あなたのプロジェクトのホームページとして、サブディレクトリのリストが必要ないならば、以下のようにすることができます。 
     
    6581すべてのプロジェクトに対して、 `<LocationMatch>` ディレクティブを使用することによって同じ認証の仕組みを使用することができます。 
    6682{{{ 
    67 <LocationMatch "/[^/]+/login"> 
     83<LocationMatch "/projects/[^/]+/login"> 
    6884  AuthType Basic 
    6985  AuthName "Trac" 
    70   AuthUserFile /var/trac/.htaccess 
     86  AuthUserFile /var/trac/.htpasswd 
    7187  Require valid-user 
    7288</LocationMatch> 
     
    7591== 仮想ホストの設定 == 
    7692 
    77 以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 ( 例えば、!http://trac.mycompany.com といった 
     93以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 (例えば、!http://trac.mycompany.com といった 
    7894URL でアクセスすることができます): 
    7995 
     
    8298    DocumentRoot /var/trac/myproject 
    8399    ServerName trac.mycompany.com 
    84     <Directory /> 
     100    <Location /> 
    85101        SetHandler mod_python 
    86102        PythonHandler trac.web.modpython_frontend 
    87103        PythonOption TracEnv /var/trac/myproject 
    88104        PythonOption TracUriRoot / 
    89     </Directory> 
     105    </Location> 
    90106    <Location /login> 
    91107        AuthType Basic 
    92108        AuthName "MyCompany Trac Server" 
    93         AuthUserFile /var/trac/myproject/.htusers 
     109        AuthUserFile /var/trac/myproject/.htpasswd 
    94110        Require valid-user 
    95111    </Location> 
     
    97113}}} 
    98114 
     115複数のプロジェクトをサポートする仮想ホストの設定では、 "`TracEnv`" /var/trac/myproject を "`TracEnvParentDir`" /var/trac/ に置き換えて下さい。 
     116 
    99117== トラブルシューティング == 
     118 
     119サーバエラーのページがでたときには、 まずはApache のエラーログを確認するか、 `PythonDebug` オプションを有効にして下さい: 
     120{{{ 
     121<Location /projects/myproject> 
     122  ... 
     123  PythonDebug on 
     124</Location> 
     125}}} 
    100126 
    101127=== フォームを送信するときの問題 === 
    102128 
    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` を使用しています。しかし、この方法がエレガントな解決方法だとは思っていません。 
    104136 
    105137=== .htaccess ファイルを使用する === 
     
    110142 
    111143=== 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 ''ではありません'')。  
     144Windows 上で mod_python 3.2 より前のバージョンで Trac を動かしている場合、 添付ファイルのアップロードが '''動かない''' でしょう。この問題は 3.1.4 以降で解決されました。 mod_python をアップグレードしてこの問題を解決してください。 
    123145 
    124146=== OS X での特記 === 
     
    126148OS X で mod_python を使用するとき、 `apachectl restart` コマンドで Apache の再起動ができないでしょう。これは、 mod_python 3.2 でおそらく修正されるでしょう。しかし、 [http://www.dscpl.com.au/projects/vampire/patches.html ここ] にあるパッチを適用すれば、 3.2 以前のバージョンでもこの問題を回避できます。 
    127149 
     150=== SELinux での特記 === 
     151 
     152もし、 Trac が ''Cannot get shared lock on db.lock'' というようなメッセージが出力されたら、 
     153リポジトリに セキュリティコンテキストを設定する必要があるでしょう: 
     154 
     155{{{ 
     156chcon -R -h -t httpd_sys_content_t PATH_TO_REPOSITORY 
     157}}} 
     158 
     159See also [[http://subversion.tigris.org/faq.html#reposperms]] 
     160 
     161=== FreeBSD での特記 === 
     162mod_python と sqlite パッケージのインストールバージョンに注意して下さい。 Ports には両パッケージともいろいろなバージョンがありますが、初期の pysqlite と mod_python は組み合わせることができません。前者は python のスレッド機能サポートが必要ですし、 後者 は python のスレッド機能なしのインストールが必要です。 
     163 
     164=== Subversion での特記 === 
     165 
     166Trac でコマンドライン、 TracStandalone で使用しているときは動くのに、 mod_python を使用しているときのみ、 `Unsupported version control system "svn"` というエラーが出力される場合、 [wiki:"TracModPython#PythonPathを設定する" PythonPath] ディレクティブに Python bindings へのパスを追加するのを忘れている可能性があります。 (Python の `site-packages` ディレクトリに Python binding へのパスをはるか、 `.pth` ファイルを作っておくのがベターです。) 
     167 
     168これに当てはまらない場合、使用している Subversion のライブラリが Apache が使用しているバージョンと適合性がないかもしれません。(たいてい `apr` ライブラリの不適合性が原因になります。)その場合、 Apache の svn モジュール (`mod_dav_svn`) も使用できないでしょう。 
     169 
    128170---- 
    129171See also: TracGuide, TracInstall, TracCgi, TracFastCgi