Trac インストール


OpenSSL インストール

インストール

$ wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz
$ cd /usr/local/src
$ tar zxvf openssl-0.9.8k.tar.gz
$ cd openssl-0.9.8k
$ ./config -fPIC shared --prefix=/usr/local/openssl
$ make
$ sudo make install

共有ライブラリに追加

ファイルの修正

openssl.conf を新たに作成し「/usr/local/openssl/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/openssl.conf

/usr/local/openssl/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'openssl'

参考URL


Apache2 の取得

$ cd /usr/local/src
$ wget http://www.meisei-u.ac.jp/mirror/apache/httpd/httpd-2.2.11.tar.gz
$ tar zvxf httpd-2.2.11.tar.gz


apr インストール

apr(Apache Portable Runtime)をインストールする。

インストール

$ cd /usr/local/src/httpd-2.2.11/srclib/apr
$ ./configure --prefix=/usr/local/apr --enable-threads
$ make
$ sudo make install

参考URL

http://apr.apache.org/


apr-util インストール

apr-util(Apache Portable Runtime Utility)をインストールする。

確認

事前に apr、iconv、expat をインストールしておく。

iconv

iconv がインストールされているか確認する。

$ which iconv

expat

expat がインストールされているか確認する。

$ yum list install | grep expat-devel

expat がインストールされていなかったら、インストールする。

$ sudo yum install expat-devel

インストール

$ cd /usr/local/src/httpd-2.2.11/srclib/apr-util
$ ./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr
$ make
$ sudo make install

メモ

confiture するとき、 --with-expat=/usr/local --with-iconv=/usr/local などと場所を指定もできるみたい。


apache2 インストール

インストール

configure するときは、OpneSSL をインストールしたので、「--enable-ssl と --with-ssl」オプションをつける。

$ cd /usr/local/src/httpd-2.2.11

$ ./configure 
--prefix=/usr/local/apache2  
--enable-mods-shared=most 
--enable-dav 
--enable-dav-fs 
--enable-dav-lock 
--enable-cgi 
--enable-cgid 
--enable-cache
--enable-mem-cache
--enable-proxy 
--enable-proxy-blancer
--enable-rewrite 
--enable-so 
--enable-ssl 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr 
--with-ssl=/usr/local/openssl 
$ make
$ sudo make install

configure オプションメモ

ドキュメントキャッシュ機能(参考:強化されたドキュメントキャッシュ機能を使う)

  • enable-cache (ドキュメントキャッシュ機能を有効にする)
  • enable-disk-cache (ディスクキャッシュ)
  • enable-mem-cache (メモリキャッシュ)

負荷分散のためのロードバランス機能

  • enable-proxy
  • enable-proxy-blancer


apache 設定

apache 実行ユーザ作成

$ sudo groupadd apache
$ sudo useradd -g apache -s /sbin/nologin apache

設定ファイル(httpd.conf)の修正

以下のように修正する。

$ sudo vim /usr/local/apache2/conf/httpd.conf
変更前
User daemon
Group daemon
 ↓
変更後
User apache
Group apache

以下の1行を追加する。

LoadModule dav_svn_module     modules/mod_dav_svn.so


apache 自動起動

apache 起動のためファイルコピー

$ sudo cp /usr/local/src/httpd-2.2.11/build/rpm/httpd.init /etc/rc.d/init.d/httpd
$ sudo chmod 755 /etc/init.d/httpd

ファイルの修正

$ sudo vim /etc/rc.d/init.d/httpd
変更前
CONFFILE=/etc/httpd/conf/httpd.conf
 ↓
変更後
CONFFILE=/usr/local/apache2/conf/httpd.conf
変更前
apachectl=/usr/sbin/apachectl
 ↓
変更後
apachectl=/usr/local/apache2/bin/apachectl
変更前
httpd=${HTTPD-/usr/sbin/httpd}
 ↓
変更後
httpd=${HTTPD-/usr/local/apache2/bin/httpd}

apache 自動起動設定に httpd を追加

$ sudo chkconfig --add httpd

apache 自動起動設定

$ sudo chkconfig httpd on

