まず適当な親環境のportsでtrac用のpackageを作る。
mkdir -p /usr/ports/packagesでディレクトリを作成しておく。/etc/make.confに「WITH_APACHE2=y WITHOUT_SSL=y WITHOUT_IPV6=y」を指定して
cd /usr/ports/www/trac make package-recursiveとビルドすると芋づる式にインストールされてpackageが作られる。
またjailで動作するtracにインターネット側からアクセスさせる場合にpoundなどでリバースプロクシを経由させるときはmod_rpaf2も使う。
cd /usr/ports/www/mod_rpaf2 make package-recursive出来たpackageの中から
lang/perl5 www/apache2 converters/libiconv textproc/expat2 lang/python textproc/py-docutils www/mod_python3 www/trac databases/py-PySQLite10 databases/db42 databases/sqlite2 www/clearsilver-python devel/subversion-python devel/swig13 devel/apr www/mod_rpaf2がtracの動作に必要なもの。
sysutils/jailctlを親環境でインストールする:
/usr/local/etc/jails.confを自分の環境にあわせて書き換える。例えば
${JAIL_HOME}addons/runme.shのpkg_add文はコメントアウトしておく。
/usr/srcでmake buildworldしておき
次にpackageをjailにインストールするため親環境の/usr/portsをjailツリーにnullfsマウントする。
IF="em0" JAILS="trac.example.jp:192.168.1.2" RC_CONF='sendmail_enable="NO" sshd_enable="NO" portmap_enable="NO" rpcbind_enable="NO" network_interfaces="" tcp_keepalive="NO" tcp_extensions="NO" inetd_enable="NO" apache2_enable="YES" ' NAMESERVER="192.168.1.1"など。trac.example.jpは設定したいホスト名に。JAIL_HOMEなどここに書いていないところも適切に。
${JAIL_HOME}addons/runme.shのpkg_add文はコメントアウトしておく。
/usr/srcでmake buildworldしておき
jailctl create trac.example.jpするとJAIL_HOME以下にjailツリーがインストールされる。
次にpackageをjailにインストールするため親環境の/usr/portsをjailツリーにnullfsマウントする。
mkdir -p ${JAIL_HOME}/trac.example.jp/usr/ports
mount_null /usr/ports ${JAIL_HOME}/trac.example.jp/usr/ports
jailctl startでjailを起動しておく。(本来は/etc/rc.confにjail起動設定を書く方法が望ましい)
jailにtrac関連のpackageをインストールして設定する:
jlsでjail IDをみて、jexec 1 /bin/cshなどでjail内に入る。pkg_addでtracなどをインストールする。
cd /usr/ports/packages/All/ pkg_add trac pkg_add py-docutils pkg_add mod_rpaf2 pkg_add mod_python3www権限でtracデータベースに書き込みが出来るようにjail環境にtracグループを追加してwwwをメンバーに入れておく。(-g 10000などでgidを親環境とバッティングしないように指定することを推奨)
pw groupadd trac -M www
tracの初期設定をする:
日本語翻訳されたテンプレートをダウンロードして伸張する。
fetch http://www.i-act.co.jp/project/products/downloads/trac-0.8.4-ja-2.zip tar zxvf trac-0.8.4-ja-2.zip -C /usr/local/share/Subversionレポジトリを作る
mkdir -p /usr/local/svn/ svnadmin create --fs-type fsfs /usr/local/svn/hoge_subversionrepotrac-adminでtracをディレクトリを生成する。hogehogeはプロジェクト名なので適切に置き換える。テンプレートディレクトリは上記の日本語版を指定する。(trac-admin /usr/local/trac/hogehogeを実行して対話的に設定しても良い)
mkdir -p /usr/local/trac/ trac-admin /usr/local/trac/hogehoge initenv hogehoge /usr/local/svn/hoge_subversionrepo /usr/local/share/trac-0.8.4-ja-2/templatesWebサーバー権限で書き込みが出来るようにtracグループにして、パーミッションを変更する。
cd /usr/local/trac/hogehoge/ chgrp trac attachments db/trac.db log/trac.log chmod g+w attachments db/trac.db log/trac.log/usr/local/trac/hogehoge/conf/trac.iniのロゴなどを適当に設定する。
Apache2をtrac用に設定する:
/usr/local/etc/apache2/httpd.confをjail用に設定する。IPアドレスは適切に書き換える。
Listen 192.168.1.2:80/usr/local/etc/apache2/Includes/trac.confをtrac用に設定する。mod_pythonを使用している。
LoadModule python_module libexec/apache2/mod_python.so
Alias /trac "/usr/local/share/trac/htdocs"
<Directory "/usr/local/share/trac/htdocs">
AllowOverride None
Order Deny,Allow
allow from all
</Directory>
<Location /projects/hogehoge>
SetHandler mod_python
PythonHandler trac.ModPythonHandler
PythonOption TracEnv /usr/local/trac/hogehoge
PythonOption TracUriRoot /projects/hogehoge
</Location>
親環境でpoundなどを使い、リバースプロクシ経由で外部に公開する。trac.example.jpは適切に書き換える。(trac.example,jpでIPアドレスが引けるように設定するのも忘れずに)
# aaa.bbb.ccc.ddd is Global IP ListenHTTP aaa.bbb.ccc.ddd,80 UrlGroup ".*" HeadRequire Host ".*trac.example.jp.*" BackEnd 192.168.1.2,80,1 EndGroupjail側の/usr/local/etc/apache2/Include/mod_rpaf.confにrpaf用の設定を書く。192.168.1.1はpoundのホストに書き換える。
LoadModule rpaf_module libexec/apache2/mod_rpaf.so RPAFenable On RPAFsethostname Off RPAFproxy_ips 192.168.1.1



[ コメントする ]