SVN 出現 Apache 2.2 錯誤:“禁止,您無法存取此伺服器上的 /repos”

SVN 出現 Apache 2.2 錯誤:“禁止,您無法存取此伺服器上的 /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 設定為寬容,我可以看到位於 var/www/html/index.html 的 localhost/index.html 檔案。

我讀過一些有類似問題的 fozen 論壇帖子,但無濟於事。

任何想法,將不勝感激!

編輯1:

我編輯了我的 subversion.conf 檔案來更改SVNParentPath /var/www/svn/reposSVNParentPath /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

相關內容