Ich habe verfolgtdiese SVN-Installationsanleitungund wenn ich versuche, über auf mein Test-Repo zuzugreifen http://localhost/repos
, authentifiziere ich mich erfolgreich, aber dann erhalte ich Folgendes:
"Forbidden You don't have permission to access /repos on this server"
Hier ist meine subversion.conf-Datei:
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>
Mein Pfad ist /var/www/svn/repos und hier sind meine Berechtigungen
[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
Wenn ich zu localhost/repos/README.TXT gehe, erhalte ich diese Meldung.
<D:error><C:error/><m:human-readable errcode="20">
Could not open the requested SVN filesystem
</m:human-readable></D:error>
Stattdessen gibt jeder andere Dateiname Folgendes aus errcode ="2"
.
selinux ist auf permissiv eingestellt, ich kann die Datei localhost/index.html unter var/www/html/index.html problemlos sehen.
Ich habe einige Forenbeiträge zu ähnlichen Problemen durchgelesen, aber ohne Erfolg.
Ich bin für alle Ideen dankbar!
BEARBEITEN 1:
Ich habe meine Datei subversion.conf bearbeitet, um Änderungen SVNParentPath /var/www/svn/repos
vorzunehmen SVNParentPath /var/www/svn
, aber es scheint keine Wirkung zu haben.
BEARBEITEN 2:
brain99 hat es geschafft. Der Wechsel zu hat Location />
das Problem behoben und jetzt bekomme ich einerepos - Revision 0: /
Powered by Subversion version 1.6.11 (r934486).
Antwort1
Es scheint, dass Sie die Anweisungen SVNPath und SVNParentPath verwechseln.
Aus Ihrem Beitrag scheint hervorzugehen, dass es /var/www/svn/repos
sich um ein einzelnes Repository handelt. Verwenden Sie in diesem Fall
SVNPath /var/www/svn/repos
Nur wenn Sie mehrere Repositories haben, sollten Sie SVNParentPath verwenden. Jedes einzelne Repository sollte sich dann in einem Unterordner des hier konfigurierten Verzeichnisses befinden.
Legen Sie es also entweder auf das übergeordnete Verzeichnis fest:
SVNParentPath /var/www/svn
Oder lassen Sie die Konfiguration wie sie ist und verschieben Sie Ihr aktuelles Repository in ein Unterverzeichnis, z. B. /var/www/svn/repos/myRepo
Weitere Informationen zur Verwendung von mod_dav_svn finden Sie imSVN-Buchabschnitt zu mod_dav_svn
Antwort2
Überprüfen Sie zuerst, ob das Verzeichnis SVNParentPath /var/www/svn/repos existiert. Gibt es als Nächstes Unterverzeichnisse? Es sollten Repository-Verzeichnisse mit eigenen Datenbanken vorhanden sein. Wenn das Verzeichnis leer ist oder keine Unterverzeichnisse hat, erstellen Sie ein beliebiges Repository mit dem Befehl svnadmin (rufen Sie das Handbuch auf). Besteht nach der Erstellung das Problem weiterhin? Kommentieren Sie alle Direktiven AUTH* aus und starten Sie Apache neu. Der Zugriff erfolgt anonym, aber Sie werden prüfen, ob eine Autorisierung problematisch ist oder nicht. Wenn der Zugriff möglich ist, ist die Autorisierung ein Problem. Sie müssen dies konfigurieren. Sie müssen das Apache-Handbuch lesen und lernen, wie Sie AuthUserFile /etc/svn-auth-conf für die grundlegende Autorisierung verwalten. Wenn das Problem (mit auskommentierter Authentifizierung) weiterhin besteht, liegt das Problem bei den Dateizugriffsrechten. Konfigurieren Sie Lese-/Schreibzugriff auf den vom Apache-Server verwendeten Benutzernamen. PS: auxww sagt Ihnen, um welchen Benutzer es sich handelt. Die Gruppennummer erhalten Sie aus der Datei /etc/passwd. Den Gruppennamen erhalten Sie aus der Datei /etc/group. Danach können Sie auschecken/aktualisieren und committen und Probleme mit der Autorisierung lösen. Es gibt viele Rezepte. Ich habe die Frage „SVN erstellt mein erstes Repository“ bei Google eingegeben und viele Antworten erhalten. Die erste ist zum Beispiel: http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ Probier diese :)
Übrigens: CentOS ist eine Redhat-ähnliche Linux-Distribution. Sie können Apache mit /etc/init.d/httpd start/stop neu starten. Sehen Sie nach, was in die Dateien /etc/apache oder /etc/httpd geschrieben wird (abhängig von der Linux-Distribution und der Standardkonfiguration von Apache).
Antwort3
Versuchen Sie diese Optionen: SVNListParentPath auf