Trac 1.0インストール途中までのメモ書き
Trac 1.0の必要条件は以下の通り。ここではApacheで公開するのではなく、Trac単体での動作時に必要なものを挙げる。
- Python バージョン2.5以上、3.0未満
- setuptools バージョン0.6以上
- Subversion バージョン1.5 か.1.6
Pythonのバージョンは
% python -V
で確認できる。
自分の環境ではPytyonのバージョンは古く2.5.2だった。
まずはsetuptoolsは他のインストールをし易くするために入れる。まずはsetuptoolのサイトから.eggをダウンロードしてくる。Pytyonのバージョンに合わせて.eggを選ぶ。たとえば自分のようにPythonのバージョンが2.5では「setuptools-0.6c11-py2.5.egg (md5)」を選ぶ。
% sudo sh setuptools-xxxxxxxxx
を実行する。インストールに成功すると、easy_installコマンドが使えるようになる。
次にTrac 1.0をインストールする。
% sudo easy_install Trac==1.0
を実行するとSearching …が始まり、Tracのインストールがされる。「Finished processing dependencies for Trac==1.0」がログに表示され、trac-adminコマンドが使えるようになれば、Tracのインストールは出来ている。
自分の仮想環境ではWANへのアクセスができるようになっていたため、easy_installを使うことができた。実際に立ち上げたいサーバーは外部ネットへのアクセスが出来ないため、別途Tracファイルを持ってくる必要があった。
ここでは『Trac-1.0.tar.gz』をダウンロード。
『Trac-1.0.tar.gz』を解凍し、Trac1.0にディレクトリ移動。
% python setup.py install
を実行するとインストールされる。trac-adminコマンドが使えるようになれば、Tracのインストールは成功。
Tracのプロジェクトを作成する。
% trac-admin プロジェクトファイルを置きたいディレクトリパス&ディレクトリ名 initenv
で、tracの設定ファイルを作成する。パスはプロジェクトを置きたいディレクトリを指定。パスの途中に日本語があると、「Non-ascii environment path…」と怒られる。
コマンドを実行すると、途中で入力を求められる。
「Project Name [My Project]」はプロジェクト名を、「Database connection string [sqlite:db/trac.db]」はデータベースを設定する。
データベースの種類はPythonに付属のSQLiteや、MySQLなどが選べるようだが、データベースを触れる権限を持っていないため、そのままSQLiteを選んだ。SQLiteを選ぶ場合は何も入力せずにエンターを押す。
これで先程指定したディレクトリが作成されて、中にTracの設定ファイルが作られている。
ここでブラウザからTracにアクセスできるかを試す。
% tracd --port 8000 プロジェクトディレクトリパス
パスは先程作ったディレクトリを指定する。(trac-admin .... initenvを実行したログの中に、コマンドは書かれているので、それをコピペすればよい)
これで一時的にサーバーが動き出すのでブラウザから「http://localhost:8000」でアクセスする。
Available Projectsと、「trac-admin .... initenv」を実行した途中で入力したプロジェクト名が出ていれば動いている。なおブラウザでアクセスすると、ターミナルには「127.0.0.1 -- ......."GET / HTTP/1.1"」のようにログが出力される。
ターミナルをCtrl-Cで中断するとブラウザからはlocalhostでアクセスはできなくなる。
ここではmod_wsgiを使う。
まずtrac-adminコマンドのdeployオプションを使って、「cgi-bin/trac.wsgi」ファイルを作成する。
% trac-admin プロジェクトパス deploy 出力先ディレクトリ
コマンドを実行すると、「cgi-bin」「htdocs」ディレクトリが作られるので、これをまとめてWeb公開する場所に移動する。
trac.confを作成する。
Ubuntuだと、/etc/httpd/conf.dの下にtrac.confを作成する。
先ほどのtrac.wsgiにエイリアスをはる。WSGIScriptAliasで「http://サーバー名/trac」でアクセスするとtrac.wsgiが読み込まれるようにする。
他のxxx.confファイルでmod_wsgi.soを読み込んでいる場合にはLoadModuleは必要ない。書いているとApachを起動した際に「[warn] module wsgi_module is already loaded, skipping」と出る。書いていても問題ないが気持ち悪いなら消しておく。
パーミッションを変更しておかないと「http://サーバー名/trac」でアクセスするとパーミッションのエラーが出る。
あとtrac-admin ..... initenvで作成したディレクトリ内にデータベースファイルdbがあったり、ログディレクトリがあったりするのだけれど、パーミッションが設定できていない場合には下のようにTraceback…Unable to get database connection というエラーが出るのでパーミッションを修正する。(この前にtrac.iniが読めないというエラーも出た)
パーミッションを修正すると以下のように正常に表示される。