Posted:
2007-06-23, 11:00 Bug bei der Erstellung der .htaccess Datei
Erstmal ein großes Lob für die Erfindung des MySQL Dumpers. Ist ein geniales Tool !
Mir ist nach häufigen Installationen und Anwendungen des MySQL Dumpers ein Fehler aufgefallen, der bisher alle Versionen betrifft:
Falls der MySQL Dumper auf einem Apache Webserver mit Windows Betriebssystem installiert wird und der Verzeichnisschutz (.htaccess) durch den MySQL Dumper erstellt wird, dann lässt sich das gesamte Webverzeichnis mit dem MySQL Dumper nach der Erstellung des Verzeichnisschutzes nicht mehr aufrufen. Es erscheint auch keine Aufforderung nun den Benutzernamen und das Passwort für das zuvor mittels .htaccess Datei geschütze Verzeichnis einzugeben. Es wird lediglich eine Fehlermeldung des Apache Webservers ausgegeben. Hierbei wurde auch keine Passwortverschlüsselung ausgewählt (also wie bei Windows erforderlich das Passwort unverschlüsselt). Die Lösung für das ganze Problem liegt in einem Fehler der durch den MySQL Dumper erstellten .htaccess Datei. Die Pfadangabe für die Datei .htpasswd muss innerhalb von Anführungszeichen " stehen. Dann funktioniert das einwandrei. Da bei einer Apache Installation unter Windows standardmäßig ein Unterverzeichnis den Verzeichnisnamen "Apache Group" hat und somit ein Leerzeichen im Verzeichnisnamen vorkommt, hat der Apache Webserver mit dieser Pfadangabe ohne das diese innerhalb Anführungszeichen steht ein Problem.
Der Fehler kann also relativ schnell behoben werden, indem das Skript welches die .htaccess Datei erstellt, die Pfadangabe für die Datei .htpasswd immer innerhalb von Anführungszeichen " setzt. Dann ist alles bestens.
Das Problem dürfte mit Sicherheit schon bei einigen Anwendern aufgetreten sein, die auf dem Server das Betriebssystem Windows einsetzen. Möglicherweise gilt dies auch für das Betriebssystem Linux. Das konnte ich bisher selbst noch nicht ausprobieren, da mein Webhoster den Apache Webserver in einem Verzeichnispfad installiert hat, wo im gesamten Verzeichnispfad keine Leerzeichen vorkommen.