2014年10月5日日曜日

CentOS 6.5 に Trac 1.0.1 をインストール

ブログのサイドバーにある、「人気の投稿」のトップがTracのインストールなのですが、あまりにお粗末なので、アップデート版を書きたいと思っていました。で、書きました。
CentOS6.5にTracをインストールします。Tracのバージョンは気づいたら1.0越えてました…。
前提として、CentOSはminimalの構成でインストールしたものを使いました。また、yumとかpipとかのインターネット経由でのダウンロードを利用しています。
では、以下手順。

iptablesで80番ポートを許可する

vi /etc/sysconfig/iptables
22番ポート許可の下に80番ポート許可を追加して以下のようにする。
 # Firewall configuration written by system-config-firewall
 # Manual customization of this file is not recommended.
 *filter
 :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [0:0]
 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 -A INPUT -p icmp -j ACCEPT
 -A INPUT -i lo -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 -A INPUT -j REJECT --reject-with icmp-host-prohibited
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 COMMIT

各種プログラムのアップデート

# yum -y update

GCCのインストール

# yum install gcc

vimのインストール

# yum install vim

wgetのインストール

# yum install wget

curlのインストール

# yum install curl

httpdのインストール

# yum install httpd httpd-devel

python用Apacheモジュールのインストール

# yum install mod_wsgi

mySQLをインストール

# yum install mysql mysql-devel mysql-server

mySQLの操作

# /etc/init.d/mysqld start
# /usr/bin/mysqladmin -u root password ‘new-password’
# mysql -u root -p
mysql> create database trac default character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
create user tracuser identified by ‘new-password’;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on trac.* to tracuser@localhost identified by ‘new-password’;
Query OK, 0 rows affected (0.00 sec)

pipのインストール

babelインストール

# pip install babel

genshiインストール

# pip install genshi

python用mysqlバインディングのインストール

# pip install mysql-python

Tracのインストール

# pip install trac

各種プログラムのアップデート

# yum -y update

Tracの設定

# mkdir /var/trac
# vim /var/trac/trac.wsgi
以下を挿入
 import os
 import trac.web.main
 os.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac'
 application = trac.web.main.dispatch_request
# vim /etc/httpd/conf.d/trac.conf
以下を挿入
 WSGIScriptAlias /trac /var/trac/trac.wsgi

 
 WSGIApplicationGroup %{GLOBAL}
 Order deny,allow
 Allow from all
 

 
 AuthType Digest
 AuthName "trac_login"
 AuthUserFile /etc/httpd/conf.d/.htdigest_trac_users
 Require valid-user
 

 
 AuthType Digest
 AuthName "trac_users"
 AuthUserFile /etc/httpd/conf.d/.htdigest_trac_users
 Require valid-user
 

ユーザ作成

# htdigest -c /etc/httpd/conf.d/.htdigest_trac_users “trac_users” tracadmin
# htdigest /etc/httpd/conf.d/.htdigest_trac_users “trac_users” tearthesky
# trac-admin /var/trac/mylife permission add tracadmin TRAC_ADMIN

新しくプロジェクトを作る

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

 プロジェクトの名前を入力してください。
 この名前は、ページのタイトルと説明に使用します。
プロジェクト名 [My Project]> projectname
 使用するデータベースへの接続文字列を指定してください。
 デフォルトではローカルに SQLite データベースを作成します。
 既に存在する PostgreSQL データベースを使うこともできます。
 (Trac では、接続文字列は厳密に表記する必要があります。
 詳細は Trac のドキュメントを参照してください)
mysql://tracuser:new-password@localhost:3306/trac
 (略)

 Trac Environment 'projectname' ができました。

 今後、この環境の設定をする場合は、次のファイルを利用します。

 /var/trac/projectname/conf/trac.ini

 新しいプロジェクトを試しに実行してみたい場合は、スタンドアロンウェブ
 サーバ `tracd` を試してみてください。

 tracd --port 8000 /var/trac/projectname

 それから、ブラウザで http://localhost:8000/projectname
 にアクセスします。インストールしたバージョンに合わせた今後のセット
 アップ情報などが含まれたドキュメントが閲覧できます。(例えばウェブサー
 バで公開する手順など。)

 最新のドキュメントは、プロジェクトのウェブサイトから入手できます。

 http://trac.edgewall.org/

 Congratulations!

Tracのディレクトリの所有者を変更

# chown -R apache:apache /var/trac

SELinuxの設定

# cd /var/
# ls -la —context
 drwxr-xr-x. root root system_u:object_r:var_t:s0 .
 dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
 drwxr-xr-x. root root system_u:object_r:var_t:s0 cache
 drwxr-xr-x. root root system_u:object_r:var_t:s0 db
 drwxr-xr-x. root root system_u:object_r:var_t:s0 empty
 drwxr-xr-x. root root system_u:object_r:games_data_t:s0 games
 drwxr-xr-x. root root system_u:object_r:var_lib_t:s0 lib
 drwxr-xr-x. root root system_u:object_r:var_t:s0 local
 drwxrwxr-x. root lock system_u:object_r:var_lock_t:s0 lock
 drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
 lrwxrwxrwx. root root system_u:object_r:mail_spool_t:s0 mail -> spool/mail
 drwxr-xr-x. root root system_u:object_r:var_t:s0 nis
 drwxr-xr-x. root root system_u:object_r:var_t:s0 opt
 drwxr-xr-x. root root system_u:object_r:var_t:s0 preserve
 drwxr-xr-x. root root system_u:object_r:var_run_t:s0 run
 drwxr-xr-x. root root system_u:object_r:var_spool_t:s0 spool
 drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp
 drwxr-xr-x. apache apache unconfined_u:object_r:var_t:s0 trac
 drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 www
 drwxr-xr-x. root root system_u:object_r:var_yp_t:s0 yp
# chcon system_u:object_r:httpd_sys_content_t:s0 /var/trac -R
# ls -la —context
 drwxr-xr-x. root root system_u:object_r:var_t:s0 .
 dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
 drwxr-xr-x. root root system_u:object_r:var_t:s0 cache
 drwxr-xr-x. root root system_u:object_r:var_t:s0 db
 drwxr-xr-x. root root system_u:object_r:var_t:s0 empty
 drwxr-xr-x. root root system_u:object_r:games_data_t:s0 games
 drwxr-xr-x. root root system_u:object_r:var_lib_t:s0 lib
 drwxr-xr-x. root root system_u:object_r:var_t:s0 local
 drwxrwxr-x. root lock system_u:object_r:var_lock_t:s0 lock
 drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
 lrwxrwxrwx. root root system_u:object_r:mail_spool_t:s0 mail -> spool/mail
 drwxr-xr-x. root root system_u:object_r:var_t:s0 nis
 drwxr-xr-x. root root system_u:object_r:var_t:s0 opt
 drwxr-xr-x. root root system_u:object_r:var_t:s0 preserve
 drwxr-xr-x. root root system_u:object_r:var_run_t:s0 run
 drwxr-xr-x. root root system_u:object_r:var_spool_t:s0 spool
 drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp
 drwxr-xr-x. apache apache system_u:object_r:httpd_sys_content_t:s0 trac
 drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 www
 drwxr-xr-x. root root system_u:object_r:var_yp_t:s0 yp

OS起動時の自動起動追加

# chkconfig httpd on
# chkconfig mysqld on

再起動

# /etc/init.d/mysqld restart
# /etc/init.d/httpd restart



以上で、 http://yourServerAddress/trac に行くと、Digest認証画面が出てきて、認証が通ればプロジェクト一覧が出てくると思います。



チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

0 件のコメント:

コメントを投稿