忘れたときに備えた記録

トップ «前の日記(2005-03-16(Wednesday)) 最新 次の日記(2005-03-23(Wednesday))» 編集
2005|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|11|12|
2009|01|02|03|04|05|06|10|12|
2010|06|07|08|12|
2011|07|09|
2012|09|11|
2013|02|03|09|
2015|10|11|
2016|01|08|11|
2017|02|08|10|

2005-03-17(Thursday) 公開

というわけで(謎)、大学でやってる翻訳作業のためにリポジトリとバグジラを公開する都合で、備忘録もおっかなびっくり公開。

Apache + Subversion

公開してみたら、いきなりうまく動かなかった。がっかり

翻訳作業のデータをSubversionのリポジトリで管理していて、今まではsvn+sshを使っていたのを、Apacheとmod_dav_svnを使ってみることにしたのだけど、コミットするときになぜか

Tags: メモ
svn: PROPFIND リクエスト (相手: '/svn') が失敗しました
svn: PROPFIND (URL: '/svn'): 301 Moved Permanently (http://cs)

というエラーが出てしまう。ちなみにこれはLinuxのコンソール版クライアントで出たエラー。TortoiseSVNでも似たようなエラーが出る。

さんざん調べて、原因がApacheの設定におけるDocumentRootにあるらしいということが分かった。

ディレクトリ構成は

/var/project/
       +--svn/

こんな感じで/var/project/svnがリポジトリ。

で、Apacheの設定は

<VirtualHost *>
  ServerName project.hinet.mydns.jp
  DocumentRoot /var/project

Options -Indexes <Location /svn> DAV svn SVNPath /var/project/svn </Location>
</VirtualHost>

とこんな感じ。実際はポートが443でSSLを使って認証がどうたらこうたらという設定も書いてあるんだけど、今回の話とは関係がないので割愛。また、ディレクトリ名なんかもprojectというのではないのだけど、あくまで例ということで。

この設定でサーバを動かすと、ブラウザからはhttp://project.hinet.mydns.jp/svnに接続できてちゃんとリポジトリの内容も表示されるのだけど、Subversionのクライアントを使うとコミットもチェックアウトも出来ない。

で、色々と設定をいじって確かめていると、DocumentRootをコメントアウトすれば正常に動作することが判明。出来ればDocumentRootも使いたかったのだけど結局あきらめて、svnリポジトリ用のと、ドキュメント用の2つのバーチャルホストを作ることに。

というのが、2時間ほど前の話。実はなんとDocumentRootが原因ではありませんでした。

ここで注目するべきなのは、実際にリポジトリが入っているディレクトリ/var/project/svnと、Locationで指定したhttp経由でリポジトリを指定する場合のhttp://project.hinet.mydns.jp/svnが、DocumentRootから見ると同じディレクトリを指していること。

mod_dav_svnでは、Locationで指定したディレクトリと同じ場所に、実際にディレクトリが存在しているとエラーが出る模様。

なので、ディレクトリ構成を

/var/project/
       +--svnrepository/

こんな感じに変えて、設定ファイルのDavの辺りを

  <Location /svn>
    DAV svn
    SVNPath /var/project/svnrepository
  </Location>

このようにして、Locationで指すディレクトリに本当にディレクトリが存在しないようにしておけば、エラーが出なくなりましたとさ

本日のツッコミ(全10件) [ツッコミを入れる]
_ 白子 (2005-06-29(Wednesday) 02:16)

svn copyが出来なくて完全に鬱状態でしたがこのページのお陰で助かりました。本当にありがとうございます。

_ Tacchang (2006-02-04(Saturday) 15:38)

同じ,<br>「301 Moved Permanently 」<br>で途方に暮れていたので助かりました.ども.

_ gurungaa (2006-11-24(Friday) 22:23)

どうにも動かなくて困ってました。<br>ホント助かりました。感謝感謝。

_ tf0054 (2007-03-05(Monday) 00:46)

私も助かりました!ありがとうございます.

_ mrmt (2007-11-29(Thursday) 01:40)

まじで助かりました。こんな落とし穴があるとはまいった。

_ MOπTH (2008-02-25(Monday) 12:28)

ググっってたどり着きました!そんな弊害があったとは・・!<br>ほんとに助かりました!ありがとう!^^

_ yupug (2008-03-25(Tuesday) 16:20)

上に同じく助かりましたm_ _m

_ ramyana (2008-08-08(Friday) 01:36)

ありがとうございます!たすかった!

_ sanadan (2009-10-02(Friday) 15:04)

ありがとうございます。この記事のおかげで直せました。

_ namu76 (2011-02-14(Monday) 14:32)

同じく助かりました.ありがとうございました!!

本日のTrackBacks(全1件) []
_ Anything goes.:subversion 1.4.6 apache2.28 導入 (2010-06-04(Friday) 06:58)

今回は自宅で我が家のサーバーに入っているphpアプリケーションの改修作業をやろうと思ったのでsubversionを導入することにしました。
変な設定をして今のサーバーをだめにしたくはなか...