TracのApache対応
少し時間ができたのでTracのmod_python対応をやってしまうのです
まあ、やることはhttp.confに以下の内容を書き込むだけなんですが
apache設定ファイルに追記
<Location /uri/to/trac> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracUriRoot "/trac" PythonOption TracEnvParentDir /path/to/trac PythonOption PYTHON_EGG_CACHE /path/to/.egg-cache </Location> <LocationMatch "/uri/to/trac/.*/login"> AuthType Basic AuthName "trac" AuthUserFile "/path/to/.htpasswd" Require valid-user </LocationMatch>
ちなみに、CentOSとかでyum install tracを使ってTracのインストールをすると、/etc/httpd/conf.d/以下に上記と同等のtrac.confが自動的に作成されるので便利なんですが、はまる原因にもなるので注意が必要だと思います。ええ、はまりましたとも。
がりがり書き込んだらapacheの再起動をして完了です。それと、Tracに対してapacheから書き込むファイル(DBとかログとか)はApache権限にしておかないとエラーが出るのです。
若干解説〜
- 前半の最後の行でeggの解凍領域を指定してあげないとエラーが出る場合があります
- 特にプラグインを使う場合はeggファイル呼び出しが多いみたいなんで必須だと思ったほうが良いかも
PythonOption PYTHON_EGG_CACHE /path/to/.egg-cache
うまく行かなくて悩んでる事
LocationMatchでのBASIC認証の際に、プロジェクトごとの.htpasswdを読み込ませる方法が思いつかないのです。。。Location内ではAllowOverideの指定ができないらしいから.htaccessで個別設定もできないしなぁ。。。困った
ひとまず、プロジェクトを作るごとにhttpd.conf追記→Apache再起動はちょっといただけないので、共通認証方式でやってみるのです。Apacheモジュールで認証を任意のバックエンドにぶん投げる、なんて都合の良いものはないかしら?
とりあえずmod_python設定は完了かな?
また時間ができたときにプラグインの追加とかやるのです