WebDAV unter CentOS - Beim Hochladen wird ein 403-Fehler angezeigt

WebDAV unter CentOS - Beim Hochladen wird ein 403-Fehler angezeigt

Ich habe Apache2 so konfiguriert, dass WebDav in einem Verzeichnis zulässig ist (CentOS 5 / Plesk 8.6):

  • WebDav ist in httpd.conf aktiviert
  • /var/lib/dav/lockdb ist für Apache beschreibbar
  • Mein Zielverzeichnis ist chmod 777
  • Mein Zielverzeichnis ist chowned apache:psacln
  • mittels Basisauthentifizierung (Einrichtung über die Plesk-Schnittstelle)

in meiner vhost.conf habe ich:

<Verzeichnis /var/www/vhosts/domain.com/httpdocs/Zielverzeichnis>
        Dav On
    AllowOverride keine
        Reihenfolge zulassen, verweigern
        Erlauben von allen
</Verzeichnis>

Ich kann mich mithilfe der Authentifizierung problemlos mit dem Verzeichnis verbinden und Dateien daraus herunterladen. Aber ich kann nicht in das Verzeichnis schreiben. Ich erhalte eine 403-Fehlermeldung, wenn ich versuche, ein Verzeichnis hochzuladen oder zu erstellen.

Hat jemand Tipps?

Dank im Voraus -

Aktualisierung - 6/5Anhand der folgenden Kommentare habe ich das Problem auf eine Art Konflikt mit durch .htpasswd geschützten Verzeichnissen eingegrenzt. Ich kann problemlos ein ungeschütztes Verzeichnis erstellen und WebDAV-Uploads aktivieren. Sobald ich jedoch die Basic Auth für das Verzeichnis aktiviere, geht alles schief. Ich kann lesen, aber nicht mehr hochladen.

Dies ist meine vhost.conf:

<Verzeichnis /var/www/vhosts/domain.com/subdomains/subdomain/httpdocs/>
        AuthUserFile /var/www/.htpasswd
        AuthName "Anmelden"
        AuthType Basic
        Gültiger Benutzer erforderlich

        DAV ein
    AllowOverride keine
        <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL KOPIEREN VERSCHIEBEN SPERREN ENTSPERREN>
                Gültiger Benutzer erforderlich
        </Begrenzung>
</Verzeichnis>

Aktualisierung 6/6

Konnte WebDAV mit minimalem Aufwand auf einer anderen Domäne zum Laufen bringen. Der einzige Unterschied zwischen den beiden Domänen besteht darin, dass ich in der Domäne, die den Schreibzugriff verweigert, eine DocumentRoot-Direktive habe:

    Dokumentstammverzeichnis /var/www/vhosts/domain.com/httpdocs/app/webroot

Könnte dies einige Probleme verursachen?

Antwort1

Ich hatte kürzlich mit demselben Problem auf meinem Fedora 10-System zu kämpfen. In meinem Fall war der Übeltäter eine seltsame Umleitung, die ich in Apache vornahm. Genauer gesagt verwende ich ein Content-Management-System (genauer gesagt Drupal), das in seiner .htaccess die folgende Umleitungslogik enthält, um fehlende Dateien an ein PHP-Skript umzuleiten:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Es ist sinnvoll, dass das oben Genannte nur die PUT-Methode betrifft, da in diesem Fall REQUEST_FILENAME nicht existiert.

Das Problem wird dadurch behoben, dass sich der WebDAV-Bereich nicht im Drupal-Bereich befindet, was eine sinnvolle Einschränkung zu sein scheint.

Außerdem halte ich es für wahrscheinlich, dass SELinux zu einem anderen Fehler führt, der in der obigen Diskussion jedoch nicht erwähnt wird. Haben Sie versucht, SELinux zu deaktivieren?

Antwort2

Dasselbe Problem. Gelöst durch:

<Location /xyz>
    DAV On
    AuthType Digest
    AuthName "webdav-xmarks"
    AuthDigestProvider file
    AuthUserFile "/home/xy/xba/digest-password"
    Require valid-user
    RewriteEngine off <-- this part solved it!
</Location>

Antwort3

Gleiches Problem.

Gelöst durch Erstellen einer .htaccess-Datei im WebDAV-Verzeichnis mit:

RewriteEngine off

Hier gefunden:http://annoyingtechnicaldetails.wordpress.com/2007/07/20/webdav-vs-drupal-htaccess-redirect-rules/

Antwort4

Haben Sie beispielsweise versucht, „limit:“ zu verwenden?

  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require valid-user
  </Limit>

verwandte Informationen