Drupal 7 и Apache 2.4

Если вам нужен apache для Drupal 7, то я не советую ставить apache 2.4.
Ставьте лучше 2.2, для D7 отлично подходит.
Но если уже обновились, то придется попотеть.

Патчим ядро

Issue, которое живет с 2012, но до сих пор не в ядре.

Обновляем старые vhost

В версии 2.4 настройки доступа по-умолчанию запрещают доступ везде.
Со старыми конфами я не мог достучаться до нового сайта, вместо него меня встречал 403 статус.
Посмотрел в логи:

Apache2: 'AH01630: client denied by server configuration'

Чтобы её починить надо изменить настройки vconf, дать доступ всем к нашей корневой директории:

DocumentRoot /drupal_root/no_trailing_slash
<Directory /drupal_root/no_trailing_slash>
   AllowOverride All 
   Require all granted
</Directory>

Так как я настраивал доступ на локальной машине под управление Ubuntu 14.04 то я разрешил доступ только с локального ip.

DocumentRoot /drupal_root/no_trailing_slash
<Directory /drupal_root/no_trailing_slash>
   AllowOverride All 
   Require ip 127.0.0.1
</Directory>

Для удобства оставлю полный файл конфигураций Drupal 7 и Apache 2.4.

<VirtualHost *:80>
  # Имя сайта (домен).
  ServerName drupalsite.local
  RewriteEngine On
  RewriteOptions inherit

  # Корневая категория, без слеша на конце.
  DocumentRoot /drupal_root/no_trailing_slash
  AddDefaultCharset utf-8

  # Указываем куда писать логи
  ErrorLog /var/log/apache2/drupalsite.local.error.log
  CustomLog /var/log/apache2/drupalsite.local.access.log combined

  # Указываем настройки корневой папки.
  <Directory /drupal_root/no_trailing_slash>
    # Разрешаем доступ только с локальной машины.
    Require ip 127.0.0.1
    AllowOverride All
  </Directory>
</VirtualHost>
Теги: