スポンサーサイト

-------- --:--:-- --

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【環境構築】CentOS5.7にApacheとSubvesionとTrac

2011-12-08 02:27:13 Thu

centos 5.7に
subversion と trac とインストールする。

subversionはapache経由でBasic認証で接続できるようにする。

■Apacheのインストール


こちらを参考にしながらApacheをインストールする。


yum -y install httpd



vi /etc/httpd/conf/httpd.conf で設定ファイルを変更する。
ここは適宜変更するが、あんまり詳しくないので下記のようにした。


Options Indexes FollowSymLinks
  ↓
Options Includes ExecCGI FollowSymLinks ← CGI,SSIの許可

AllowOverride None
  ↓
AllowOverride All ← .htaccessの許可

ServerSignature On

ServerSignature Off ← エラーページでサーバー情報を表示しないようにする

#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi .pl ← CGIスクリプトに.plを追加


Options Indexes MultiViews

Options MultiViews ← iconsディレクトリのファイル一覧を表示しないようにする
AllowOverride None
Order allow,deny
Allow from all



ここまでやったら


/etc/rc.d/init.d/httpd start ← httpd起動



でサーバを起動する。
ただ、CentOSを普通にインストールしているとファイアウォールの設定があるので下記を設定。


system-config-securitylevel-tui


WS000176.jpg

WS000177.jpg

80番ポートのアクセスを許可する

■subversionのインストール




yum -y install subversion mod_dav_svn ← subversionインストール



vi /etc/httpd/conf.d/subversion.conf で Apache用Subversion設定ファイル編集する。

以下を最終行へ追加


←http://hostname/repos/...のURLになる。URLをhttp://hostname/svn/...としたければ/svnなどURL名にあわせて変更する。
DAV svn
SVNParentPath /var/www/svn
SVNAutoversioning on
内部からのみアクセスする場合(ここから)
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24 ← 内部ネットワークアドレスを指定
内部からのみアクセスする場合(ここまで)

# Limit write permission to list of valid users.

# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user






/etc/rc.d/init.d/httpd restart ← httpd停止して起動



【リポジトリ作成】

[root@centos ~]# svnadmin create /var/www/svn/test ← リポジトリ(例:test)作成

[root@centos ~]# chown -R apache:apache /var/www/svn/test/ ← リポジトリ所有者をApache実行ユーザーに変更


http://サーバー名/repos/test

この時点で参照することができます。

WS000178.jpg


参照にもBasic認証させたければLimitExceptノードをコメントアウトして次のようにしておく。


# Limit write permission to list of valid users.
#
# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
#




■Basic認証アカウントを作成



.htpasswdファイル作成
(1).htpasswdファイルを新規作成する場合

[root@centos ~]# htpasswd -b -c /etc/httpd/conf/.htpasswd centos centospassos ← .htpasswdを作成してユーザーcentosを登録する
Adding password for user centos



(2)既存の.htpasswdファイルへユーザーを追加する場合

[root@centos ~]# htpasswd -b /etc/httpd/conf/.htpasswd centos centospassos ← 既存の.htpasswdへユーザーcentosを登録する
Adding password for user centos



(3)ユーザー登録確認

[root@centos ~]# cat /etc/httpd/conf/.htpasswd ← ユーザー登録確認
centos:vYwnFfo59lI/c



※Basic認証の確認
(1)テスト用ディレクトリ、ページ作成

[root@centos ~]# mkdir /var/www/html/secret ← テスト用ディレクトリ作成

[root@centos ~]# echo test > /var/www/html/secret/index.html ← テスト用ページ作成



(2).htaccessファイル作成
.htpasswdに登録してある全てのユーザー名で認証できるようにする場合

[root@centos ~]# vi /var/www/html/secret/.htaccess ← テスト用ディレクトリに.htaccess作成
SSLRequireSSL
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "secret page"
AuthType Basic
require valid-user



http://ホスト名/secret/ にアクセスして認証ウィンドウが出ればBasic認証されている。

WS000178.jpg

■tracのインストール


http://www.cafechantant.com/blog/2007/08/27/centos5-%E3%81%A7-subversiontrac/
http://blog.ciklone.com/2010/05/13/linuxcentos-5-4-%E3%81%ABtrac%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/


yum install python

yum install sqlite



pysqliteをインストールしたいんだけど次のようなエラーになる。

error: command 'gcc' failed with exit status 1

これはsqlite-develがあれば私の環境では発生せず正常にインストールできたので、
先にyum install sqlite-develでsqlite-develをインストールする。

私はこの方と同じエラーはでているけど対処方法は違っているみたいです。


yum install python-devel ←いるかどうかわからないけど、いつもこれインストールしていたのでおまじない。

yum install sqlite-devel

