Apache: Permission denied .htaccess pcfg_openfile

Bei einem von mir Administrierten Apache2 Webserver kam es letztens zu einem im ersten Moment merkwürdigen Fehler. Der Kunde hat in sein Verzeichnis eine neue Webseite geladen und wollte diese dann über seinen Browser abrufen. Dort kam aber immer die Fehlermeldung das der Zugriff verweigert wurde. Ein Blick in den Error-Log brachte folgende Fehlermeldung zu Tage:

[Thu Sep 30 15:35:37 2010] [crit] [client XXX.XXX.XXX.XXX] (13)Permission denied: /var/www/subdir/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Die .htaccess existierte aber nicht. Auch das Erstellen einer .htaccess Datei an dieser Stelle löste das Problem nicht. Eine kurze Recherche bei Google brachte zum Vorschein, dass das Verzeichnis nicht die richtigen Rechte hat, so das der Apache Webserver die Dateien auslesen kann. Der Kunden hat für das Verzeichnis die Rechte rw-rw-rw- vergeben. Um unter Linux ein Verzeichnis zu „öffnen“ benötigt man aber auch das Execute-Recht.  Ein schnelles chmod 777 , welches die Rechte rwxrwxrwx setzt, auf das Verzeichnis behebte den Fehler.

Um schnell zu testen, ob der www-data User in einem Verzeichnis lesen kann hilft folgender Befehl:

su - www-data -s /bin/bash -c "cd /var/www/subdir; ls -la"

Warum im Log immer eine .htaccess auftaucht, aber keine vorhanden ist, ist leicht erklärt:
Der Apache Webserver sucht als erstes in jedem Verzeichnis nach dieser Datei, um darin enthaltene Anweisungen vor dem Seitenaufruf zu bearbeiten.

Vielleicht stößt jemand anderes ebenfalls mal auf diesen Fehler, dann hilft dieser Einblick sicherlich schnell weiter.