CentOSにTracをインストール

CentOS5にtracをインストールしてみたので、その備忘録。

yumからインストールする

とりあえず、めんどくさいのでyumを使ってインストールしました。
なお、CentOSの標準リポジトリTracが無いのでDAGのパッケージを使用。

# yum install trac -y
これでひとまず必要なものはすべてインストールされます

インストールを確認するには、下記コマンドで確認できます
# rpm -qa | grep trac
# rpm -ql trac-0.11.5-1.el5.rf

Tracの設定

インストールしただけでは何もできないので、まずはプロジェクトを作成します。
とりあえず、/etc/httpd/conf.d/trac.confを確認します。




  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac



  AuthType Basic
  AuthName "Trac"
  AuthUserFile /var/www/trac/.htpasswd
  Require valid-user



「TracEnvParentDir」が「/var/trac」となっているのでプロジェクトのルートは
/var/tracに設定されているということになります。

では、tracを作成しましょう。ここではとりあえず、sampleというプロジェクトを作成します。
# trac-admin /var/trac/sample initenv
コマンドを実行すると、いくつか設定値を確認してきます。
Project Name [My Project]> プロジェクト名 Sample
Database connection string [sqlite:db/trac.db] 使用するデータベース (とりあえずデフォルト値)
Repository type [svn] Subversionの設定 (とりあえずデフォルト値)
Path to repository [/path/to/repos] Subversionリポジトリパス ./svn

作成が完了すると、最後に以下のようなメッセージが出ます。
Warningが出てますが、Subversionリポジトリが無いだけなので無視してしまって大丈夫です。
                                                                                                                                        • -
Warning: couldn't index the repository. This can happen for a variety of reasons: wrong repository type, no appropriate third party library for this repository type, no actual repository at the specified repository path... You can nevertheless start using your Trac environment, but you'll need to check again your trac.ini file and the [trac] repository_type and repository_path settings in order to enable the Trac repository browser.
                                                                                                                                        • -
Project environment for 'Sample' created. You may now configure the environment by editing the file: /var/trac/sample/conf/trac.ini If you'd like to take this new project environment for a test drive, try running the Trac standalone web server `tracd`: tracd --port 8000 /var/trac/sample Then point your browser to http://localhost:8000/sample. There you can also browse the documentation for your installed version of Trac, including information on further setup (such as deploying Trac to a real web server). The latest documentation can also always be found on the project website: http://trac.edgewall.org/ Congratulations!

いざブラウザから閲覧

上のメッセージではtracdを使ってなんて書いてありますが、
Apache用の設定もすでにされているので、Apacheを再起動します。

# service httpd restart

/etc/httpd/conf.d/trac.confに書いてありますが、デフォルトで
」となっていますので、ブラウザから以下のような
URLをたたきます。
http://<インストールしたサーバ名orIP>/trac/sample/

すると、エラー画面が表示されます。
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/trac/web/api.py", line 377, in send_error
    'text/html')
	:
	:
File "/usr/lib/python2.4/site-packages/trac/db/sqlite_backend.py", line 176, in __init__
    raise TracError('The user %s requires read _and_ write ' \
TracError: The user apache requires read _and_ write permissions to 
the database file /var/trac/sample/db/trac.db and the directory it is located in.
パーミッションが無いそうです。
ここでは、SQLiteのDBファイルのパーミッションについて説明されていますが、
Tracを運用する上で、プロジェクトのディレクトリへの書き込みが発生しますので、
作成した/var/trac/sample自体のパーミッションApacheの実行ユーザに変更します。
CentOS5.4のhttpdのデフォルト実行ユーザは「apache」になっています。
# cd /var/trac
# chown -R apache:apache sample
さて、もう一度ブラウザから確認してみましょう。ちゃんと表示されるはずです。

なお、ブラウザ上に以下のようなメッセージが表示されていると思いますが、
Warning: Can't synchronize with the repository 
(/var/trac/sample/svn does not appear to be a Subversion repository.).
 Look in the Trac log for more information.
これは、Subversionリポジトリが無いことが原因なのでリポジトリを作成します。

# svnadmin create /var/trac/sample/svn --pre-1.6-compatible
# chown -R apache:apache /var/trac/sample/svn

管理者アカウントの作成

今の設定はApacheを経由しているため、Apacheの認証と同期する必要があります。
まず、.htpasswdファイルを作成します。
パスは「/etc/httpd/conf.d/trac.conf」のとおり、

AuthUserFile /var/www/trac/.htpasswd
/var/www/trac/.htpasswdに作成します。(ここでは、adminユーザを作成)

# htpasswd -c /var/www/trac/.htpasswd admin

つづいて、Trac自体のアカウントを確認します。
デフォルトでは、管理者権限を持つユーザ存在しないので、
adminを管理者として登録します。
# trac-admin /var/trac/sample permission list

User           Action
                                                          • -
anonymous BROWSER_VIEW anonymous CHANGESET_VIEW anonymous FILE_VIEW anonymous LOG_VIEW anonymous MILESTONE_VIEW anonymous REPORT_SQL_VIEW anonymous REPORT_VIEW anonymous ROADMAP_VIEW anonymous SEARCH_VIEW anonymous TICKET_VIEW anonymous TIMELINE_VIEW anonymous WIKI_VIEW authenticated TICKET_CREATE authenticated TICKET_MODIFY authenticated WIKI_CREATE authenticated WIKI_MODIFY : : # trac-admin /var/trac/sample permission delete add TRAC_ADMIN

以上で、最低限の設定は完了です。
必要に応じて、それぞれのロールを持つユーザを作成して運用してください。