我一直在關注這個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 設定為寬容,我可以看到位於 var/www/html/index.html 的 localhost/index.html 檔案。
我讀過一些有類似問題的 fozen 論壇帖子,但無濟於事。
任何想法,將不勝感激!
編輯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
包含一個儲存庫。在這種情況下,使用
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* ,並 require 並重新啟動 apache。訪問將是匿名的,但您將檢查授權是否有問題。當可以存取時,授權就會出現問題。你必須配置這個。您必須閱讀 apache man 並了解如何管理 AuthUserFile /etc/svn-auth-conf 以獲得基本授權。當問題(已註解掉的身份驗證)仍然存在時,問題出在檔案存取權。設定對 apache 伺服器所使用的使用者名稱的讀取/寫入存取權限。 ps auxww 告訴你那個用戶是什麼。您將從 /etc/passwd 檔案中獲得的群組號碼。您將從 /etc/group 檔案中獲得的群組名稱。此後,當您能夠簽出/更新並提交時,您可以解決授權問題。有很多食譜。我向谷歌提出問題“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