it-swarm.com.de

Apache wurde von 2.2 auf 2.4 aktualisiert und jetzt sind meine Subdomains defekt

Beim Versuch, eine meiner Subdomains zu besuchen, wird der Fehler in meiner error.log-Datei angezeigt:

[Tue Jul 15 11:17:42.924790 2014] [core:alert] [pid 17309] [client 108.162.241.152:26427] /var/www/.htaccess: <IfModule not allowed here
[Tue Jul 15 11:17:43.672653 2014] [core:alert] [pid 13948] [client 108.162.242.152:38399] /var/www/.htaccess: <IfModule not allowed here

Beim Besuch der Subdomains über den Browser wird lediglich ein interner Serverfehler gemeldet.

Hier ist meine Conf-Datei für eine meiner Subdomains:

$ less sites-enabled/paste.jhvisser.com.conf
<VirtualHost *:80>
DocumentRoot "/var/www/paste"
ServerName paste.jhvisser.com
<Directory "/var/www/paste">
allow from all
Options +Indexes
</Directory>
</VirtualHost>

Ich habe DNS-Einträge, die auf den Servernamen verweisen. Diese funktionierten erst nach einem Upgrade von Ubuntu 12.04 LTS auf Ubuntu 14.04 LTS, bei dem Apache 2.2 auf Apache 2.4 aktualisiert wurde, nicht mehr.

Ich bin verwirrt, was das Problem hier ist?

4
ComputerLocus

Eine der größten Änderungen von Apache 2.2 zu 2.4 ist die Art und Weise, wie Berechtigungen für Verzeichnisse erteilt werden. Die Syntax allow from und deny from wird jetzt zugunsten der neuen Syntax require nicht mehr empfohlen. Siehe pgrade von Apache von 2.2 auf 2.4 .

Es gibt ein Modul mod_access_compat , mit dem Sie die alte Syntax weiterhin verwenden können. Leider hat es bei mir für Konfigurationsdateien unter /etc/Apache2 nicht funktioniert. Ich musste sie durchgehen und mit der neuen Syntax Require aktualisieren.

Wenn Sie ersetzen

allow from all

mit

Require all granted

ihre Subdomains werden wahrscheinlich viel besser funktionieren. Suchen Sie nach Instanzen von Allow, Deny oder Order. Alle sollten durch die neue Syntax für Require ersetzt werden. Die pgrade-Dokumentation enthält weitere Beispiele für andere Anwendungsfälle.

Ich persönlich finde, dass die neue Require -Syntax viel besser ist. Es scheint mir klarer und es sollte einfacher sein, komplexe Fälle zu behandeln, die auf Passwörtern oder IP-Adressen basieren. Die Kehrseite der Änderung ist, dass die alte Syntax in Ihren Konfigurationsdateien aktualisiert werden muss.

Auf der positiven Seite handhabte das zugriffskompatible Modul alle alten Direktiven, die ich in .htaccess Dateien hatte, also nur die Konfigurationsdateien in /etc/Apache2 musste für mich aktualisiert werden.

5