2008年03月の記事

2008年03月の記事一覧です。

前回に続いて、tracの日本語化について。debian etchにはtrac-ja-resouceというtracの日本語化パッケージが用意されています。が、このパッケージ(0.8.4)がtracパッケージ(0.10.3)より古いため、これをそのまま導入するとエラーになります。折角なので、同じバージョンの日本語化パッケージを導入しましょう。

tracの日本語化パッケージは、インタアクト株式会社様によって公開されています。このサイトの一番下、ダウンロードの項目から日本語化tracのzipをダウンロードし、任意のディレクトリ(ここでは/trac/ja/dir)に展開します。パッケージ内にtemplatesディレクトリとwiki-defaultディレクトリがあることを確認して下さい。

まずはテンプレートを日本語化しましょう。プロジェクトの設定ファイルconf/trac.iniを編集します。

# vi /some/dir/project/conf/trac.ini
(省略)
# templates_dir = <set in global trac.ini>
templates_dir = /trac/ja/dir/templates
(省略)
これで、テンプレートは日本語化されます。次にwikiのデフォルトページ日本語化しますが、こちらはコマンドラインです。
# trac-admin /some/dir/project wiki load /trac/ja/dir/wiki-default
ただし、このコマンドを実行しますと既存のページも更新されてしまうらしいので、ご注意下さい(未確認です)。

以上、3回に渡ってtracの導入について書いてみました。参考になれば幸いです。

前回はtracの導入と設定まででした。これだけですと、動作が非常にモッサリします。Apacheにpython用のモジュールを導入して、高速化しましょう。導入は簡単。apt-get一発です。

# apt-get install libapache2-mod-python
このモジュールを有効にするかどうかの質問にyesと答え、apacheを再起動するとmod_pythonは有効になります。

ここからtrac用の設定です。昨日までの設定は以下のようなものでした。行頭の#はコメントアウトです。

            ScriptAlias /project /usr/share/trac/cgi-bin/trac.cgi
            <Location />
               SetEnv TRAC_ENV "/some/dir/project"
                AuthType Digest
                AuthName "trac"
                AuthUserFile /pass/file/path/trac.htdigest
                Require valid-user
            </Location>
これを、以下のように変更します。関係ない前後とdigest認証の設定は省略します。こちらも同様に、行頭の#はコメントアウトです。
(省略)
#           ScriptAlias /spear /usr/share/trac/cgi-bin/trac.cgi
            <Location />
#               SetEnv TRAC_ENV "/home/kamagasako/www/trac/spear
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /some/dir
                PythonOption TracUriRoot /
(省略)
            </Location>
(省略)
ScriptAliasSetEnvは無効にします。PythonOption TracEnvParentDirにはプロジェクトファイルのあるディレクトリの親ディレクトリを指定します。PythonOption TracUriRootは、tracのルートとして見えるURIパスを指定します。

これでmod_pythonが有効になりました。のみならず、tracのルートとなるURIにプロジェクトの一覧も表示されるようになり、ちょっと便利になります。次回はtracの日本語化について。

バグ管理システム[W](BTS)のTracを導入しました。python[W]で書かれているBTSで、subversion[W] (svn)と連携して動作します。バックエンドはsqlite[W]なので、あまり深く考えなくても導入できるのが嬉しいですね。

以下、備忘です。既にsvnのリポジトリ(/svn/repo/path)は用意されており、tracのプロジェクトは/some/dir/projectにセットアップするものとします。弊社のサーバはdebian[W]ですので、例によってapt-get一発です。

# apt-get install trac
# trac-admin /some/dir/project initenv
ここで色々質問されますが、基本的にはデフォルト値のままでOK。svnリポジトリは用意してあるものを入力します。次に、Apacheの設定ですが、弊社で運用するための要件として今回は
  • sslによる暗号化
  • digest認証
を必須としました。また、closedなソースコードを扱うために、認証されないユーザはドキュメントルートすら参照できないようにします(tracのloginボタンが飾りになりますが、それはご愛嬌)。本題でないsslの設定については割愛し、tracとdigest認証に関する設定のみ抜粋するとこんな感じ。
# vi /etc/apache2/site-available/trac
(省略)
           ScriptAlias /project /usr/share/trac/cgi-bin/trac.cgi
            <Location />
               SetEnv TRAC_ENV "/some/dir/project"
                AuthType Digest
                AuthName "trac"
#               AuthDigestFile /pass/file/path/trac.htdigest
                AuthUserFile /pass/file/path/trac.htdigest
                Require valid-user
            </Location>
(省略)
AuthDigestFileがハネられるので、AuthUserFileを使っています。あとはパスワードを格納するファイル/path/file/path/trac.htdigestを作成します。
# htdigest -c /pass/file/path/trac.htdigest trac username
-cオプションは既存ファイルがあれば削除して、新規に作成するためのものですのでご注意を。第3引数のtracは、AuthNameに指定した文字列です。あとはa2ensiteで設定を有効にすれば、一応は動作します。

» 続きを読む