豚吐露@wiki
install
最終更新:
ohden
-
view
前提条件
Ubuntu8.10server
『>』以降に続く文字列は入力command。
『□』内の文字はコマンドに対する反応や、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』を作成。
※例として『/var/svn』を作成。
> sudo mkdir /var/svn
svnの下にrepositoryを作成
> cd /var/svn > sudo svnadmin create repos
repositoryからCheckOutのテスト
※カレントdirに『repos』、そのsub dirがCheckOutされる。
※カレントdirに『repos』、そのsub dirがCheckOutされる。
> svn co file:////var/svn/repos
repositoryに標準的なdirectoryを作成
coしたdirに以下の3dirを作成。
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を取得。
> id www-data
※所属groupがwww-dataと分かる。
uid=33(www-data) gid=33(www-data) groups=33(www-data) |
オーナーの変更
※取得したuser名とgroup名を設定。
※取得した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』にシンボリックリンクが作成されるハズだが、無かったら作る。
設定対象の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末尾に追加。
それぞれコメントアウトを外しても良いが、とりあえず下記を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』として記述。
ブラウザを用いて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』に吐かれる。
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
※例として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。
『:』より前が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の場合。
再度『http://192.168.1.100/svn/repos』へaccessし、user名、passwordが要求されることを確認する。
user名などを要求されなかった場合、ブラウザにキャッシュされている場合があるので、ブラウザを立ち上げなおしたり、キャッシュの削除を行う。
※Operaの場合。

正しいuser名、passwordを入力してrepositoryの内容が表示されることを確認する。
更新日: 2019年08月08日 (木) 08時31分23秒
添付ファイル