fragen stichworte

SVN gibt 403 zurück

Ich habe diese Schritte auf meiner neuen VM (Debian 6)

ausgeführt

https://stackoverflow.com/questions/60736/how-to-setup-a-subversion-n-server-on-gnu-linux-ubuntu

Ich habe gerade erkannt, wo NameVirtualHost war und habe es auf NameVirtualHost *:443 konfiguriert aber es hat nicht geholfen.

meine vollständige svnserver-config:

#<VirtualHost *:80>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    SSLEngine on
    SSLCertificateFile/etc/apache2/ssl/apache.pem
    SSLProtocol all
    SSLCipherSuite HIGH:MEDIUM

    DocumentRoot/var/www
    <Directory/>
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory/var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias/cgi-bin//usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Wenn ich versuche, die Site außerhalb der VM über einen Browser zu erreichen, bekomme ich eine Verbotene 403.

meine dav_svn.conf:

<Location/svn>
# Uncomment this to enable the repository
DAV svn

SVNParentPath/var/svn/svn-repos

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile/etc/apache2/dav_svn.passwd

  # To enable authorization via mod_authz_svn
  #AuthzSVNAccessFile/etc/apache2/dav_svn.authz

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>

    #Added
    SVNListParentPath On

</Location>

sollte externen Benutzern den Zugriff auf das SVN ermöglichen (wie im Lernprogramm angegeben).

Warum bekomme ich den Fehler 403?

das Apache-Fehlerprotokoll:

[Fri Aug 10 17:51:11 2012] [error] [client my.main.pc.ip] Could not fetch resource information.  [403, #0]
[Fri Aug 10 17:51:11 2012] [error] [client my.main.pc.ip] (2)No such file or directory: The URI does not contain the name of a repository.  [403, #190001]

Ich habe SVNListParentPath On zu meinem Location Block hinzugefügt und die folgende Ausgabe in meinem Browser erhalten:

<D:error><C:error/><m:human-readable errcode="2">
Can't open directory '/var/svn/svn-repos': No such file or directory
</m:human-readable></D:error>

Update:

Mit SVNPath und stattdessen mit SVNParentPath wurde das Problem gelöst. Aber ich wollte mehr als ein Repository verwenden.

Jede Hilfe wird geschätzt!

antworten

Klingt nach einem SVNParentPath im Apache Location, hat jedoch keinen Repository-Namen im Client angegeben. Zum Beispiel:

<Location/svn>
  SVNParentPath/my/repos
  # ...
</Location>

Zugriff mit Client-URL: http://server/svn

Die URL /svn ist kein Repository, sondern ein übergeordneter Pfad. Sie müssen svnadmin create/my/repos/repo1 und anschließend auf http://server/svn/repo1

zugreifen

Wenn Sie die Anweisung für den übergeordneten Pfad der Liste im Location -Block aktivieren, können Sie die Unter-Repositorys auflisten:

<Location/svn>
  SVNParentPath/my/repos
  SVNListParentPath On
  # ...
</Location>

Wie sieht Ihr <Location/svn> -Block aus? Es sollte eine SVNPath- oder SVNParentPath-Anweisung enthalten, die auf Ihr Repository verweist. In demselben Block sollte sich der <LimitExcept> -Block befinden.

Ist/var/svn/$ REPOS (oder worauf auch immer der SVN (Parent) Path verweist) im Besitz von www-data? Es sollte sein oder zumindest von www-data lesbar und beschreibbar sein.