apache 自動起動設定の確認

ランレベル 2, 3, 4, 5 になっていればよい。

$ chkconfig --list httpd


Apache の SSL 設定

設定ファイル(http.conf)の修正

以下の1行をコメントアウトする。

$ sudo vim /usr/local/apache2/conf/httpd.conf
変更前
#Include conf/extra/httpd-ssl.conf
  ↓
変更後
Include conf/extra/httpd-ssl.conf

もし、ssl_module を読み込んでいなかったら、以下の1行を追記する。

LoadModule ssl_module modules/mod_ssl.so

設定ファイル(httpd-ssl.conf)の修正

$ sudo vim /usr/local/apache2/conf/extra/httpd-ssl.conf
変更前
SSLCertificateFile /usr/local/apache2/conf/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/server.key
			↓
SSLCertificateFile "/usr/local/apache2/conf/ssl_key_crt/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl_key_crt/server.key"

フォルダ作成

$ cd /usr/local/apache2/conf
$ sudo mkdir ssl_key_crt

秘密鍵/自己署名証明書作成

$ cd /usr/local/apache2/conf/ssl_key_crt
$ sudo /usr/local/openssl/bin/openssl genrsa -des3 -out server.key 1024

Enter pass phrase for server.key:パスワードを入力
Verifying - Enter pass phrase for server.key:パスワードを入力
$ cd /usr/local/apache2/conf/ssl_key_crt
$ sudo /usr/local/openssl/bin/openssl req -new -x509 -days 365 -key ./server.key -out server.crt
Enter pass phrase for ./server.key:パスワードを入力

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:foo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:hoge
Organizational Unit Name (eg, section) []:hoge
Common Name (eg, YOUR name) []:hoge
Email Address []:hoge@exmaple.com

Apache 起動時のパスフレーズ入力を回避する

$ cd /usr/local/apache2/conf/ssl_key_crt
$ sudo /usr/local/openssl/bin/openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:パスワードを入力

Apache 起動

$ sudo /etc/init.d/httpd start


Neon インストール

neon(WebDAVクライアントライブラリ)をインストールする。

確認

事前に zlib と expat もしくわ libxml2 (XMLパーサーライブラリ)をインストールしておく。

zlib

zlib がインストールされているか確認する。

$ yum list installed | grep zlib-devel

zlib がインストールされていなかったら、インストールする。

$ sudo yum install zlib-devel

libxml2

libxml2 がインストールされているか確認する。

$ yum list installed | grep libxml2-devel

libxml2 がインストールされていなかったら、インストールする。

$ sudo yum install libxml2-devel

インストール

バージョンは 0.25.5。
Trac をインストールするときは、「--enable-shared」をつける。

$ cd /usr/local/src/
$ wget http://www.webdav.org/neon/neon-0.25.5.tar.gz
$ tar zvxf neon-0.25.5.tar.gz
$ cd neon-0.25.5

$ ./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl
$ make
$ sudo make install

共有ライブラリに追加

ファイルの修正

neon.conf を新たに作成し「/usr/local/neon/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/neon.conf

/usr/local/neon/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'neon'

参考URL


swig インストール

swig(Simplified Wrapper and Interface Generator)をインストールする。

インストール

バージョンは 1.3.29。

$ cd /usr/local/src/
$ wget http://downloads.sourceforge.net/swig/swig-1.3.29.tar.gz
$ tar zvxf swig-1.3.29.tar.gz
$ cd swig-1.3.29
$ ./configure --prefix=/usr/local/swig --with-python=/usr/local/python-2.5.2/bin/python 
$ make
$ sudo make install

共有ライブラリに追加

ファイルの修正

swig.conf を新たに作成し「/usr/local/swig/lib」を記述する。

$ sudo vim /etc/ld.so.conf.d/swig.conf

/usr/local/swig/lib

ldconfig 更新

$ sudo ldconfig

確認

$ ldconfig -p | grep 'swig'

参考URL


Subversion インストール

確認

事前に arp、apr-util、neon、zlib、gettext、iconv をインストールしておく。

gettext

gettext がインストールされているか確認する。

