豚吐露@wiki
install_redhut
最終更新:
ohden
-
view
Redhut環境へのSubVersion導入
環境
CentOS 5.6.0
CentOS 5.6.0
rootでloginする。
redhut系の場合はyumを用いて導入を行う。
# yum install subversion
途中で導入の確認されるので『y』一択。
処理が終わったら、
処理が終わったら、
# svn help
と打って確認。
ちゃんと入ってればversionとかもろもろが表示される。
ちゃんと入ってれば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を確認。
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。
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を指定ね。
※リポジトリの場所『SVNParentPath』やパスワードファイル『AuthUserFile』の場所は環境に合わせて変える。『SVNParentPath』はリポジトリを格納している親dirを指定ね。
- <Location /svn>
- DAV svn
- SVNParentPath /var/repos
-
- # 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 /var/repos/.passwd
- Require valid-user
- # </LimitExcept>
- </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ディレクトリの所有権変更。
で、このユーザとグループで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
結局、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。
『:』より前がuser名で後ろがpassword。
設定が全て終わったらapacheを再起動。
# /etc/init.d/httpd restart
更新日: 2019年08月08日 (木) 08時31分40秒