事情があって、trac0.11devとtrac0.10を並行稼動させることに。考えてみたら、いろいろと面倒くさそうだ。
- tracをインストールするとlib/python2.4/site-packagesに入る。こちらはバージョン管理されてるのだけど、実行用のスクリプト(tracd, trac-admin)はbinに入ってしまうので、混ぜると危険。
- ていうか、よく見たらlib/python2.4/site-packages/tracに入ってる。だめじゃん。
- ついでPythonのバージョンも、2.4にしたい
- apacheのmod_pythonとかmod_wsgiは、複数のPythonがあると具合が悪いし、そもそもPythonのバージョンが違ったらmodも別バイナリになるわけで。
- そうすると、スタンドアロンにしないといけないかな
というわけで、以下のようにすることにした。
- 別のユーザを作って、なにもかも$HOMEに入れる
- Python2.4.4
- subversion1.4.5
- swig-pyも忘れずに
- trac0.10.4
- ClearSilver0.10.5
- tracはスタンドアロンで動かして、apacheにはmod_rewriteでつなぐ
- 0.11devのほうは、mod_wsgiで動かしている。
はまったところ
なお、「~/」というのは、ほんとは絶対パスで指定している。
- subversion
- ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-apxs=/usr/bin/apxs2 --prefix=~/svn
- あとでpythonから使うと、「ImportError: /home/prjmatch/svn/lib/libsvn_ra_dav-1.so.0: undefined symbol: gss_delete_sec_context」というようなエラーが起きる。
- http://clouder.jp/yoshiki/mt/archives/000734.html ←これを試したら「-lgssapiが見つからない」という理不尽なエラーになる。
- http://www.gossamer-threads.com/lists/trac/users/27684 ←これを見て、neonをインストールしてみる。./configure --with-ssl -with-zlib --enable-shared --enable-static
- なんとかなった。
- make installで、apacheモジュールがコピーできないと。rootじゃないので当然。make -i で無視したらうまくいった。
- ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-apxs=/usr/bin/apxs2 --prefix=~/svn
- ClearSilver
- なんか全体に変
- pythonライブラリが作れない。以下の手順でできた。
./configure --prefix=~/ --disable-apache --enable-gettext --enable-python --with-python=~/python/bin/python rules.mkを編集: PYTHON_INC = -I~/python/include PYTHON_LIB = -L~/python/lib/python2.4/lib-dynload PYTHON = ~/python/bin/python make make install cd python make cp build/lib.linux-i686-2.4/neo_cgi.so ~/python/lib/python2.4/lib-dynload/
- apacheと連携
- mod_rewriteとmod_pythonを有効化
- /etc/apache2/mods-available/proxy.confを変更。指定のURLのみプロキシする。うっかりフォワードプロキシにしないよう注意。
<Proxy http://localhost:8080/test/foo* > AddDefaultCharset off Order deny,allow Allow from all </Proxy>
-
- /etc/apache2/sites-enabled/000-default に追加
# support for standalone Trac RewriteEngine on RewriteRule ^/test/foo/(.*) http://localhost:8080/test/foo/$1 [L,P]
-
- tracd -d -p 8080 --base-path=test/foo bar