私はフォローしていますこの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 ファイルを正常に表示できます。
同様の問題に関するフォーラムの投稿を20件ほど読みましたが、役に立ちませんでした。
どのようなアイデアでも歓迎します!
編集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).
答え1
SVNPath ディレクティブと SVNParentPath ディレクティブを混同しているようです。
投稿内容から判断すると、/var/www/svn/repos
リポジトリが1つだけ含まれているようです。この場合、
SVNPath /var/www/svn/repos
複数のリポジトリがある場合にのみ、SVNParentPath を使用する必要があります。各リポジトリは、ここで構成するディレクトリのサブフォルダーに配置する必要があります。
したがって、親ディレクトリに設定します。
SVNParentPath /var/www/svn
または、設定をそのままにして、現在のリポジトリをサブディレクトリに移動します(例:/var/www/svn/repos/myRepo)。
mod_dav_svnの使用に関する詳細については、mod_dav_svn の SVN ブック セクション
答え2
まず、ディレクトリ SVNParentPath /var/www/svn/repos が存在するかどうかを確認します。次に、サブディレクトリがあるかどうかを確認します。独自のデータベースを持つリポジトリ ディレクトリがあるはずです。ディレクトリが空であるかサブディレクトリがない場合は、svnadmin コマンドを使用してリポジトリを作成します (マニュアルを参照)。作成後も問題がまだ存在する場合は、すべてのディレクティブ AUTH* をコメント アウトし、Apache を要求して再起動します。アクセスは匿名になりますが、認証に問題があるかどうかを確認します。アクセスが可能な場合は、認証に問題があります。これを構成する必要があります。Apache のマニュアルを読み、基本認証の AuthUserFile /etc/svn-auth-conf を管理する方法を学ぶ必要があります。問題 (コメント アウトされた認証を使用) がまだ存在する場合は、ファイル アクセス権に問題があります。Apache サーバーが使用するユーザー名への読み取り/書き込みアクセスを構成します。ps auxww でそのユーザーがわかります。グループ番号は /etc/passwd ファイルから取得します。グループ名は /etc/group ファイルから取得します。この後、チェックアウト/更新とコミットができるようになると、認証に関する問題を解決できます。レシピはたくさんあります。Google に「svn で最初のリポジトリを作成する」という質問を入力すると、多くの回答が返ってきます。最初の回答は、たとえば次のとおりです。 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 構成によって異なります)。
答え3
このオプションを試してください: SVNListParentPath on