Changes between Version 1 and Version 2 of TracModPython


Ignore:
Timestamp:
May 13, 2012, 9:15:45 PM (13 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracModPython

    v1 v2  
    1 = Trac と mod_python =
     1= Trac と mod_python = #Tracandmod_python
    22[[TracGuideToc]]
    33
    44Trac では [http://www.modpython.org/ mod_python] を利用可能です。 [http://www.modpython.org/ mod_python] は Trac のレスポンスタイムを飛躍的に向上し、特に [TracCgi CGI] と比べて、 [wiki:TracStandalone tracd]/mod_proxy では使用できない多くの Apache 機能を使えるようにします。
    55
    6 == シンプルなコンフィグレーション ==
    7 
    8 もし mod_python をインストールしたならば、 Apache の設定ファイルに以下の一行を追加してモジュールをロードしなければなりません:
     6以下の説明は Apache2 のためのものです; まだ Apache1.3 を使用しているなら、 [http://trac.edgewall.org/wiki/TracModPython2.7 TracModPython2.7] にいくつか情報があります。
     7
     8== 警告 == #AWordofWarning
     9
     102010 年 6 月 16 日に、 mod_python プロジェクトが正式に終了しました。もし mod_python を新しいインストールで使用することを考えているならば、 '''お願いだからしないで下さい'''! 解決されない既知の課題がありますし、今ではより良い代替手段もあります。詳細については、インストールしようとしているバージョンの TracInstall ページをチェックして下さい。
     11
     12== シンプルなコンフィグレーション == #Simpleconfiguration
     13
     14mod_python をインストールしたら、 Apache の設定ファイルに以下の一行を追加してモジュールをロードしなければなりません:
    915{{{
    1016LoadModule python_module modules/mod_python.so
    1117}}}
    1218
    13  ''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。''
    14 
    15 httpd.conf に以下の記述を追加してmod_python が正しくインストールされているかどうかを確かめることができます。セキュリティ上の理由で、この記述はテストが終了したら削除すべきです。
    16 {{{
     19''Note: モジュールがインストールされている正しいパスは HTTPD をどこにインストールしたかによって変わります。''
     20
     21Debian で apt-get を使用する場合
     22{{{
     23apt-get install libapache2-mod-python libapache2-mod-python-doc
     24}}}
     25(Debian の続き) mod_python をインストールした後に、apache2 (上の Load Module に相当するもの) のモジュールを有効にしなければなりません :
     26{{{
     27a2enmod python
     28}}}
     29Fedora で yum を使用する場合:
     30{{{
     31yum install mod_python
     32}}}
     33httpd.conf に以下を加えることで、 mod_python がインストールされたかテストすることができます。セキュリティ上の理由から、テストが終わった時点で以下のコンフィグは削除するべきです。 Note: mod_python.testhandler は mod_python 3.2+ で利用可能です。
     34{{{
     35#!xml
    1736<Location /mpinfo>
    1837   SetHandler mod_python
     38   PythonInterpreter main_interpreter
    1939   PythonHandler mod_python.testhandler
     40   Order allow,deny
     41   Allow from all
    2042</Location>
    2143}}}
     
    2345mod_python を使用した簡単な Trac のセットアップ方法は以下のようになります:
    2446{{{
     47#!xml
    2548<Location /projects/myproject>
    2649   SetHandler mod_python
     50   PythonInterpreter main_interpreter
    2751   PythonHandler trac.web.modpython_frontend
    2852   PythonOption TracEnv /var/trac/myproject
    2953   PythonOption TracUriRoot /projects/myproject
    30 </Location>
    31 }}}
    32 
    33 '''`TracUriRoot`''' オプションは不要な場合もあります。 `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないようであれば '''`TracUriRoot`''' を追加して下さい。 `Location` と '''`TracUriRoot`''' が同じパスになることに気づくでしょう。
    34 
    35 === 認証設定 ===
    36 
    37 認証の設定は [wiki:TracCgi#認証を追加する CGI] と同じです:
    38 {{{
    39 <Location "/projects/myproject/login">
     54   Order allow,deny
     55   Allow from all
     56</Location>
     57}}}
     58
     59'''`TracUriRoot`''' オプションは不要な場合もあります。 `TracUriRoot` オプションを付けずに試し、 Trac が正しく URL を生成できないか、 "No handler matched request to..." というエラーが出るようであれば '''`TracUriRoot`''' を追加して下さい。 `Location` と '''`TracUriRoot`''' が同じパスになるようにしてください。
     60
     61!PythonOption の一覧は以下の通りです。
     62{{{
     63    # For a single project
     64    PythonOption TracEnv /var/trac/myproject
     65    # For multiple projects
     66    PythonOption TracEnvParentDir /var/trac/myprojects
     67    # For the index of multiple projects
     68    PythonOption TracEnvIndexTemplate /srv/www/htdocs/trac/project_list_template.html
     69    # A space delimitted list, with a "," between key and value pairs.
     70    PythonOption TracTemplateVars key1,val1 key2,val2
     71    # Useful to get the date in the wanted order
     72    PythonOption TracLocale en_GB.UTF8
     73    # See description above       
     74    PythonOption TracUriRoot /projects/myproject
     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 を解凍して展開することで、この問題を回避できます。
     85=== 認証設定 === #ConfiguringAuthentication
     86
     87パスワードファイルを作成して、認証を構成するには [wiki:TracCgi#AddingAuthentication CGI] と同じように行います。
     88{{{
     89#!xml
     90<Location /projects/myproject/login>
    4091  AuthType Basic
    4192  AuthName "myproject"
     
    4596}}}
    4697
    47 === !PythonPath を設定する ===
    48 
    49 もし Trac のインストールが、通常の Python ライブラリのパスの中に無い場合、 Apache が Trac の mod_python ハンドルを見つけられるように `PythonPath` ディレクティブで指定しなければなりません:
    50 {{{
     98Apache の mod_ldap 認証のコンフィグは少し扱いにくいです。(httpd 2.2.x と OpenLDAP: slapd 2.3.19)
     99
     1001. Apache の httpd.conf に以下のモジュールをロードする必要があります
     101{{{
     102LoadModule ldap_module modules/mod_ldap.so
     103LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
     104}}}
     105
     1062. httpd.conf は以下のような感じになります:
     107
     108{{{
     109#!xml
     110<Location /trac/>
     111  SetHandler mod_python
     112  PythonInterpreter main_interpreter
     113  PythonHandler trac.web.modpython_frontend
     114  PythonOption TracEnv /home/trac/
     115  PythonOption TracUriRoot /trac/
     116  Order deny,allow
     117  Deny from all
     118  Allow from 192.168.11.0/24
     119  AuthType Basic
     120  AuthName "Trac"
     121  AuthBasicProvider "ldap"
     122  AuthLDAPURL "ldap://127.0.0.1/dc=example,dc=co,dc=ke?uid?sub?(objectClass=inetOrgPerson)"
     123  authzldapauthoritative Off
     124  require valid-user
     125</Location>
     126}}}
     127
     128Microsoft Active Directory の LDAP インタフェースを使用する場合:
     129
     130{{{
     131#!xml
     132<Location /trac/>
     133  SetHandler mod_python
     134  PythonInterpreter main_interpreter
     135  PythonHandler trac.web.modpython_frontend
     136  PythonOption TracEnv /home/trac/
     137  PythonOption TracUriRoot /trac/
     138  Order deny,allow
     139  Deny from all
     140  Allow from 192.168.11.0/24
     141  AuthType Basic
     142  AuthName "Trac"
     143  AuthBasicProvider "ldap"
     144  AuthLDAPURL "ldap://adserver.company.com:3268/DC=company,DC=com?sAMAccountName?sub?(objectClass=user)"
     145  AuthLDAPBindDN       ldap-auth-user@company.com
     146  AuthLDAPBindPassword "the_password"
     147  authzldapauthoritative Off
     148  # require valid-user
     149  require ldap-group CN=Trac Users,CN=Users,DC=company,DC=com
     150</Location>
     151}}}
     152
     153Note 1: このケースでは LDAP 検索で複数の OU をまとめて取得するために、 AD のグローバルカタログサーバ (Global Catalog Server) に接続しています (ポート番号が通常 LDAP で使用される 389 ではなく 3268 であることに注意してください) 。 GCS は基本的に "平らな" ツリーであり、ユーザが、どの OU に属するか不明な場合でも検索することができます。
     154
     155Note 2: Active Directory は、レコードにアクセスするために user/password (AuthLDAPBindDN と AuthLDAPBindPassword) による認証を必要とします。 (訳注: GC ではなく、通常の LDAP であれば Active Directory の ACL に認証なしユーザからの読み取り許可を設定すれば不要です)
     156
     157Note 3: "require ldap-group ..." ディレクティブはメンバのアクセスが許可されている AD のグループを指定します。
     158
     159
     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
     173
     174=== !PythonPath を設定する === #SettingthePythonPath
     175
     176もし Trac のインストールが、通常の Python ライブラリのパスの中に無い場合、 Apache が Trac の mod_python ハンドラを見つけられるように `PythonPath` ディレクティブで指定しなければなりません:
     177{{{
     178#!xml
    51179<Location /projects/myproject>
    52180  ...
     
    56184}}}
    57185
    58 !PythonPath ディレクティブを使用するときは気をつけてください。そして、 `SetEnv PYTHONPATH` は動かないので使用しないで下さい。
    59 
    60 == マルチプロジェクトのセットアップ ==
     186!PythonPath ディレクティブを使用するときは気をつけてください。そして、 `SetEnv PYTHONPATH` は動かないので ''使用しない'' で下さい。
     187
     188== マルチプロジェクトのセットアップ == #Settingupmultipleprojects
    61189
    62190Trac の mod_python ハンドラには Subversion の `SvnParentPath` とよく似た `TracEnvParentDir` というコンフィグレーションオプションがあります。
    63191{{{
     192#!xml
    64193<Location /projects>
    65194  SetHandler mod_python
     195  PythonInterpreter main_interpreter
    66196  PythonHandler trac.web.modpython_frontend
    67197  PythonOption TracEnvParentDir /var/trac
     
    72202`/projects` の URL をリクエストすると、 TracEnvironment の親ディレクトリ `TracEnvParentDir` として設定したディレクトリ配下のサブディレクトリ一覧が表示されます。その一覧から何かプロジェクトを選択するとそれに該当する TracEnvironment を開くことができます。
    73203
    74 あなたのプロジェクトのホームページとして、サブディレクトリのリストが必要ないならば、以下のようにすることができます。
    75 {{{
     204あなたのプロジェクトのホームページとして、サブディレクトリのリストが必要ないならば、以下のようにすることができます
     205{{{
     206#!xml
    76207<LocationMatch "/.+/">
    77208}}}
    78209
    79 これは Apache に mod_python を使用するために !DocumentRoot フォルダの代わりのロケーションを使用することを教えます。
     210これは !DocumentRoot フォルダの直下にカスタムホームページとして配置されていない場合には、すべてのロケーションで代わりに mod_python を使用することを Apache に教えます。
    80211
    81212すべてのプロジェクトに対して、 `<LocationMatch>` ディレクティブを使用することによって同じ認証の仕組みを使用することができます。
    82213{{{
     214#!xml
    83215<LocationMatch "/projects/[^/]+/login">
    84216  AuthType Basic
     
    89221}}}
    90222
    91 == 仮想ホストの設定 ==
     223== 仮想ホストの設定 == #VirtualHostConfiguration
    92224
    93225以下に示す例は Trac を仮想サーバーとしてセットアップするときに必要な設定です。 (例えば、!http://trac.mycompany.com といった
     
    95227
    96228{{{
     229#!xml
    97230<VirtualHost * >
    98     DocumentRoot /var/trac/myproject
     231    DocumentRoot /var/www/myproject
    99232    ServerName trac.mycompany.com
    100233    <Location />
    101234        SetHandler mod_python
     235        PythonInterpreter main_interpreter
    102236        PythonHandler trac.web.modpython_frontend
    103237        PythonOption TracEnv /var/trac/myproject
     
    113247}}}
    114248
     249この設定は全てのケースでうまく動くわけではありません。動かない場合は以下を試してください:
     250 * `<Location>` の代わりに `<LocationMatch>` を使用する。
     251 * <Location />  はサーバの設定によっては、単にサーバのルートではなく完全なホスト名を参照していることがあります。このような場合、 (上記の例では下段にあたるログイン用ディレクトリを含む) 全てのリクエストが Python に送信され、認証が動かなくなります (認証を行おうとすると、認証が設定されていないというエラー画面が表示されます)。 URL を変更できるのであれば (/, /login の代わりに /web/, /web/login などのように) ルートではなくサブディレクトリを使ってみてください。
     252 * Apache の `NameVirtualHost` を設定している場合、 `<VirtualHost *>` ではなく `<VirtualHost *:80>` を使用せねばならないかもしれません。
     253
    115254複数のプロジェクトをサポートする仮想ホストの設定では、 "`TracEnv`" /var/trac/myproject を "`TracEnvParentDir`" /var/trac/ に置き換えて下さい。
    116255
    117 == トラブルシューティング ==
    118 
    119 サーバエラーのページがでたときには、 まずはApache のエラーログを確認するか、 `PythonDebug` オプションを有効にして下さい:
    120 {{{
     256Note: !DocumentRoot は TracEnvironment と同じディレクトリにしないでください。 何かのバグがあった場合に TracEnvironment の内容が外部からアクセス可能になってしまうおそれがあります。
     257
     258== トラブルシューティング == #Troubleshooting
     259
     260サーバエラーのページがでたときには、 まずは Apache のエラーログを確認するか、 `PythonDebug` オプションを有効にして下さい:
     261{{{
     262#!xml
    121263<Location /projects/myproject>
    122264  ...
     
    125267}}}
    126268
    127 === フォームを送信するときの問題 ===
    128 
    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` を使用しています。しかし、この方法がエレガントな解決方法だとは思っていません。
    136 
    137 === .htaccess ファイルを使用する ===
    138 
    139 ディレクトリの設定をほんのちょっと修正するには `.htaccess` ファイルを使用すればいいかもしれませんが、これは動作しません。 Apache が Trac URL に "/" (スラッシュ) を追加すると、正しい動作を妨げてしまいます。
    140 
    141 それでは、 mod_rewrite を使用すればいいように見えますが、これも動作しません。とにかく、百害あって一理なしです。指示に従ってください。:)
    142 
    143 === Win32 での特記 ===
    144 Windows 上で mod_python 3.2 より前のバージョンで Trac を動かしている場合、 添付ファイルのアップロードが '''動かない''' でしょう。この問題は 3.1.4 以降で解決されました。 mod_python をアップグレードしてこの問題を解決してください。
    145 
    146 === OS X での特記 ===
     269複数プロジェクトの場合は、全てのプロジェクトでサーバを再起動してみてください。
     270
     271=== Expat-related のセグメンテーションフォルト === #expat
     272
     273この問題は Unix 上で Python 2.4 を使用するとき、ほぼ確実に発生します。
     274Python 2.4 の使用する Expat (C で書かれた XML パーザライブラリ) と Apache の使用する Expat のバージョンが異なる場合に、セグメンテーションフォルトが発生します。
     275Trac 0.11 は Genshi (間接的に Expat が使用される) を使用しているため、以前 Trac 0.10 で正常に動いていたとしても、現在のあなたの環境で問題が起こり得ます。
     276
     277Graham Dumpleton が、この問題について詳しく書いています。問題の [http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash 説明と回避方法] を確認してください。
     278
     279=== フォームを送信するときの問題 === #Formsubmissionproblems
     280
     281もし、 Trac で何かしらのフォームを送信したときに、トラブルに見舞われたら (送信後にスタートページにリダイレクトされてしまう、などがよくある問題です)  {{{DocumentRoot}}} の中に mod_python をマッピングしたパスと同じフォルダやファイルが存在しないか確認してください。どういうわけか、 mod_python は静的リソースと同じところにマッピングされると混乱してしまいます。
     282
     283=== 仮想ホストの設定においての問題 === #Problemwithvirtualhostconfiguration
     284
     285<Location /> ディレクティブが使用されている場合に `DocumentRoot` を設定すると ''403 (Forbidden)'' エラーになることがあります。 `DocumentRoot` ディレクティブを削除するか、アクセスが許されているディレクトリに設定されているかどうかを確認して下さい (対応する `<Directory>` ブロックにて)
     286
     287<Location /> で `SetHandler` を使用すると、すべてを mod_python でハンドルすることになりますが、いかなる CSS も image/icons もダウンロードできなくなります。この問題を回避するために、われわれは <Location /trac> で `SetHandler None` を使用しています。しかし、この方法がエレガントな解決方法だとは思っていません。
     288
     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
     297=== .htaccess ファイルを使用する === #Using.htaccess
     298
     299ディレクトリの設定をほんのちょっと修正するには `.htaccess` ファイルを使用すればいいかもしれませんが、これは動作しません。 Apache が Trac の URL に "/" (スラッシュ) を追加すると、正しい動作を妨げてしまいます。
     300
     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
     329
     330=== Win32 での特記 === #Win32Issues
     331Windows 上で mod_python 3.2 より前のバージョンで Trac を動かしている場合、添付ファイルのアップロードが '''動かない''' でしょう。この問題は 3.1.4 以降で解決されました。 mod_python をアップグレードしてこの問題を解決してください。
     332
     333
     334=== OS X での特記 === #OSXissues
    147335
    148336OS X で mod_python を使用するとき、 `apachectl restart` コマンドで Apache の再起動ができないでしょう。これは、 mod_python 3.2 でおそらく修正されるでしょう。しかし、 [http://www.dscpl.com.au/projects/vampire/patches.html ここ] にあるパッチを適用すれば、 3.2 以前のバージョンでもこの問題を回避できます。
    149337
    150 === SELinux での特記 ===
    151 
    152 もし、 Trac が ''Cannot get shared lock on db.lock'' というようなメッセージが出力されたら、
     338=== SELinux での特記 === #SELinuxissues
     339
     340もし、 Trac が ''Cannot get shared lock on db.lock'' というようなメッセージが出力たら、
    153341リポジトリに セキュリティコンテキストを設定する必要があるでしょう:
    154342
     
    157345}}}
    158346
    159 See also [[http://subversion.tigris.org/faq.html#reposperms]]
    160 
    161 === FreeBSD での特記 ===
     347[http://subversion.tigris.org/faq.html#reposperms] も参考にして下さい
     348
     349=== FreeBSD での特記 === #FreeBSDissues
    162350mod_python と sqlite パッケージのインストールバージョンに注意して下さい。 Ports には両パッケージともいろいろなバージョンがありますが、初期の pysqlite と mod_python は組み合わせることができません。前者は python のスレッド機能サポートが必要ですし、 後者 は python のスレッド機能なしのインストールが必要です。
    163351
    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`) も使用できないでしょう。
     352apache2 を普通にコンパイルしてインストールした場合、 apache はスレッドのサポートなしになります (これが FreeBSD 上であまりよく動かない原因)。 --enable-threads を使用して ./configure を実行することで apache にスレッドのサポートありにすることができますが、これはお勧めできません。
     353最良のオプションは /usr/local/apache2/bin/ennvars に下記の一行を追加することだと [http://modpython.org/pipermail/mod_python/2006-September/021983.html 考えられます。]
     354
     355{{{
     356export LD_PRELOAD=/usr/lib/libc_r.so
     357}}}
     358
     359=== Subversion での特記 === #Subversionissues
     360
     361コマンドラインや TracStandalone で使用しているときは動くのに、 mod_python を使用しているときのみ、 `Unsupported version control system "svn"` というエラーが出力される場合、 [wiki:"TracModPython#SettingthePythonPath" PythonPath] ディレクティブに Python bindings へのパスを追加するのを忘れている可能性があります。 (Python の `site-packages` ディレクトリに Python binding へのリンクを追加するか、 `.pth` ファイルを作っておくのがベターです。)
     362
     363これに当てはまらない場合、使用している Subversion のライブラリが Apache が使用しているバージョンと適合性がないかもしれません。 (たいてい `apr` ライブラリの不適合性が原因になります。) その場合、 Apache の svn モジュール (`mod_dav_svn`) も使用できないでしょう。
     364
     365また、ランタイムエラー ({{{argument number 2: a 'apr_pool_t *' is expected}}}) を抑止するためにも、複数のサブインタプリタを使用できる最近のバージョンの `mod_python` が必要になります。 3.2.8 では ''たぶん'' 動きますが、 [http://trac.edgewall.org/ticket/3371 #3371] に記述されている通り、メインインタプリタを使用するように強制するワークアラウンドを使用する方がおそらく良いでしょう:
     366{{{
     367PythonInterpreter main_interpreter
     368}}}
     369これは、よく知られている mod_python と Subversion の Python バインディングの他の問題 ([http://trac.edgewall.org/ticket/2611 #2611], [http://trac.edgewall.org/ticket/3455 #3455]) について推奨しているワークアラウンドです。 [http://trac.edgewall.org/ticket/3455#comment:9 #3455] Graham Dumpleton のコメントに問題点が指摘されています。
     370
     371=== ページレイアウトの問題 === #Pagelayoutissues
     372
     373Trac のページフォーマットが奇妙に見えるなら、ページレイアウトを管理するスタイルシートが Web サーバによって適切に扱われていない可能性が考えられます。 Apache のコンフィグに以下を追加してみてください:
     374{{{
     375#!xml
     376Alias /myproject/css "/usr/share/trac/htdocs/css"
     377<Location /myproject/css>
     378    SetHandler None
     379</Location>
     380}}}
     381
     382Note: 上記のコンフィグが効果を発揮するためには、プロジェクトの root 位置のコンフィグ後に追加しなければなりません。つまり {{{<Location /myproject />}}} 以降です。
     383
     384また `PythonOptimize On` が設定されている場合、ページのヘッダとフッタの表示が乱れたり、マクロやプラグインのドキュメンテーションが表示されないことがあります ([http://trac.edgewall.org/ticket/8956 #8956] 参照)。オプションの設定によって影響を受ける箇所について充分考慮できない場合は `Off` に設定する方がよいでしょう。
     385
     386=== HTTPS の問題 === #HTTPSissues
     387
     388Trac を完全に https で実行したいにも関わらず、プレーンな http にリダイレクトされる場合、 Apache のコンフィグに以下を追加してください:
     389{{{
     390#!xml
     391<VirtualHost * >
     392    DocumentRoot /var/www/myproject
     393    ServerName trac.mycompany.com
     394    SetEnv HTTPS 1
     395    ....
     396</VirtualHost>
     397}}}
     398
     399=== Fedora 7 の問題 === #Fedora7Issues
     400必ず 'python-sqlite2' をインストールしてください。 TracModPython では必須です (tracd では必須ではありません)。
     401
     402
     403=== php5-mhash または その他の php5 モジュールのセグメンテーションフォルト === #Segmentationfaultwithphp5-mhashorotherphp5modules
     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]
    169407
    170408----
    171 See also: TracGuide, TracInstall, TracCgi, TracFastCgi
     409See also:  TracGuide, TracInstall, [wiki:TracModWSGI ModWSGI], [wiki:TracFastCgi FastCGI],  [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe]