AH01630: client denied by server configuration
Wie nervig. Ein Ubuntu bzw eine Apache Update und formals problemlose laufende Apache Konfigurationen zeigen ein unschönes Forbidden You don’t have permission to access / on this server.
Und im Log steht nur:
AH01630: client denied by server configuration /der/Pfad/zum/vhost
Ursache:
Nach ein wenig Suche findet sich die Lösung im Wiki von Apache.org: http://wiki.apache.org/httpd/ClientDeniedByServerConfiguration und unter http://httpd.apache.org/docs/2.4/upgrading.html#access
In 2.2, access control based on client hostname, IP address, and other characteristics of client requests was done using the directives Order, Allow, Deny, and Satisfy.
In 2.4, such access control is done in the same way as other authorization checks, using the new module mod_authz_host.
The new directive is Require:
2.2 configuration:
Order allow,deny
Allow from all
2.4 configuration:
Require all granted
In Apache HTTPD 2.3 wurde im Modul mod_authz_core eine Änderung gemacht, die die Direktive “Allow from all” wurde durch “Require all granted” bzw. “Deny from all” durch “Require all denied” ersetzt.
Und (wichtig) “Order allow,deny” fliegt raus
Lösung:
Also einfach in der vhost Conf alle “Allow from all” durch “Require all granted” ersetzten
Beispiel: Alt unter Apache 2.2:
Order deny,allow Deny from all
Muss geändert werden in Apache 2.4:
Require all denied
Viele Config Files auf einmal anpassen
Wenn man viele einzelne Config-Files hat macht das natürlich keinen Spaß alle von Hand zu ändern.
Als Admin scriptet man das kurz:
find -type f -exec sed -i 's/Allow from all/Require all granted/gi' {} \; find -type f -exec sed -i 's/Order allow,deny//gi' {} \; find -type f -exec sed -i 's/Deny from all/Require all denied/gi' {} \; find -type f -exec sed -i 's/Order deny,allow//gi' {} \;
Mehrere Apache Versionen gleichzeitig betreiben
Wenn man mehrere Apache Versionen gleichzeitig betreibt oder sie automatisch generiert empfiehlt sich folgende Lösung:
<Directory "/opt/AppDynamics/hg-cgi-bin/certs/pkcs12/"> # Options hier einfügen zB # Options Indexes MultiViews AllowOverride None <IfModule !mod_access_compat.c> Require all granted Require ip 123.113.0.0/255.255.0.0 </IfModule> <IfModule mod_access_compat.c> Order allow,deny Allow from all Allow from 123.113 </IfModule> </Directory>
Sperrig zu lesen aber funktioniert
Die Ersetzung Require all denied und Server neu gestartet habe ich gemacht und es funktioniert auch nicht.