読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

ArchLinuxにTracを改めてセットアップしてみた

ArchLinux Trac Server

昔書いた記事がアレだったので削除して書きなおすことにしました。 参考記事は多すぎてよく覚えてないので、申し訳ないと思いながらも省略させて頂きます。 一応公式のインストール方法のページだけ貼っておきます。

Trac Installation Guide

Tracpacmanでインストール

Tracとそれ関係のパッケージをインストールします。

$ sudo pacman -S trac 

また、TracはデフォルトでSQLiteを使うようになってるようですが、うちのサーバーはpostgresqlを動かしてるので、せっかくなのでそれを使います。 (SQLiteMySQLなど別のDBで運用する場合はそれに沿ったものをインストールしてください。その場合以下のパッケージは要りません)

$ sudo pacman -S python2-psycopg2

ということで、それに伴って上のpython2-psycopg2をインストールします。python-psycopg2はPython3系用です。tracは2系のようなのでpython2のほうをインストールします。 (もちろん記事を真似するのならpostgresql自体も必要なので、動かしてないのならpostgresqlをインストールして動かし使える状態にしておく必要があります)

PostgreSQLの設定

PostgreSQLを使わないのであればこの節は読み飛ばしてください。この記事ではPostgreSQLを使うので設定しておきます。

$ createuser -d -S -R trac

などとしてtracユーザーを作ります。 そしてDBを作ります

$ createdb -U trac tracdb

で、ユーザーとDBができます。続いてtracのパスワードを決めておきます。

$ psql -U postgres
psql (9.2.4)
"help" でヘルプを表示します.

postgres=# alter role trac with password 'password here';

psqlコマンドでpostgresでログインし上の"alter role trac with password 'password here';"を実行してtracのパスワードを変更します。パスワードは最後のシングルクォートの中に適当に決めてください。 これで設定完了です。

trac-adminでProjectを作る

ということでプロジェクトを作っていきます。今回は"/var/trac"に作ります。 また、tracはhttpユーザーで走らせますので、ファイルの権限はhttpにあわせます。 (権限の変更は各自行なってください chownコマンドを使います)

$ sudo mkdir -p /var/trac/OPA-SERVER-TRAC

厨二臭い感じにOPA-SERVERなんて作ってみます。

$ sudo -u http trac-admin /var/trac/OPA-SERVER-TRAC initenv

として、初期化。 いくつか対話的に質問される。

はじめにプロジェクトの名前などについて聞かれます。適当に答えてください。 今回は"OPA-SERVER-TRAC"としておきます。

新規 Trac Environment /var/trac/OPA-SERVER-TRAC の生成

はじめに、プロジェクトのデータベースの初期化と準備をするために、
環境についていくつか質問をします。

プロジェクトの名前を入力してください。
この名前は、ページのタイトルと説明に使用します。

プロジェクト名 [My Project]> OPA-SERVER-TRAC

で、次の質問はDBをどうするかという質問で、SQLiteを使うならそのままエンターで問題ないですが、今回はPostgreSQLを使うので、次のように入力します。

postgres://trac:password_here@localhost:5432/tracdb?schema=schemaname

上の作業通りなら://のあとは"trac"とします。これがユーザー名です。 その後は上で決めてパスワードを入力します。またポート番号も変更しているなら書き換えます。 最後に/tracdbとありますが、これが使うDB名です。その後の?以降は丸写しで多分大丈夫です。

他のデータベースについては http://trac.edgewall.org/wiki/DatabaseBackend 参照。

で、うまくいったら"Congratulations!"とでてきます。試しに起動してみたいなら

tracd --port 8000 /var/trac/OPA-SERVER-TRAC

と入力します。

Apatchと連携させる

Apaatchと連携させます。mod_wsgipacmanで使えるのでこれを使います。

$ sudo pacman -S mod_wsgi2

でおk。

設定ファイルを書き換える前にdeployします。

$ sudo -u http trac-admin /var/trac/OPA-SERVER-TRAC deploy /var/trac/OPA-SERVER-TRAC/deploy

としてdeployします。

で、apatchの設定ファイルをいじります。まずmod_wsgiをLoadします。

$ sudo vim /etc/httpd/conf/httpd.conf

とかしてhttpd.confを開いてから

LoadModule wsgi_module modules/mod_wsgi.so

と書いて、まずモジュールをロードさせます。続いてtracの設定をextra以下に置くのでとりあえず適当な場所に

Include /etc/httpd/conf/extra/trac.conf

を追記して保存して終了します。

trac.confを記述します。次のコマンドで編集します。

$ sudo vim /etc/httpd/conf/extra/trac.conf

で、内容はこんな感じ。

WSGIScriptAlias /trac /var/trac/OPA-SERVER-TRAC/deploy/cgi-bin/trac.wsgi
<Directory /var/trac/OPA-SERVER-TRAC/deploy/cgi-bin>
    WSGIApplicationGroup %{GLOBAL}
    Options FollowSymlinks
    Order allow,deny
    AllowOverride all
    allow from all
</Directory>
<Location /trac/login>
    AuthType Digest
    AuthName "trac"
    AuthDigestDomain /trac
    AuthUserFile /var/trac/trac.htpasswd
    Require valid-user
</Location>

Digest認証できるようにする

サーバーを再起動する前にdigest認証できるようにしておきます。 ここは、参考記事を覚えているので記載しておこうと思います。

http://symfoware.blog68.fc2.com/blog-entry-1034.html

で、認証の設定ですが、下のコマンドを入力します。

$ sudo -u http htdigest -c /var/trac/trac.htpasswd trac admin

パスワードを聞かれるので適当に決めて入力します。

ちなみに上の参考記事ではダイジェスト認証を行うためにapatchのダイジェスト認証機能を有効化する作業をしてますがArchLinuxのapatchはデフォルトで有効化されているため必要ありません。

で、最後にadminに権限を付与して終わりですね。

$  trac-admin /var/trac/OPA-SERVER-TRAC permission add admin TRAC_ADMIN

でおkですね。

サーバーを再起動してアクセスしてみる。

$ sudo systemctl restart httpd

としてhttpdをrestartして、アクセスしてみます。設定どおりならhttp://www.example.com/tracでアクセスできるはずです。

f:id:opamp_sando:20130427155003p:plain

という感じです。めでたしめでたし?

※もし何か間違いなどがアレば遠慮なく指摘してくださると幸いです。 また、Tracに関しては初心者のため質問などされてもおそらく応えきれません。

Firefox ブラウザ無料ダウンロード