[gelöst] 403-Fehler beim Download einer SQL-Datei
am 09.07.2012 - 09:51 Uhr in
Hallo,
Ich habe in Drupal 7 einen Inhaltstypen für meine Software-Projekte angelegt. Dieser Inhaltstyp hat ein Datei-Feld, mit dem ich z.B. Installationsdateien zum jeweiligen Projekt zur Verfügung stellen möchte. Zu den Installationsdateien gehören auch SQL-Dateien. Wenn ich nun das Projekt aufrufe und mir eine SQL-Datei des Projekts herunterladen möchte, bekomme ich eine 403-Fehlermeldung (Zugriff verweigert). Bei anderen Datei-Typen z.B. Jar-Dateien oder PDFs funktioniert es problemlos. Woran könnte das liegen?
Die Google-Suche hat leider nichts ergeben. Ich weiß auch nciht, ob das ein Problem mit Drupal oder dem Apache ist. Apache und PHP habe ich via XAMPP installiert.
- Anmelden oder Registrieren um Kommentare zu schreiben
Probier mal die SQL-Datei zu
am 09.07.2012 - 13:43 Uhr
Probier mal die SQL-Datei zu zippen. Dadurch bekommt sie einen anderen Mime-Type und vor allem auch eine andere Änderung, die weder Apache noch Drupal noch deinen Browser triggern dürfte.
Darüber hinaus lassen sich SQL-Daten (da es Text ist) auch sehr gut packen, was der Download Zeit zu Gute kommt.
HTH,
Dietmar.
Gezippt funktioniert es
am 12.07.2012 - 08:24 Uhr
Gezippt funktioniert es natürlich. Nur hab ich keine Lust jede SQL-Datei zu zippen bevor ich sie hochladen :-)
Ich hab das Drupal-Verzeichnis mal in den Apache des Zend-Servers geschoben, den ich noch lokal bei mir installiert habe. Wenn ich dort auf den Link zur SQL-Datei klicke, wird diese im Browser dargestellt. Dort funktioniert es also. Dementsprechend liegt es nahe, dass das Problem bei PHP oder dem Apache der XAMPP-Installation liegen muss.
Es kann gut sein, dass der
am 13.07.2012 - 06:43 Uhr
Es kann gut sein, dass der XAMPP aus Sicherheitsgründen den Download von .sql Dateien unterbindet - immerhin könnte es auch sein, dass der Besucher versucht einen SQL-Dump herunterzuladen versucht.
Die Einstellung sollte sich aber in den httpd.conf Einstellungen finden lassen - xampp\apache\conf\httpd.conf
Ähnliche Sicherheitseinstellung gibt es wohl auch für exe Dateien:
http://stackoverflow.com/questions/8478279/403-error-on-exe-files-apache
Wenn du die Endung sql mit in die FilesMatch Direktive einträgst, sollten sich die Dateien nach Neustart des Servers dann aber auch lokal herunterladen lassen.
SteffenR
Danke für den Hinweis. Das
am 13.07.2012 - 07:45 Uhr
Danke für den Hinweis. Das war jetzt nicht ganz die richtige Lösung, hat mich aber geradewegs zum wahren Problem geführt. Das Problem liegt in der htaccess-Datei von Drupal 7. Dort findet man folgenden Code:
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch>
Wenn man das Order allow,deny auskommentiert bzw. das .*sql entfernt, dann funktioniert's. Anscheinend geht der Apache von XAMPP anders mit der htaccess-Datei um als der Apache vom Zend-Server.