豚吐露@wiki

install_redhut

最終更新:

ohden

- view
管理者のみ編集可

Redhut環境へのSubVersion導入


環境
CentOS 5.6.0


rootでloginする。

redhut系の場合はyumを用いて導入を行う。
# yum install subversion
途中で導入の確認されるので『y』一択。
処理が終わったら、
# svn help
と打って確認。
ちゃんと入ってればversionとかもろもろが表示される。

リポジトリを作成する。
# svnadmin create /var/repos/test
適当な所にcheckoutしてみる。
# svn co file:///var/repos/test
で、checkoutしたrepositoryに基本となるdirを作ってcheckinしてみる。
# cd test
# mkdir trunk
# mkdir branches
# mkdir tags
# svn add *
# svn ci -m "Create base dir."
今checkoutしとるworkを削除して、再びcheckoutしてみると...
# cd ..
# rm -rf test
# svn co file:///var/repos/test
さっき追加したdirも一緒にcheckoutできてるハズ。

続いてapacheとの連携。
OS導入時にLAMP Serverを選択してたら既に入ってると思う。
以下のコマンドでapacheのversionを確認。
# httpd -v
Server version: Apache/2.2.3
Server built: May 4 2011 06:51:15
入ってたので実行してみる。入って無かったらapache入れること。
# /etc/init.d/httpd start
httpd を起動中: [ OK ]
ifconfigでipaddress確認して...
# ifconfig eth0
ブラウザでアクセスしてみる。
http://192.168.1.1/
https://192.168.1.1/
SSLも最初っから有効になってるみたい。※証明書が信用できない云々出たら例外に追加してやればok。

で、連携モジュールの検索。
# yum search svn
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
===================================================== Matched: svn =====================================================
mod_dav_svn.x86_64 : Subversion サーバー用の Apache サーバーモジュール。
xfce4-dev-tools.noarch : Xfce developer tools
見つけたモジュールの導入。
# yum install mod_dav_svn
途中で導入確認されるので、『y』選択。
# updatedb
# locate mod_dav_svn
/usr/lib64/httpd/modules/mod_dav_svn.so
入ったみたい。

svn-apacheの設定
# cd /etc/httpd/conf.d
# vi subversion.conf
末尾にある『<Location /repos>』から『</Location>』を有効にすりゃ良い。
※リポジトリの場所『SVNParentPath』やパスワードファイル『AuthUserFile』の場所は環境に合わせて変える。『SVNParentPath』はリポジトリを格納している親dirを指定ね。
  1. <Location /svn>
  2. DAV svn
  3. SVNParentPath /var/repos
  4.  
  5. # Limit write permission to list of valid users.
  6. # <LimitExcept GET PROPFIND OPTIONS REPORT>
  7. # Require SSL connection for password protection.
  8. SSLRequireSSL
  9.  
  10. AuthType Basic
  11. AuthName "Authorization Realm"
  12. AuthUserFile /var/repos/.passwd
  13. Require valid-user
  14. # </LimitExcept>
  15. </Location>
※LimitExceptのトコだけコメントアウトしたままにしとるのはアクセス時に必ずベーシック認証を行うため。

次に、apacheを実行しているuserを調べる。
# ps -aux | grep httpd
apache 3889 0.0 0.7 251688 8108 ? S 15:04 0:00 /usr/sbin/httpd
『apache』ってuserらしいので...
# id apache
uid=48(apache) gid=48(apache) 所属グループ=48(apache) context=root:system_r:unconfined_t:SystemLow-SystemHigh
これで『apache』の所属グループも『apache』だと分かる。
で、このユーザとグループでsvnディレクトリの所有権変更。

で、SELinuxが有効になってるので、ファイルコンテキストを有効にする必要がある。
# chcon -R -h -t httpd_sys_content_t /var/repos/
これを設定せんとこんなエラーが出る。
[Fri Jul 22 16:29:15 2011] [notice] caught SIGTERM, shutting down
[Fri Jul 22 16:29:15 2011] [notice] SELinux policy enabled; httpd running as context root:system_r:httpd_t:s0
[Fri Jul 22 16:29:15 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Jul 22 16:29:15 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Jul 22 16:29:15 2011] [notice] Digest: done
[Fri Jul 22 16:29:15 2011] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Fri Jul 22 16:29:15 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Jul 22 16:29:23 2011] [error] [client 192.168.1.1] (20014)Internal error: Can't open file '/var/www/repos/format': Permission denied
[Fri Jul 22 16:29:23 2011] [error] [client 192.168.1.1] Could not fetch resource information. [500, #0]
[Fri Jul 22 16:29:23 2011] [error] [client 192.168.1.1] Could not open the requested SVN filesystem [500, #13]
[Fri Jul 22 16:29:23 2011] [error] [client 192.168.1.1] Could not open the requested SVN filesystem [500, #13]
errorんトコに『Permission denied』って出とるから、ずっとformatのpermission疑っちまった。
結局、formatファイルに777の権限付与したら下の4行消えたんでSELinuxが悪さしょうるんが分かったんじゃけどね...プチハマリ。orz

で、ベーシック認証用のパスワードファイルを生成。
# htpasswd -c /var/repos/.passwd user_id
New password:
Re-type new password:
Adding password for user user_id
例として『passwd』を入力。入力は見えない。
確認にもう一度同じ『passwd』を入力。
『/var/repos/.passwd』をviで開くと以下のように追記されている。
# vi /var/repos/.passwd
user_id:K/GrsYEJB8YHE
どんなhash関数を使ってるのかは不明だが、『passwd』をhash関数に通すと『K/GrsYEJB8YHE』になる模様。
『:』より前がuser名で後ろがpassword。

設定が全て終わったらapacheを再起動。
# /etc/init.d/httpd restart

で、ブラウザでアクセスしてみると...
https://192.168.1.1/svn/temp/
repositoryが見れるハズ。



更新日: 2019年08月08日 (木) 08時31分40秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー