web-dev-qa-db-ja.com

Apache 2.2エラーのSVN:「このサーバーの/ reposにアクセスする権限がありません」

私は このsvnインストールガイド に従っていて、_http://localhost/repos_にアクセスしてテストリポジトリにアクセスしようとすると、認証は成功しますが、次のようになります。

_"Forbidden You don't have permission to access /repos on this server"
_

これが私のSubversion.confファイルです。

_LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so


<Location /repos>
   DAV svn
   SVNParentPath /var/www/svn/repos
#
#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
      AuthType Basic
      AuthName "Subversion repos"
      AuthUserFile /etc/svn-auth-conf
      Require valid-user
#   </LimitExcept>
</Location>
_

私のパスは/ var/www/svn/reposで、ここに私の権限があります

_[root@localhost svn]# ls -la repos/
total 32
drwxr-xr-x. 6 Apache apache 4096 Aug 24 11:42 .
drwxr-xr-x. 3 root   root   4096 Aug 24 11:42 ..
drwxr-xr-x. 2 Apache apache 4096 Aug 24 13:50 conf
drwxr-sr-x. 6 Apache apache 4096 Aug 24 11:42 db
-rwxr-xr-x. 1 Apache apache    2 Aug 24 11:42 format
drwxr-xr-x. 2 Apache apache 4096 Aug 24 11:42 hooks
drwxr-xr-x. 2 Apache apache 4096 Aug 24 11:42 locks
-rwxr-xr-x. 1 Apache apache  229 Aug 24 11:42 README.txt
_

Localhost/repos/README.TXTにアクセスすると、このメッセージが表示されます。

_<D:error><C:error/><m:human-readable errcode="20">
Could not open the requested SVN filesystem
</m:human-readable></D:error>
_

他のファイル名は_errcode ="2"_を代わりに与えます。

selinuxはpermissiveに設定されています。var/ www/html/index.htmlにあるlocalhost/index.htmlファイルが問題なく表示されます。

似たような問題のあるいくつかのフォーラムの投稿を読みましたが、役に立ちませんでした。

任意のアイデアをいただければ幸いです!

編集1:

Subversion.confファイルを編集して_SVNParentPath /var/www/svn/repos_を_SVNParentPath /var/www/svn_に変更しましたが、効果がないようです。

編集2:

brain99はそれを釘付けにしました。 _Location />_に変更すると問題が修正され、_repos - Revision 0: /_が表示されます

Powered by Subversion version 1.6.11 (r934486).

3
gozu

SVNPathとSVNParentPathディレクティブを混同しているようです。

あなたが投稿したものから、/var/www/svn/reposには単一のリポジトリが含まれています。この場合は、

SVNPath /var/www/svn/repos

複数のリポジトリがある場合のみ、SVNParentPathを使用する必要があります。個々のリポジトリは、ここで設定するディレクトリのサブフォルダに配置する必要があります。

だからそれを親ディレクトリに設定する:

SVNParentPath /var/www/svn

または、設定をそのままにして、現在のリポジトリをサブディレクトリに移動します。/var/www/svn/repos/myRepo

Mod_dav_svnの使用の詳細については、mod_dav_svnの SVN Bookセクションを確認してください

6
brain99

最初に、ディレクトリSVNParentPath/var/www/svn/reposが存在することを確認します。次に、サブディレクトリはありますか?彼自身のデータベースを備えたリポジトリdirectorがあるはずです。ディレクトリが空であるか、サブディレクトリがない場合は、svnadminコマンド(マニュアルを呼び出す)を使用してリポジトリを作成します。作成後も問題はありますか?次に、すべてのディレクティブAUTH *をコメント化し、Apacheを要求して再起動します。アクセスは匿名になりますが、確認するか、認証に問題があるかどうかは問題ではありません。アクセスが可能な場合、認証が問題になります。これを構成する必要があります。 Apache manを読み、基本的な認証のためにAuthUserFile/etc/svn-auth-confを管理する方法を学ぶ必要があります。問題が(コメントアウトされたauthで)まだ存在する場合、問題はファイルのアクセス権にあります。 Apacheサーバーが使用するユーザー名への読み取り/書き込みアクセスを構成します。 ps auxwwは、そのユーザーが何であるかを伝えます。/etc/passwdファイルから取得するグループ番号。/etc/groupファイルから取得するグループ名。この後、チェックアウト/更新およびコミットできるようになると、認証の問題を解決できます。たくさんのレシピがあります。 「svn create my first repository」という質問をグーグルに入力したところ、多くの回答を得ました。最初の例は次のとおりです。 http://queens.db.toronto.edu/~nilesh/linux/Subversion-howto/ これを試してください:)

ところで。 centosはredhatのようなLinuxディストリビューションです。 /etc/init.d/httpd start/stopでApacheを再起動できます。/etc/Apacheまたは/ etc/httpdファイルに何を書き込んでいるかを調べます(LinuxディストリビューションとデフォルトのApache構成に依存)。

0
Znik