Table of Contents
1 Tracのインストール
Tracを導入する時に一度だけ実行します。
1.1 tracとmod_wsgiのインストール
tracとmod_wsgiをインストールします。
$ sudo dnf install -y trac mod_wsgi
1.2 80/tcpポートの開放
httpのポートを開放します。
$ sudo firewall-cmd –add-service=http –permanent$ sudo firewall-cmd –reload
1.3 SELinux httpd_unifiedの有効化
httpd_unifiedをonにします。また、プロジェクト作成時にディレクトリにhttpd_sys_content_tを付与する必要があります。
$ sudo setsebool -P httpd_unified on
1.4 プロジェクトのルートディレクトリの追加
プロジェクトを格納するディレクトリを作成します。このディレクトリ配下にプロジェクトのディレクトリを追加していきます。
$ sudo mkdir /var/lib/trac$ sudo mkdir /var/www/html/trac$ sudo chown apache:apache /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 apache:apache /var/lib/trac/test$ sudo chown -R apache:apache /var/www/html/trac/test$ sudo chcon -R -t httpd_sys_content_t /var/lib/trac/test
2.2 ユーザの追加
管理者ユーザを追加します。
$ sudo htdigest -c /var/lib/trac/test/.htdigest “test” adminAdding user admin in realm testNew password:Re-type new password:$ sudo trac-admin /var/lib/trac/test permission add admin TRAC_ADMIN
一般ユーザを追加します。すでにパスワードファイルがあるので-cオプションなしでhtdigestを実行します。
$ sudo htdigest /var/lib/trac/test/.htdigest “test” hiroom2Adding user hiroom2 in realm testNew password:Re-type new password:
2.3 Apache2のconf作成
プロジェクト用のconfファイルを作成します。
$ sudo su -c ‘cat <<EOF > /etc/httpd/conf.d/test.confWSGIScriptAlias /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 httpd
3 Tracへのアクセス
以下のURLにブラウザでアクセスします。
http://<server>/trac/test
ダイジェスト認証のダイアログが表示されます。
Tracのページが表示されました。adminユーザでログインしています。
4 Tracをインストールするスクリプト
以下のスクリプトは自動的にTracをインストールします。
#!/bin/shinstall_trac(){ sudo dnf install -y trac mod_wsgi sudo firewall-cmd –add-service=http –permanent sudo firewall-cmd –reload sudo setsebool -P httpd_unified on sudo mkdir /var/lib/trac sudo mkdir /var/www/html/trac sudo chown apache:apache /var/www/html/trac}TMP=`mktemp -t linux-trac.sh.XXXXXX`trap “rm $TMP* 2>/dev/null” 0sudo dnf install -y expectcreate_digest(){ filename=$1 realm=$2 username=$3 password=$4 options= if [ ! -f ${filename} ]; then options=-c fi cat <<EOF > ${TMP}set timeout -1spawn sudo htdigest ${options} ${filename} ${realm} ${username}expect “New password: “send “${password}n”expect “Re-type new password: “send “${password}n”expect eofEOF 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 apache:apache /var/lib/trac/test sudo chown -R apache:apache /var/www/html/trac/test sudo chcon -R -t httpd_sys_content_t /var/lib/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/httpd/conf.d/test.confWSGIScriptAlias /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 httpd}install_traccreate_test_project