UbuntuでTracを動かそう

Ubuntu12.04でTracの環境を構築してみました。mod_pythonは最近まで開発が停止していたようなので、Trac + Apache + WSGI で動かしてみます。mod_pythonの開発は現在は再開されているそうなので、そちらの方が良くなったらWSGIから切り替えるかもしれません。

参考になる資料は次のとおり。

最初に環境は下記のとおり。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS"

最新の13系ではありませんが、基本は変わらないでしょう。

Apache, Pythonはインストールされているという前提です。trac には下記が必要です。

$ sudo apt-get install \
 trac \
 trac-xmlrpc \
 trac-ja-resource \
 libapache2-mod-python \
 libapache2-mod-python-doc \
 libapache2-mod-wsgi

trac-xmlrpcはEclipse mylynと連携するのに必要らしいので入れてありますが、必須ではありません。

参考にした資料ではSubversionのリポジトリも作っていますが、ここではとりあえずTracだけ動かしたいので、すぐにTrac用ディレクトリとプロジェクトを作成します。ディレクトリの所有者はwww-dataにします。今回はSQLiteを使っていますが、PostgreSQLを使うこともできます。その場合は別の設定方法になります。

$ sudo mkdir /var/trac
$ sudo chown -R www-data:www-data /var/trac
$ sudo trac-admin /var/trac/sample initenv
Project Name [My Project]> sample
Database connection string [sqlite:db/trac.db]> 

$ sudo trac-admin /var/www/trac/testrepos/ wiki load /usr/share/trac-ja-resource/trac/wiki/default-pages/
$ sudo cp /usr/share/trac-ja-resource/trac/templates/* /var/www/trac/testrepos/templates/

ここではsampleというTracプロジェクトを作成しました。環境設定は /var/trac/sample/conf/trac.ini を編集します。とりあえずはそのままでも大丈夫です。カスタマイズが必要になったら編集しましょう。

確認用にtracdを起動します。

$ sudo tracd --port 8000 /var/trac/sample/

これでWebブラウザから接続ができるようになるので、http://localhost:8000/ へアクセスします。

Apache+WSGIを使う場合の設定については、/usr/share/doc/trac/README.Debian.gz、/usr/share/doc/trac-ja-resource/README.Debian.jaが参考になります。

モジュールのロードについては、a2enmodしなくても下記のようにインストール時に有効となっています。

$ cat /etc/apache2/mods-enabled/wsgi.load 
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

mods-enabledにwsgi.loadがない場合はa2enmodでwsgiを有効にする必要があるかもしれません。

次に、/var/trac/trac.wsgi を用意します。複数のTracプロジェクトを用意したいのでos.environにはTRAC_ENV_PARENT_DIRを指定しています。

import os

os.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac'
os.environ['PYTHON_EGG_CACHE'] = '/var/trac/eggs'

import trac.web.main
application = trac.web.main.dispatch_request

ちなみに、/usr/share/trac-ja-resource/cgi-bin/trac.cgi を使うという方法もあるようです。

次に、/etc/apache2/sites-available/default を変更しました。下記のようになります。

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName 127.0.0.1:80
#略
  WSGIScriptAlias /trac /var/trac/trac.wsgi
  <Directory /var/trac>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>

仮想ホストを別途用意するほどのことではないので default をそのまま使っています。

設定ができたら、apache2を再起動します。

$ sudo service apache2 restart

未確認ですが、/usr/share/trac-ja-resource/cgi-bin/trac.cgi を使う場合は、defaultへ下記を追加します。

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName 127.0.0.1:80
#略
ScriptAlias /trac /usr/share/trac-ja-resource/cgi-bin/trac.cgi
<Location "/trac">
  SetEnv TRAC_ENV_PARENT_DIR "/var/www/trac"
</Location>
</VirtualHost>

そうそう、XML_RPCを有効にするには /var/trac/sample/conf/trac.ini の編集が必要です。

[components]
tracrpc.* = enabled 

XML_RPCのAPIを利用するには認証の設定も必要なのですが、今回はここまで。

続き:Ubuntu, Trac, BASIC認証などもろもろ | hiro345

同じタグの記事: Linux
同じタグの記事: Python
同じタグの記事: Trac
同じタグの記事: Ubuntu
同じカテゴリの記事: Linux