$ yum list installed | grep gettext

gettext がインストールされていなかったら、インストールする。

$ sudo yum install gettext
$ sudo yum install gettext-devel

インストール

$ cd /usr/local/src/
$ wget http://subversion.tigris.org/downloads/subversion-1.5.6.tar.gz
$ tar zvxf subversion-1.5.6.tar.gz
$ cd subversion-1.5.6
$ ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk
$ make
$ sudo make install

参考URL


svn-python インストール

インストールする

$ cd /usr/local/src/subversion-1.5.6
$ sudo make swig-py
$ sudo make install-swig-py

ファイルを作成する

以下の1行を記述する

$ sudo vim /usr/local/python-2.5.2/lib/python2.5/site-packages/svn-python.pth

/usr/local/svn/lib/svn-python


Subversion リポジトリ作成

環境にあわせて適当に設定してください。
ちなみに、私はこんな感じ。

/home/svn
   |-- .htpasswd
   |-- .svnaccess
   `-- repos
      |-- sample (リポジトリ)
      |   |-- trunk
      |   |-- branches
      |   `-- tags
      |-- hoge (リポジトリ)
      |   |-- trunk
      |   |-- branches
      |   `-- tags
      `-- fuga (リポジトリ)
          |-- trunk
          |-- branches
          `-- tags

Subversion 用のユーザ作成

$ sudo useradd -m svnadmin
$ sudo passwd svnadmin

ディレクトリを作成

$ sudo mkdir -p /home/svn/repos
$ cd /home/
$ sudo chown svnadmin:svnadmin svn
$ cd /home/svn
$ sudo chown svnadmin:svnadmin repos

リポジトリの作成

$ su - svnadmin
[svnadmin@hoge]$ cd /home/svn/repos 
[svnadmin@hoge]$ mkdire sample
[svnadmin@hoge]$ svnadmin create sample
[svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/trunk -m "create"
[svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/branches -m "create"
[svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/tags -m "create"

リポジトリの権限設定

sample(リポジトリ)フォルダ以下を apache ユーザの権限でアクセスできるようにする。
なんか、もっといい方法ありそう。

方法 1

2行目で apache グループに変更し、3行目で他人が実行する場合にグループの権限で実行するように設定。

$ cd /home/svn/repos
$ sudo chgrp -R apache sample
$ sudo chmod -R g+s sample

方法 2

もしくわ、所有者とグループを apache に設定。

$ cd /home/svn/repos
$ sudo chown -R apache:apache sample

設定ファイル(http.conf)の修正

以下の1行を追加する。

$ sudo vim /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-subversion.conf

設定ファイル(httpd-subversion.conf)を作成

$ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf
<Location /svn>
 DAV svn
 SVNParentPath /home/svn/repos
</Location>

apache 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、ブラウザでリポジトリが表示される。

http://localhost/svn/sample/


Subversion ベーシック認証の設定

設定ファイル(httpd-subversion.conf)の作成

以下のように修正する。

$ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf
<Location /svn>
  DAV svn
  SVNParentPath /home/svn/repos
  
  # only authenticated users may access the repository
  Require valid-user

  # how to authenticate a user
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /home/svn/.htpasswd
</Location>

htpasswd の作成

ソースから apache をインストールした場合、htpasswd コマンドは、/usr/local/apache2/bin/htpasswd (apache のディレクトリ/bin/htpasswd)にインストールされている。
そうでなければ、/usr/bin/htpasswd とかかな?

$ cd /home/svn

新規作成

$ htpasswd -c .htpasswd ユーザ名

ユーザ追加

$ htpasswd .htpasswd ユーザ名

ユーザ削除

$ hpasswd -D .htpasswd ユーザ名

apache 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、認証がかかっている

http://localhost/svn/sample/


Subversion アクセス権限の設定

設定ファイル(subversion.conf)の修正

以下のように修正する。

$ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf
<Location /svn>
   DAV svn
   SVNParentPath /home/svn/repos
   
   # only authenticated users may access the repository
   Require valid-user

   # how to authenticate a user
   AuthType Basic
   AuthName "Subversion repository"
   AuthUserFile /home/svn/.htpasswd

   # how to access a user
   AuthzSVNAccessFile /home/svn/.svnaccess
</Location>

設定ファイル(httpd.conf)の修正

以下のように修正する。

$ sudo vim /usr/local/apache2/conf/httpd.conf

authz_svn_module の行を dav_svn_module の後に追加する。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

設定ファイル(.svnaccess)を作成

.svnaccess の書き方は、 httpd, Apache HTTP サーバ を参考に。
以下は、たとえばです。

$ cd /home/svn
$ sudo vim .svnaccess
[/]
admin = rw

# sample1 リポジトリ
[sample1:/]
user1 = rw
user2 = r

# sample2 リポジトリ
[sample2:/trunk/test]
user1 = rw
user2 = r

# sample3 リポジトリ
[/sample3]
* = 

Apache 再起動

$ /etc/init.d/httpd restart

動作確認

以下のURLにアクセスすると、リポジトリが表示される。

http://localhost/svn/sample/


Clearsilver のインストール

テンプレートシステム

インストール

$ cd /usr/local/src
$ wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
$ tar zxvf clearsilver-0.10.5.tar.gz
$ cd clearsilver-0.10.5
$ ./configure --prefix=/usr/local/clearsilver --with-apache=/usr/local/apache2 --with-python=/usr/local/python-2.5.2/bin/python 
$ make
$ sudo make install

参考URL


Trac インストール

インストール

$ cd /usr/local/src
$ wget http://ftp.edgewall.com/pub/trac/Trac-0.11.4.tar.gz
$ tar zxvf Trac-0.11.4.tar.gz
$ cd Trac-0.11.4
$ sudo /usr/local/python-2.5.2/bin/python2.5 ./setup.py install

参考URL


Trac 用のプロジェクト作成

Trac のプロジェクトを作成

tractest リポジトリのプロジェクトを作成する。
/home/project/web 以下に tractest プロジェクトを作成するものとする。

$ cd /home/project/web
$ trac-admin tractest initenv
Project Name [My Project]> TracTest (プロジェクト名を入力)
Database connection string [sqlite:db/trac.db]> (デフォルトがsqliteなのでそのままEnter)
Repository type [svn]> (デフォルトのままなのでEnter)
Path to repository [/path/to/repos]> /home/svn/repos/tractest (リポジトリを指定)

確認

以下のコマンドを実行する

$ tracd --port 8000 /home/project/tractest

ブラウザからアクセスする

http://localhost:8000/


mod_wsgi インストール

インストール

$ cd /usr/local/src
$ wget http://modwsgi.googlecode.com/files/mod_wsgi-2.5.tar.gz
$ tar zxvf mod_wsgi-2.5.tar.gz
$ cd mod_wsgi-2.5
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/python-2.5.2/bin/python 
$ make
$ sudo make install

設定ファイル(httpd.conf)の修正

以下の1行を追加する。

$ sudo vim /usr/local/apache2/conf/httpd.conf

LoadModule wsgi_module	modules/mod_wsgi.so

設定ファイル(dispatch.wsgi)を作成

$ cd /home/project/web/tractest
$ mkdir apache
$ cd apache
$ vim dispatch.wsgi
import os

os.environ['TRAC_ENV'] = '/home/project/web/tractest'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs'
import trac.web.main

application = trac.web.main.dispatch_request

アップデートする

$ cd /home/project/web
$ trac-admin tractest upgrade

権限設定

なんか、権限がなかったので、パーミッション変更する。

$ cd /home/project/web/tractest
$ chmod -R 777 log 
$ chmod -R 777 db 


VirtualHost? 設定

設定ファイル(httpd.conf)の修正

$ sudo vim /usr/local/apache2/conf/httpd.conf
変更前
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
 ↓
変更後
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

設定ファイル(httpd-vhosts.conf)の修正

VirturalHost? の書き方は、http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac を参考にした。

$ sudo vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

ログインページのみベーシック認証

<VirtualHost *:80>
   ServerName trac.localhost.localdomain
   ServerAdmin m.minaco@gmial.com
   DocumentRoot /home/project/web/tractest/apache
   ErrorLog logs/trac-error_log
   CustomLog logs/trac-access_log combined

   WSGIScriptAlias / /home/project/web/tractest/apache/dispatch.wsgi

   <Directory /home/project/web/tractest/apache>
       Order deny,allow
       Allow from all
   </Directory>

   <Location /login>
       # how to authenticate a user
       AuthType Basic
       AuthName "TracTest"
       AuthUserFile /home/svn/.htpasswd
       Require valid-user
  </Location>
</VirtualHost>

ページにまるっとベーシック認証

<VirtualHost *:80>
   ServerName trac.localhost.localdomain
   ServerAdmin m.minaco@gmial.com
   DocumentRoot /home/project/web/tractest/apache
   ErrorLog logs/trac-error_log
   CustomLog logs/trac-access_log combined

   WSGIScriptAlias / /home/project/web/tractest/apache/dispatch.wsgi

   <Directory /home/project/web/tractest/apache>
       Order deny,allow
       Allow from all

       # how to authenticate a user
       AuthType Basic
       AuthName "TracTest"
       AuthUserFile /home/svn/.htpasswd
       Require valid-user
   </Directory>
</VirtualHost>

複数プロジェクトの場合

 <VirtualHost *:80>
   ServerName trac.localhost.localdomain
   ServerAdmin m.minaco@gmial.com
   ErrorLog logs/centos21-error_log
   CustomLog logs/centos21-access_log combined

   WSGIScriptAlias /trac1 /home/project/web/trac/trac1/apache/dispatch.wsgi
   WSGIScriptAlias /trac2 /home/project/web/trac/trac2/apache/dispatch.wsgi

   <Directory /home/project/web/trac/trac1/apache>
       Order deny,allow
       Allow from all 
   </Directory>

   <Directory /home/project/web/trac/trac2/apache>
       Order deny,allow
       Allow from all 
   </Directory>

   <LocationMatch "/[[:alnum:]]+/login">
       AuthType Basic
       AuthName "Trac"
       AuthUserFile /home/svn/.htpasswd
       Require valid-user
   </LocationMatch>
</VirtualHost>

Apache 再起動

$ /etc/init.d/httpd restart

確認

ブラウザから表示できれば成功


エラー

エラー(1)

エラー内容

ブラウザから Trac にアクセスすると以下のようなエラーが出た。

Warning: Can't synchronize with the repository (Unsupported version control system "svn": "/usr/local/svn/lib/libsvn_ra_neon-1.so.0: undefined symbol: gss_delete_sec_context" ). Look in the Trac log for more information.

確認

$ python
>>>import svn.repos

ImportError: /usr/local/svn/lib/libsvn_ra_neon-1.so.0: undefined symbol: SSL_shutdown

解決策

neon の configure オプションを以下のようにしてコンパイルしなおしたらなおった。
ちなみに、--enable-shared が必要だったぽい。

./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl

neon のリコンパイル

$ cd /usr/local/src/neon-0.25.5
$ sudo make clean
$ ./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl
$ make
$ sudo make install

Subverion のリコンパイル

$ cd /usr/local/src/subversion-1.5.6
$ sudo make clean
$ ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk
$ make
$ sudo make install


エラー(1)

エラー内容

Warning: Can't synchronize with the repository (Unsupported version control system "svn": "No module named svn" ). Look in the Trac log for more information.

確認

$ python
>>>import svn.repos

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named svn.repos

以下のフォルダに、svn-python.pth ファイルもない。  $ cd /usr/local/python-2.5.2/lib/python2.5/site-packages/

そのため、python が /usr/local/svn/lib/svn-python を読みにいけない。

解決策

インストールする

$ cd /usr/local/src/subversion-1.5.6
$ sudo make swig-py
$ sudo make install-swig-py

ファイルを作成し、以下の1行を記述する

$ sudo vim /usr/local/python-2.5.2/lib/python2.5/site-packages/svn-python.pth

/usr/local/svn/lib/svn-python


Comment



Counter: 10436, today: 1, yesterday: 3

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:35 (1461d)