Apache 2.2 오류가 있는 SVN: "금지됨 이 서버의 /repos에 액세스할 수 있는 권한이 없습니다."

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가 허용으로 설정되어 있으면 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* 를 주석 처리하고 아파치를 요구하고 다시 시작하십시오. 액세스는 익명으로 이루어지지만 인증 여부는 문제가 되지 않습니다. 접근이 가능한 경우에는 인증이 문제입니다. 이를 구성해야 합니다. Apache Man을 읽고 기본 인증을 위해 AuthUserFile /etc/svn-auth-conf를 관리하는 방법을 배워야 합니다. 문제(주석 처리된 인증 포함)가 여전히 존재하는 경우 파일 액세스 권한에 문제가 있는 것입니다. Apache 서버에서 사용하는 사용자 이름에 대한 읽기/쓰기 액세스를 구성합니다. ps auxww는 그 사용자가 누구인지 알려줍니다. /etc/passwd 파일에서 얻을 수 있는 그룹 번호입니다. /etc/group 파일에서 얻을 수 있는 그룹 이름입니다. 그 후 체크아웃/업데이트 및 커밋이 가능해지면 인증 관련 문제를 해결할 수 있습니다. 많은 레시피가 있습니다. 나는 "svn create my first 저장소"라는 질문을 Google에 올렸고 많은 답변을 얻었습니다. 첫 번째 예는 다음과 같습니다. http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ 이거 한번 해봐 :)

그나저나. centos는 Redhat과 유사한 Linux 배포판입니다. /etc/init.d/httpd start/stop 으로 아파치를 다시 시작할 수 있습니다. /etc/apache 또는 /etc/httpd 파일에 무엇이 기록되고 있는지 살펴보십시오(Linux 배포판 및 기본 Apache 구성에 따라 다름).

답변3

다음 옵션을 시도해 보십시오: SVNListParentPath on

관련 정보