豚吐露@wiki

install

最終更新:

ohden

- view
管理者のみ編集可

前提条件

Ubuntu8.10server

『>』以降に続く文字列は入力command。
『□』内の文字はコマンドに対する反応や、command以外の入力。

Apache2のinstall
> sudo apt-get install apache2
SubVersionとsvn-apache連携moduleのinstall
> sudo apt-get install subversion libapache2-svn

svn用directoryの作成
※例として『/var/svn』を作成。
> sudo mkdir /var/svn

svnの下にrepositoryを作成
> cd /var/svn
> sudo svnadmin create repos

repositoryからCheckOutのテスト
※カレントdirに『repos』、そのsub dirがCheckOutされる。
> svn co file:////var/svn/repos

repositoryに標準的なdirectoryを作成
coしたdirに以下の3dirを作成。
$ mkdir trunk
$ mkdir tags
$ mkdir branches
$ svn add *
A branches
A tags
A trunk
$ sudo svn ci -m 'Create base dir.'
Adding branches
Adding tags
Adding trunk

Committed revision 1.
commitできた。

apache userの確認
> ps -aux | grep apache

※rootとlogin user以外でapacheを操作しているuser(www-data)がいるのを確認。それがapacheのuser名。
www-data 4171 0.0 0.4 14356 2260 ? S Oct07 0:00 /usr/sbin/apache2 -k start
www-data 4173 0.0 0.7 236028 3656 ? Sl Oct07 0:00 /usr/sbin/apache2 -k start
www-data 4177 0.0 0.7 236100 3672 ? Sl Oct07 0:00 /usr/sbin/apache2 -k start

user所属groupの確認
※先ほど確認したid(www-data)の所属groupを取得。
> id www-data
※所属groupがwww-dataと分かる。
uid=33(www-data) gid=33(www-data) groups=33(www-data)

オーナーの変更
※取得したuser名とgroup名を設定。
> sudo chown -R www-data:www-data svn

libapache2-svnの設定①
設定対象のfileは『/etc/apache2/mods-enabled/dav_svn.conf』。
当該fileは『mods-available』のシンボリックリンク。
apacheは起動時に『mods-enabled』内に指定されているfileを読み込む。
install時に『mods-enabled』にシンボリックリンクが作成されるハズだが、無かったら作る。

『dav_svn.conf』を開くと設定がコメントアウトされた状態。
> sudo vi /etc/apache2/mods-enabled/dav_svn.conf
※sudoしないと編集できない。
それぞれコメントアウトを外しても良いが、とりあえず下記をfile末尾に追加。
記述内容 備考
<Location /svn>
  DAV svn
  SVNParentPath /var/svn
</Location>
repositoryにアクセスするときのURL
定型句
repositoryが格納された親dirを指定


apacheの再起動
> sudo /etc/init.d/apache2 restart

apache2~svnの動作確認
ブラウザを用いてserverへアクセス。
※serverのIP addressを『192.168.1.100』として記述。
http://192.168.1.100/svn/repos dav_svn.confで指定したのはrepositoryが格納されたdir。
URLで指定するのはrepository名まで含んだURL。
格納dirまでではForbidden Errになる。

libapache2-svnの設定②
①の設定だけでは誰でもアクセスできるのでとりあえずベーシック認証だけでも追加しとく。
記述内容 備考
<Location /svn>
  DAV svn
  SVNParentPath /var/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /var/svn/repos/conf/htpasswd
  Require valid-user
</Location>
repositoryにアクセスするときのURL
定型句
repositoryが格納された親dirを指定
basic認証を指定
認証ダイアログに表示されるmsg
認証用user_id/passwordの記述fileを指定
password fileに記載されたuser全てにaccessを許可します。


認証用fileの作成
basic認証はapacheの機能なので、apacheが参照できない場所に認証用fileがあると認証できない。要は、AuthUserFileで指定するpathは<Directory>タグや<Location>タグで指定されたapacheが参照できるpathじゃ無いとダメってこと。まぁ、おとなしくrepositoryのpath以下に置いとけってこった。
参照できない場所に置くと、『(13)permission denied: Could not open password file: /etc/svn/.htpasswd』ってな感じのログが『/var/log/httpd/error_log』に吐かれる。

とりあえず、上記設定で認証用file pathを『/var/svn/repos/conf/htpasswd 』と決めたので、そのpathを指定。
※例としてuser名に『user_id』、passwordに『passwd』を指定。
※htpasswdは『-m』付けないと長いpasswordだと8文字目以降を無視するらしい。w
> sudo htpasswd -cm /var/svn/repos/conf/htpasswd user_id
New password:
Re-type new password:
Adding password for user user_id
『passwd』を入力。入力は見えない。
確認にもう一度同じpasswordを入力。
『user_id』とそのpasswordが追加された。
『/var/svn/repos/conf/htpasswd 』をeditorで開くと以下のように追記されている。
user_id:K/GrsYEJB8YHE
どんな仕組みか不明だが、password固定でコマンド打つと毎回結果が変わるね。
『:』より前がuser名で後ろがpassword。

コマンドラインだけで完結したかったらこんな感じ。
新規
> sudo htpasswd -bnm user1 passwd1 > /var/svn/repos/conf/htpasswd
追加
> sudo htpasswd -bnm user2 passwd2 >> /var/svn/repos/conf/htpasswd

apacheの再起動
> sudo /etc/init.d/apache2 restart

basic認証の実施
再度『http://192.168.1.100/svn/repos』へaccessし、user名、passwordが要求されることを確認する。
user名などを要求されなかった場合、ブラウザにキャッシュされている場合があるので、ブラウザを立ち上げなおしたり、キャッシュの削除を行う。
※Operaの場合。
正しいuser名、passwordを入力してrepositoryの内容が表示されることを確認する。



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

名前:
コメント:

すべてのコメントを見る
添付ファイル
記事メニュー
ウィキ募集バナー