TracModPythonバージョン 1バージョン 2 との変更


以下の違いを無視:
日時:
2012/01/16 5:19:14 (13年前)
更新者:
trac
コメント:

--

凡例:

未変更
追加
削除
更新
  • TracModPython

    v1 v2  
    66以下の説明は Apache2 のためのものです; まだ Apache1.3 を使用しているなら、 [http://trac.edgewall.org/wiki/TracModPython2.7 TracModPython2.7] にいくつか情報があります。 
    77 
     8== 警告 == #AWordofWarning 
     9 
     102010 年 6 月 16 日に、 mod_python プロジェクトが正式に終了しました。もし mod_python を新しいインストールで使用することを考えているならば、 '''お願いだからしないで下さい'''! 解決されない既知の課題がありますし、今ではより良い代替手段もあります。詳細については、インストールしようとしているバージョンの TracInstall ページをチェックして下さい。 
     11 
    812== シンプルなコンフィグレーション == #Simpleconfiguration 
    913 
     
    1317}}} 
    1418 
    15  ''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。'' 
     19''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。'' 
     20 
    1621Debian で apt-get を使用する場合 
    1722{{{ 
     
    2025(Debian の続き) mod_python をインストールした後に、apache2 (上の Load Module に相当するもの) のモジュールを有効にしなければなりません : 
    2126{{{ 
    22 a2enmod mod_python 
     27a2enmod python 
    2328}}} 
    2429Fedora で yum を使用する場合: 
     
    3338   PythonInterpreter main_interpreter 
    3439   PythonHandler mod_python.testhandler 
     40   Order allow,deny 
     41   Allow from all 
    3542</Location> 
    3643}}} 
     
    4552   PythonOption TracEnv /var/trac/myproject 
    4653   PythonOption TracUriRoot /projects/myproject 
     54   Order allow,deny 
     55   Allow from all 
    4756</Location> 
    4857}}} 
     
    5766    PythonOption TracEnvParentDir /var/trac/myprojects 
    5867    # For the index of multiple projects 
    59     PythonOption TracEnvIndexTemplate /srv/www/htdocs/trac/project_list_tepmlate.html 
     68    PythonOption TracEnvIndexTemplate /srv/www/htdocs/trac/project_list_template.html 
    6069    # A space delimitted list, with a "," between key and value pairs. 
    6170    PythonOption TracTemplateVars key1,val1 key2,val2 
     
    6473    # See description above         
    6574    PythonOption TracUriRoot /projects/myproject 
    66     # Override default python egg cache location 
    67     PythonOption PYTHON_EGG_CACHE /var/trac/myprojects/egg-cache 
    68 }}} 
    69  
     75}}} 
     76 
     77=== Python Egg Cache === #PythonEggCache 
     78 
     79Genshi のように圧縮された Python egg は通常、実行するユーザのホームディレクトリ配下の `.python-eggs` ディレクトリに展開されます。  Apache のホームディレクトリは多くの場合、書き込みできないようになっているので、他のディレクトリを egg cache として指定しなければなりません: 
     80{{{ 
     81PythonOption PYTHON_EGG_CACHE /var/trac/myprojects/egg-cache 
     82}}} 
     83 
     84または Genshi の egg を解凍して展開することで、この問題を回避できます。 
    7085=== 認証設定 === #ConfiguringAuthentication 
    7186 
     
    143158 
    144159 
     160=== Python Egg Cache を設定する === #SettingthePythonEggCache 
     161 
     162Web サーバが Egg Cache に書き込みできない場合、パーミッションを変更するか、 Apache が書き込み可能な場所を指定する必要があります。設定しないと ''500 Internal Server Error'' や syslog へのエラー出力が発生します。 
     163 
     164{{{ 
     165#!xml 
     166<Location /projects/myproject> 
     167  ... 
     168  PythonOption PYTHON_EGG_CACHE /tmp  
     169  ... 
     170</Location> 
     171}}} 
     172 
    145173 
    146174=== !PythonPath を設定する === #SettingthePythonPath 
     
    219247}}} 
    220248 
    221 `<Location>` の代わりに `<LocationMatch>` を使用してログインで問題が発生する場合 
     249この設定は全てのケースでうまく動くわけではありません。動かない場合は以下を試してください: 
     250 * `<Location>` の代わりに `<LocationMatch>` を使用する。 
     251 * <Location />  はサーバの設定によっては、単にサーバのルートではなく完全なホスト名を参照していることがあります。このような場合、 (上記の例では下段にあたるログイン用ディレクトリを含む) 全てのリクエストが Python に送信され、認証が動かなくなります (認証を行おうとすると、認証が設定されていないというエラー画面が表示されます)。 URL を変更できるのであれば (/, /login の代わりに /web/, /web/login などのように) ルートではなくサブディレクトリを使ってみてください。 
     252 * Apache の `NameVirtualHost` を設定している場合、 `<VirtualHost *>` ではなく `<VirtualHost *:80>` を使用せねばならないかもしれません。 
    222253 
    223254複数のプロジェクトをサポートする仮想ホストの設定では、 "`TracEnv`" /var/trac/myproject を "`TracEnvParentDir`" /var/trac/ に置き換えて下さい。 
    224255 
    225 Note: !DocumentRoot should not point to your Trac project env. As Asmodai wrote on #trac: "suppose there's a webserer bug that allows disclosure of !DocumentRoot they could then leech the entire Trac environment". 
     256Note: !DocumentRoot は TracEnvironment と同じディレクトリにしないでください。 何かのバグがあった場合に TracEnvironment の内容が外部からアクセス可能になってしまうおそれがあります。 
    226257 
    227258== トラブルシューティング == #Troubleshooting 
     
    256287<Location /> で `SetHandler` を使用すると、すべてを mod_python でハンドルすることになりますが、いかなる CSS も image/icons もダウンロードできなくなります。この問題を回避するために、われわれは <Location /trac> で `SetHandler None` を使用しています。しかし、この方法がエレガントな解決方法だとは思っていません。 
    257288 
     289=== Zip された egg での問題 === #Problemwithzippedegg 
     290 
     291mod_python のバージョンによっては Zip された egg ファイルからモジュールを import できないことがあります。 Apache のログに `ImportError: No module named trac` が出力される場合、問題が発生している原因であると考えられます。 Python の site-packages ディレクトリを見てみてください; Trac のモジュールが ''ディレクトリ'' ではなく ''ファイル'' として配置されている場合、問題の原因と考えられます。解決するためには、下記の上に `--always-unzip` オプションと伴に Trac をインストールしてみてください。 
     292 
     293{{{ 
     294easy_install --always-unzip Trac-0.12.zip 
     295}}} 
     296 
    258297=== .htaccess ファイルを使用する === #Using.htaccess 
    259298 
    260299ディレクトリの設定をほんのちょっと修正するには `.htaccess` ファイルを使用すればいいかもしれませんが、これは動作しません。 Apache が Trac の URL に "/" (スラッシュ) を追加すると、正しい動作を妨げてしまいます。 
    261300 
    262 それでは、 mod_rewrite を使用すればいいように見えますが、これも動作しません。とにかく、百害あって一理なしです。指示に従ってください。 :) 
     301それでは、 mod_rewrite を使用すればいいように見えますが、これも動作しません。とにかく、百害あって一利なしです。指示に従ってください。 :) 
     302 
     303成功した事例:  以下の設定値で成功した事例があります: 
     304{{{ 
     305SetHandler mod_python 
     306PythonInterpreter main_interpreter 
     307PythonHandler trac.web.modpython_frontend  
     308PythonOption TracEnv /system/path/to/this/directory 
     309PythonOption TracUriRoot /path/on/apache 
     310 
     311AuthType Basic 
     312AuthName "ProjectName" 
     313AuthUserFile /path/to/.htpasswd 
     314Require valid-user 
     315}}} 
     316 
     317`TracUriRoot` は Web ブラウザが取得する Trac のパスを明示的に設定するのに使用します。 (例: domain.tld/projects/trac) 
     318 
     319=== .htaccess 使用時の特記事項 === #Additional.htaccesshelp 
     320 
     321.htaccess を使用している場合、 Trac のディレクトリが他のディレクトリで設定されたた .htaccess ディレクティブを継承し、問題を生じることがあります。このような場合、以下のように .htaccess ファイルに設定してみて下さい: 
     322 
     323{{{ 
     324<IfModule mod_rewrite.c> 
     325  RewriteEngine Off 
     326</IfModule> 
     327}}} 
     328 
    263329 
    264330=== Win32 での特記 === #Win32Issues 
     
    279345}}} 
    280346 
    281 [[http://subversion.tigris.org/faq.html#reposperms]] も参考にして下さい 
     347[http://subversion.tigris.org/faq.html#reposperms] も参考にして下さい 
    282348 
    283349=== FreeBSD での特記 === #FreeBSDissues 
     
    285351 
    286352apache2 を普通にコンパイルしてインストールした場合、 apache はスレッドのサポートなしになります (これが FreeBSD 上であまりよく動かない原因)。 --enable-threads を使用して ./configure を実行することで apache にスレッドのサポートありにすることができますが、これはお勧めできません。 
    287 最良のオプションは /usr/local/apache2/bin/ennvars に下記の一行を追加することだと  [[http://modpython.org/pipermail/mod_python/2006-September/021983.html 考えられます。]] 
     353最良のオプションは /usr/local/apache2/bin/ennvars に下記の一行を追加することだと [http://modpython.org/pipermail/mod_python/2006-September/021983.html 考えられます。] 
    288354 
    289355{{{ 
     
    315381 
    316382Note: 上記のコンフィグが効果を発揮するためには、プロジェクトの root 位置のコンフィグ後に追加しなければなりません。つまり {{{<Location /myproject />}}} 以降です。 
     383 
     384また `PythonOptimize On` が設定されている場合、ページのヘッダとフッタの表示が乱れたり、マクロやプラグインのドキュメンテーションが表示されないことがあります ([http://trac.edgewall.org/ticket/8956 #8956] 参照)。オプションの設定によって影響を受ける箇所について充分考慮できない場合は `Off` に設定する方がよいでしょう。 
    317385 
    318386=== HTTPS の問題 === #HTTPSissues 
     
    334402 
    335403=== php5-mhash または その他の php5 モジュールのセグメンテーションフォルト === #Segmentationfaultwithphp5-mhashorotherphp5modules 
    336 php5-mhash モジュールがインストールされている場合、 (debian etch について報告された) セグメンテーションフォルトに遭遇するでしょう。 php-mhash を削除して、問題が解決するかを確かめてみてください。 debian のバグレポート [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487]] を参考にして下さい。 
    337  
    338 システムライブラリの代わりに、サードパーティのライブラリでコンパイルされた php5 を使用する一部の人々にもトラブルが発生します。ここを確認してください [[http://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault]] 
     404php5-mhash モジュールがインストールされている場合、 (debian etch について報告された) セグメンテーションフォルトに遭遇するでしょう。 php-mhash を削除して、問題が解決するかを確かめてみてください。 debian のバグレポート [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487] を参考にして下さい。 
     405 
     406システムライブラリの代わりに、サードパーティのライブラリでコンパイルされた php5 を使用する一部の人々にもトラブルが発生します。ここを確認してください [http://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault] 
    339407 
    340408---- 
    341 See also: TracGuide, TracInstall, TracCgi, TracFastCgi 
     409See also:  TracGuide, TracInstall, [wiki:TracModWSGI ModWSGI], [wiki:TracFastCgi FastCGI],  [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe]