page_adsence

2011年1月5日水曜日

svnでapache経由でコミットしようとしらたエラーになった

VMWare上に作ってあるリポジトリにApache経由でアクセスして使えるようにしたくていろいろとやっていた時のログ。

作業前の状態は以下の通り。
1.Apache経由ではリポジトリを見ることは可能
2.WindowsからTortoiseSVNを使ってチェックアウトすることは可能
3.フォルダを追加してコミットしようとしたらエラーになった。

TortoiseSVNが吐いたエラーは以下の通り。
コミットに失敗しました (詳しい理由は以下のとおりです):
サーバが、リクエストへのレスポンスとして予想外の戻り値 (403 Forbidden) を送信してきました (リクエスト: MKACTIVITY, URL: '/!svn/act/532009ea-04a9-8547-9597-23cc8ad9e5fe')

サーバ側のエラーログは以下の通り。
Access denied: 'ユーザー名' MKACTIVITY /:

ググってみたら結果、これの原因はauthzsvn.confのせいだとわかった。
よく見てみたら、ルートディレクトリ以下は誰も書き込みできないようになっていたので、
管理者は書き込みが可能なように修正して保存。

再度コミットしてみたら今度は別のエラーがでた。
Can’t create directory ‘~~~~~~’: Permission denied

サーバー側のエラーログは以下の通り。
Could not create activity /!svn/act/9a75b9be-5637-be47-9bb1-504df8e09f8a.  [500, #0]
could not begin a transaction  [500, #13]
Can't create directory '/path/to/dir/svn/db/transactions/0-1.txn': Permission denied  [500, #13]

で、これもググってみた結果、リポジトリ内のdavとdbフォルダ以下のオーナーをapacheに変更しないといけないということだったので、さっそく変更

# chown apache:apache -R db/ dav/

もう一度コミットしてみたら、今度はうまくいきました。
よかったよかった。

ちなみに、subversionのバージョンが1.5以降になるとdavディレクトリは自分で作らないといけないらしいので要注意。