Trac をインストール
rpmforge に Trac の rpm を見つけたのでインストールする。
環境 : CentOS 4.6
delany# yum --enablerepo=rpmforge install trac : Installing: trac noarch 0.10.4-1.el4.rf rpmforge 669 k Installing for dependencies: clearsilver i386 0.10.4-2.el4.rf rpmforge 254 k python-clearsilver i386 0.10.4-2.el4.rf rpmforge 199 k
Clear Silver は C 言語で実装されたテンプレート・エンジン。
他に Python, SQLite, Subversion とかも必要だが、この環境には既にインストール済み。
そして Trac で管理するプロジェクト毎の作業を行う。 (この説明ではプロジェクト名を tractest とする)
以下の場合、まず Subversion リポジトリを作成する。
- 成果物を Subversion で管理する。
- そのリポジトリを Trac のリポジトリ・ブラウザで参照する。
# svnadmin create --fs-type fsfs /home/svn/tractest
このリポジトリは Trac 実行ユーザの権限で読める必要がある (Subversion リポジトリの fs-type が fsfs の場合) 。 だけど自分はこのリポジトリを HTTP でアクセスもするので、 Apache HTTP Server の実行ユーザである apache で読み書き出来る様に設定。
# cd /home/svn # chmod -R apache:apache tractest # ls -ld tractest drwxr-xr-x 7 apache apache 4096 Mar 17 00:49 tractest # ls -Zd tractest drwxr-xr-x apache apache root:object_r:httpd_sys_content_t tractest
続いて、プロジェクト用の Trac Environment を作成する。
Trac の rpm のインストールで /var/lib/trac が作成されているので、 自分はこれをそのまま全 Trac Environment の親ディレクトリとして 利用する。よって /var/lib/trac/tractest に作成する。 (ディレクトリ名とプロジェクト名は違っても構わない)
# trac-admin /var/lib/trac/tractest initenv : Project Name [My Project]> tractest (プロジェクト名を入力。) : Database connection string [sqlite:db/trac.db]> (データベースについて入力。SQLite を標準の状態で使用するならこのまま Enter 。) : Repository type [svn]> (リポジトリ・ブラウザで参照するリポジトリのタイプを入力。) : Path to repository [/path/to/repos]> /home/svn/tractest (Subversion リポジトリのパス。リポジトリ中のモジュールのパスを含んでも良い。 ブランクにするとリポジトリを利用しない。) : Templates directory [/usr/share/trac/templates]> (Trac Environment 作成のテンプレートとなるパスを指定。 標準を利用するならこのまま Enter 。) : Congratulations!
/var/lib/trac/tractest 以下を Trac の実行権限で読める必要がある。
なおかつ db/ 以下は Trac の実行権限で書き込みも出来る必要がある。
ちなみに、db/trac.db ファイルに対して読み書き権限を持っている UNIX アカウントは、その Trac Environment におけるスーパーユーザ的存在となる。 そのユーザは、trac-admin コマンドを使って、その Trac Environment に対して 全ての管理作業を行う事ができる。
# cd /var/lib/trac/tractest # chgrp -R apache db # chmod -R g+w db
そして、Trac を CGI として実行する設定をする。
ここではウェブサーバとして Apache HTTP Server を用いるので、 /etc/httpd/conf.d/trac.conf に以下を記述する。
ScriptAlias /tractest /usr/share/trac/cgi-bin/trac.cgi <Location "/tractest"> SetEnv TRAC_ENV "/var/lib/trac/tractest" </Location>
http://example.com/tractest のアクセスで Apache の error_log に Permission denied と出た。 /var/log/audit/audit.log を見ると SELinux 関連で出ているらしいので 以下を実行。
# chcon -t httpd_sys_script_exec_t /usr/share/trac/cgi-bin/trac.cgi
同じくアクセスするとブラウザに以下のメッセージが出た。
Trac detected an internal error: [Errno 13] Permission denied: '/var/lib/trac/tractest/VERSION'/var/log/audit/audit.log を見ると SELinux 関連で出ているらしいので 以下を実行。
# chcon -R -t httpd_sys_content_t /var/lib/trac/tractest
ここまでの Apache の設定だと、画像などの静的コンテンツも trac.cgi 経由なので、 それを Apache が直接応答する様に上記の設定の前に以下を追記。
Alias /tractest/chrome/common /usr/share/trac/htdocs <Directory "/usr/share/trac/htdocs"> Order allow,deny Allow from all </Directory>
BASIC 認証するなら以下も行う。
まずパスワードファイルを作成。
# htpasswd -c /etc/httpd/conf/trac.htpasswd usernameそして /etc/httpd/conf.d/trac.conf に以下を追記。
<Location "/tractest/login"> AuthType Basic AuthName "Trac" AuthUserFile /etc/httpd/conf/trac.htpasswd Require valid-user </location>
コメント
コメントの投稿
トラックバック
http://snbhsmt.blog110.fc2.com/tb.php/76-4ccb4aaf