wget http://pysqlite.googlecode.com/files/pysqlite-2.6.0.tar.gz
tar xzvf pysqlite-2.6.0.tar.gz
cd pysqlite-2.6.0
python setup.py build_static install


次にこのあたりからpython のバージョン似あわせてwgetで取得してくる
http://pypi.python.org/pypi/setuptools#files


sh setuptools-0.6c11-py2.4.egg



これを参考にしつつeggファイルは展開されるように--always-unzip オプションをつけておくようにする。おまじない。


easy_install --always-unzip Genshi

easy_install --always-unzip Babel



DAGレポジトリを追加。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# vi /etc/yum.repos.d/rpmforge.repo
・・・
enabled = 1
・・・

・・・
enabled = 0
・・・
に変更。

# yum --enablerepo=rpmforge install -y python-clearsilver

# yum install -y mod_python


日本語版tracをDLして展開する。

http://www.i-act.co.jp/project/products/products.html


wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.2.ja1.zip
# unzip Trac-0.12.2.ja1.zip
# cd Trac-0.12.2.ja1
# python setup.py install



Tracプロジェクト用ディレクトリの作成

# mkdir /var/www/trac

trac-admin /var/www/trac/test initenv



で、うまくいくはずなのにtracで使用するデータベースの選択時に下記のようなエラーに。


プロジェクトの生成と初期化
initenv 失敗: '/var/www/html/trac012/test-new'
tracenv が作成できません。
SQLite 向け Python バインディングをロードできません
Traceback (most recent call last):
File "usr/lib/python2.4/site-packages/trac/admin/console.py", line 413, in do_initenv
File "usr/lib/python2.4/site-packages/trac/env.py", line 221, in __init__
File "usr/lib/python2.4/site-packages/trac/env.py", line 408, in create
File "usr/lib/python2.4/site-packages/trac/db/api.py", line 145, in init_db
File "usr/lib/python2.4/site-packages/trac/db/api.py", line 195, in get_connector
TracError:
initenv 失敗: '/var/www/html/trac012/test-new'
1
Traceback (most recent call last):
File "usr/lib/python2.4/site-packages/trac/admin/console.py", line 418, in do_initenv
SystemExit: 1



これは「pysqlite未導入だとinitenvしたときにエラーが出ます」との通り、
pysqlite周りかと思い、もう一度pysqliteを下記のようにインストールしてみる。おまじない。


cd pysqlite-2.6.0

python setup.py build_static install



http://d.hatena.ne.jp/tomo_snowbug/20100613/1276365386

これでもう一度行うと、


trac-admin /var/www/trac/test2 initenv



Congratulations!が表示されてうまくいったっぽい。


tracd --port 8000 /home/develop/trac/test2 &



で確認してみる。


wget http://127.0.0.1:8000/

cat index.html



Available Projectsの見出しで先程追加したプロジェクトがあればひとまず成功。


chown -R apache:apache /var/www/trac/test2

vi /etc/httpd/conf.d/trac.conf


SetHandler mod_python
PythonDebug On
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
# PythonOption TracUriRoot /trac



AuthType Basic
AuthName "trac"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user


/etc/rc.d/init.d/httpd restart ← httpd停止して起動



回避しようとしていたエラーになってしまった…。


Mod_python error: "PythonHandler trac.web.modpython_frontend"

Traceback (most recent call last):

File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 287, in HandlerDispatch
log=debug)

File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 461, in import_module
f, p, d = imp.find_module(parts[i], path)

ImportError: No module named trac



これはeggがアーカイブされたままであるために起こっている模様。
解凍して展開した状態にする。

WS000182.jpg

WS000183.jpg

これでなんとかtracが表示されるはず。

WS000184.jpg

WS000186.jpg

ここで、

TimeoutError: Unable to get database connection within 0 seconds


が表示されたらここを参考にして/var/www/trac/test2/dbディレクトリの所有者がrootとかになっていてapacheから権限がない状態になっているので権限を変更すればこの例外は対処できる。

なお、tracも閲覧制限する場合は/etc/httpd/conf.d/trac.confを変更する。
例えば下記を追加するなど。



AuthType Basic
AuthName "trac"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user




参考URL
http://pocomoco.net/trac-ja-0-12-%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89/
http://trac.edgewall.org/ticket/4435
http://ruk.ca/content/importerror-no-module-named-trac
http://centossrv.com/subversion.shtml
http://centossrv.com/apache.shtml
http://centossrv.com/apache-htpasswd.shtml
http://blog.ciklone.com/2010/05/13/linuxcentos-5-4-%E3%81%ABtrac%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/
http://www.cafechantant.com/blog/2007/08/27/centos5-%E3%81%A7-subversiontrac/
http://www.l2tp.org/?p=1735
スポンサーサイト

⇒comment

Secret

名言集
全記事(数)表示
全タイトルを表示
ブログ内検索
Loading
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。