Drupal und Apache 2.4.x unter Debian Testing/Jessie

Da es nicht mehr all zu lange dauert bis Debian 8 erscheint, bzw. bis Jessie den Status stable erreicht, haben wir bereits jetzt einige(in progress...) Drupal-Installationen auf eine Debian-Jessie-KVM migriert.

Von Debian 7 zu 8 hat sich nicht nur das Major-Release-Nummer von Debian erhöht, sondern auch der Webserver Apache hat einen Sprung gemacht, von Apache Version 2.2 auf 2.4.

Das bringt einige Implikationen mit sich...

Dateinamenerweiterung .conf

Apache 2.4 besteht jetzt auf die Dateiendung (englisch filename extension) .conf.

Ohne Dateiendung .conf verweigert a2ensite den Dienst und quittiert mit

ERROR: Site example.com does not exist!

und selbst bei einem selbst erstellten Symlink in /etc/apache2/site-enabled wird die Datei nicht geladen.

/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-enabled
|       |-- *.load
|       `-- *.conf
|-- conf-enabled
|       `-- *.conf
|-- sites-enabled
|       `-- *.conf

Neue Direktiven in den Vhosts

in Apache v.2.4.x ist jetzt das neue Modul mod_authz_core1 für die Autorisierung zuständig. Das in v.2.2 Allow from all
ist equivalent zu Require all granted
in Apache v. 2.4.x.

Ohne die Umstellung auf die neue Direktive bekommen wir Forbidden. You don't have permission to access /, das vorhandene AllowOverride All welche für die Auswertung von Drupals .htaccess und somit auch die sog. Clean-URL's zuständig ist brauchen wir natürlich weiterhin.

<VirtualHost *:80>
  ServerAdmin info@example.com
  DocumentRoot "/multi/drupal/example.com/drupal"
  ServerName example.com

  ErrorLog "${APACHE_LOG_DIR}/example.com-error.log"
  CustomLog "${APACHE_LOG_DIR}/example.com-access.log" combined

  <Directory /multi/drupal/example.com/drupal/>
          AllowOverride All
          Require all granted
  </Directory>
</VirtualHost>

Siehe auch Upgrading to 2.4 from 2.22.