fc2ブログ

snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

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>
スポンサーサイト



« Trac-ja をインストール|Top|Commons DBCP のメモ »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/76-4ccb4aaf

Trac-ja をインストール

インタアクト株式会社が日本語訳した Trac (Trac-ja) を配布している。 rpm のをインストールしてあるけどこれもインストール。 環境 : CentOS 4.6 ま...

1 つの Apache で複数 Trac 環境にアクセスする設定

最初に Trac をインストールした時の Apache の設定方法だと、新たなプロジェクトが作られる度に追記する必要があり 面倒だなあと思っていたら良...

Trac の attachments ディレクトリに書き込み権限を追加

Trac でチケットにファイルを添付しようとして気付いたが、 添付ファイルは PROJENV/attachments ディレクトリに置かれる。 だけど Trac を インストー...

Top

HOME

snbhsmt

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる