apacheとsubversionの連携
apacheに必要なモジュールの確認とインストール
apache -M
を実行し
so_module (static) auth_basic_module (shared) dav_module (shared) dav_fs_module (shared) ssl_module (shared) dav_svn_module (shared) authz_svn_module (shared)
が入っているかを確認する。
入っていない場合は以下のrpmをインストールする
./configure --enable-so=yes #=> so_module ./congigure --enable-auth-basic=yes #=> auth_basic_module ./configure --enable-dav=yes #=> dav_module, dav_fs_module mod_ssl-2.2.3-39.el5.i386.rpm => ssl_module mod_dav_svn-1.4.2-4.el5_3.1.i386.rpm => dav_svn_module, authz_svn_module
証明書の作成と配置
#証明書作成場所に移動
cd /etc/pki/tls/certs
#秘密鍵を作成
openssl genrsa -des3 1024 > cert.key
#パスワードを解除
openssl rsa -in cert.key -out cert.key
#署名要求を作成(-utf8は locale -c LC_CTYPE -kでcharmap="UTF-8"がある場合に指定)
openssl req -utf8 -new -key cert.key -out cert.csr
#Common Nameのところでサーバのドメイン名を入力する
#自己署名してサーバ証明書作成(-days 3650で10年間有効)
openssl x509 -in cert.csr -out cert.pem -req -signkey cert.key -days 3650
#クライアントインポート用証明書作成
openssl x509 -inform pem -in cert.pem -outform der -out cert.der
#IEでcert.derをルート証明機関にインポートすれば警告なしでアクセスできるようになる
#ssl.confの設定
#サーバ証明書 SSLCertificateFile /etc/pki/tls/certs/cert.pem #秘密鍵 SSLCertificateKeyFile /etc/pki/tls/certs/cert.key
subversionのインストール
rpm -ivh subversion-1.4.2-4.el5_3.1.i386.rpm subversion-devel-1.4.2-4.el5_3.1.i386.rpm
リポジトリの作成
mkdir /var/www/svn mkdir /var/www/svn/project_name svnadmin create /var/www/svn/project_name chown -R apache.apache /var/www/svn/project_name
httpd.conf(または subversion.conf)の修正
#LimitExceptは書き込みのみ制限したい場合などに有効にする
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /var/www/svn # Limit write permission to list of valid users. #<LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. SSLRequireSSL AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/httpd/.htpasswd Require valid-user #</LimitExcept> </Location>
認証ユーザを作成
htpasswd -c /etc/httpd/.htpasswd user_name
#必要なユーザ分繰り返す
apache再起動
apachectl graceful
動作確認
svn list https://localhost/svn/project_name
プロジェクトのリポジトリを増やしたい場合は
mkdir /var/www/svn/new_project_name svnadmin create /var/www/svn/new_project_name chown -R apache.apache /var/www/svn/new_project_name
とする