CentOS7.7に Tracを導入したときのメモ

Trac関連

pipで全部入るので楽。ただ pipコマンドがデフォルトでは入っていなかったかも

pipのインストール方法 - Qiita

  sudo pip install Jinja2
  sudo pip install Trac
  sudo pip install babel
  sudo pip install Genshi

あと apacheと連携させるために mod_wsgiをインストールする。

  sudo yum install mod_wsgi

Trac環境用意

/var/www/trac 以下にTracのプロジェクトを置くことにする。

最初に実験用のプロジェクト SandboxProjectを作ってみる。

mkdir -p /var/www/trac
cd /var/www/trac
trac-admin SandboxProject initenv
chown -R apache.apache /var/www/trac

*1

run_trac.wsgi作成

/var/www/trac/run_trac.wsgiを作成

import os

os.environ['TRAC_ENV_PARENT_DIR'] = '/var/www/trac'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/trac/eggs'

import trac.web.main
application = trac.web.main.dispatch_request

chownで apacheにしてパーミッションを 755に変更する。

chown apache.apache run_trac.wsgi
chmod 755 run_trac.wsgi

apache設定

/etc/httpd/conf.d/trac.confを作成

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /trac /var/www/trac/run_trac.wsgi

<Directory /var/www/trac>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

とりあえずこれで apacheを再起動すれば最低限は動く。

sudo service httpd restart

Tracに認証を追加

adminアカウントを用意する。

cd /var/www/trac/SandboxProject
htdigest -c .htdigest trac_user admin
<adminの新規パスワード>
cd /var/www/trac/SandboxProject
sudo -u apache trac-admin . permission add admin TRAC_ADMIN

/etc/httpd/conf.d/trac.conf に以下を追加して httpdを再起動

<Location "/trac/SandboxProject/login">
  AuthType Digest
  AuthUserFile /var/www/trac/SandboxProject/.htdigest
  AuthName "trac_user"
  require valid-user
</Location>

*1:initenvで svnリポジトリの場所を聞かれなくなっているが、後から設定できるのだろうか?