Tracのインストール方法を記載します。ダイジェスト認証でユーザを管理します。
Table of Contents
1 Tracのインストール
Tracを導入する時に一度だけ実行します。
1.1 tracとapache2-mod_wsgiのインストール
tracはFedora 25のsrc.rpmをビルドしてインストールします。
$ sudo zypper -n in rpm-build $ F25=https://dl.fedoraproject.org/pub/fedora/linux/releases/25 $ wget -q ${F25}/Everything/source/tree/Packages/t/trac-1.0.13-1.fc25.src.rpm $ rpm -i trac-1.0.13-1.fc25.src.rpm $ cd ~/rpmbuild $ sudo zypper -n in $(rpmspec -q SPECS/trac.spec --buildrequires) $ rpmbuild -ba SPECS/trac.spec $ sudo zypper -n in RPMS/noarch/trac-1.0.13-1.noarch.rpm $ cd ..
apache2-mod_wsgiをインストールします。
$ sudo zypper -n in apache2-mod_wsgi
Apache2を有効にします。
$ sudo systemctl enable apache2
1.2 auth_digestの有効化
auth_digestを有効にします。
$ sudo a2enmod auth_digest
1.3 80/tcpポートの開放
apache2のポートを開放します。
$ firewall_open_service() { for t in FW_CONFIGURATIONS_EXT FW_CONFIGURATIONS_DMZ FW_CONFIGURATIONS_INT; do sudo sed -e "s/^${t}=\"\(.*\)\"/${t}=\"\1 $1\"/g" \ -i /etc/sysconfig/SuSEfirewall2 done sudo systemctl restart SuSEfirewall2 } $ firewall_open_service apache2
1.4 プロジェクトのルートディレクトリの追加
プロジェクトを格納するディレクトリを作成します。このディレクトリ配下にプロジェクトのディレクトリを追加していきます。
$ sudo mkdir /var/lib/trac $ sudo mkdir -p /var/www/html/trac $ sudo chown wwwrun:www /var/www/html/trac
2 プロジェクトの追加
プロジェクトを新規に追加する度に実行します。
2.1 プロジェクト用ディレクトリの追加
プロジェクトを作成します。
$ sudo trac-admin /var/lib/trac/test initenv test sqlite:db/trac.db $ sudo trac-admin /var/lib/trac/test deploy /var/www/html/trac/test $ sudo chown -R wwwrun:www /var/lib/trac/test $ sudo chown -R wwwrun:www /var/www/html/trac/test
2.2 ユーザの追加
管理者ユーザを追加します。
$ sudo htdigest2 -c /var/lib/trac/test/.htdigest "test" admin Adding user admin in realm test New password: Re-type new password: $ sudo trac-admin /var/lib/trac/test permission add admin TRAC_ADMIN
一般ユーザを追加します。すでにパスワードファイルがあるので-cオプションなしでhtdigestを実行します。
$ sudo htdigest2 /var/lib/trac/test/.htdigest "test" hiroom2 Adding user hiroom2 in realm test New password: Re-type new password:
2.3 Apache2のconf作成
プロジェクト用のconfファイルを作成します。
$ sudo su -c ' cat <<EOF > /etc/apache2/conf.d/test.conf WSGIScriptAlias /trac/test /var/www/html/trac/test/cgi-bin/trac.wsgi <Location /trac/test> AuthType Digest AuthName "test" AuthUserFile /var/lib/trac/test/.htdigest Require valid-user </Location> EOF '
Apache2を再起動します。
$ sudo systemctl restart apache2
3 Tracへのアクセス
以下のURLにブラウザでアクセスします。
http://<server>/trac/test
ダイジェスト認証のダイアログが表示されます。
Tracのページが表示されました。adminユーザでログインしています。
4 Tracをインストールするスクリプト
以下のスクリプトは自動的にTracをインストールします。
#!/bin/sh firewall_open_service() { for t in FW_CONFIGURATIONS_EXT FW_CONFIGURATIONS_DMZ FW_CONFIGURATIONS_INT; do sudo sed -e "s/^${t}=\"\(.*\)\"/${t}=\"\1 $1\"/g" \ -i /etc/sysconfig/SuSEfirewall2 done sudo systemctl restart SuSEfirewall2 } install_trac() { sudo zypper -n in rpm-build F25=https://dl.fedoraproject.org/pub/fedora/linux/releases/25 wget -q ${F25}/Everything/source/tree/Packages/t/trac-1.0.13-1.fc25.src.rpm rpm -i trac-1.0.13-1.fc25.src.rpm cd ~/rpmbuild sudo zypper -n in $(rpmspec -q SPECS/trac.spec --buildrequires) rpmbuild -ba SPECS/trac.spec sudo zypper -n in RPMS/noarch/trac-1.0.13-1.noarch.rpm cd .. sudo zypper -n in apache2-mod_wsgi sudo a2enmod auth_digest sudo systemctl enable apache2 firewall_open_service apache2 sudo mkdir /var/lib/trac sudo mkdir -p /var/www/html/trac sudo chown wwwrun:www /var/www/html/trac } TMP=`mktemp -t linux-trac.sh.XXXXXX` trap "rm $TMP* 2>/dev/null" 0 sudo zypper -n in expect create_digest() { filename=$1 realm=$2 username=$3 password=$4 options= if [ ! -f ${filename} ]; then options=-c fi cat <<EOF > ${TMP} set timeout -1 spawn sudo htdigest2 ${options} ${filename} ${realm} ${username} expect "New password: " send "${password}\n" expect "Re-type new password: " send "${password}\n" expect eof EOF expect ${TMP} } ADMIN_PASSWORD="trac" USER_PASSWORD="trac" create_test_project() { sudo trac-admin /var/lib/trac/test initenv test sqlite:db/trac.db sudo trac-admin /var/lib/trac/test deploy /var/www/html/trac/test sudo chown -R wwwrun:www /var/lib/trac/test sudo chown -R wwwrun:www /var/www/html/trac/test create_digest /var/lib/trac/test/.htdigest "test" admin ${ADMIN_PASSWORD} sudo trac-admin /var/lib/trac/test permission add admin TRAC_ADMIN create_digest /var/lib/trac/test/.htdigest "test" hiroom2 ${USER_PASSWORD} sudo su -c ' cat <<EOF > /etc/apache2/conf.d/test.conf WSGIScriptAlias /trac/test /var/www/html/trac/test/cgi-bin/trac.wsgi <Location /trac/test> AuthType Digest AuthName "test" AuthUserFile /var/lib/trac/test/.htdigest Require valid-user </Location> EOF ' sudo systemctl restart apache2 } install_trac create_test_project