IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

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)」を選ぶ。

f:id:qpci32siekqd:20121108210247p:plain

 

% 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公式サイトからTracをダウンロードしてくる。

f:id:qpci32siekqd:20121108203346p:plain

 

ここでは​『Trac-1.0.tar.gz』をダウンロード。

f:id:qpci32siekqd:20121108203407p:plain

 

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」でアクセスする。

f:id:qpci32siekqd:20121108214004p:plain

Available Projectsと、「trac-admin .... initenv」を実行した途中で入力したプロジェクト名が出ていれば動いている。なおブラウザでアクセスすると、ターミナルには「127.0.0.1 -- ......."GET / HTTP/1.1"」のようにログが出力される。

f:id:qpci32siekqd:20121108214410p:plain

ターミナルをCtrl-Cで中断するとブラウザからはlocalhostでアクセスはできなくなる。

 

 

次にApacheTracを接続する。

ここでは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を作成する。

f:id:qpci32siekqd:20121108233624p:plain

先ほどのtrac.wsgiエイリアスをはる。WSGIScriptAliasで「http://サーバー名/trac」でアクセスするとtrac.wsgiが読み込まれるようにする。

他のxxx.confファイルでmod_wsgi.soを読み込んでいる場合にはLoadModuleは必要ない。書いているとApachを起動した際に「[warn] module wsgi_module is already loaded, skipping」と出る。書いていても問題ないが気持ち悪いなら消しておく。

 

trac.wsgiパーミッションを変更する。

% chmod 755 trac.wsgi 

パーミッションを変更しておかないと「http://サーバー名/trac」でアクセスするとパーミッションのエラーが出る。

 

 あとtrac-admin ..... initenvで作成したディレクトリ内にデータベースファイルdbがあったり、ログディレクトリがあったりするのだけれど、パーミッションが設定できていない場合には下のようにTraceback…Unable to get database connection というエラーが出るのでパーミッションを修正する。(この前にtrac.iniが読めないというエラーも出た)

 

f:id:qpci32siekqd:20121108235049p:plain

 

パーミッションを修正すると以下のように正常に表示される。

f:id:qpci32siekqd:20121109000326p:plain