Apache 2.4.3 + PHP 5.4.9 + Drupal 7.17 + Windows 7

Решил обновить движок сайта до последней версии Drupal 7.17 - с этим проблем не возникло, обновление прошло гладко и без глюков.

И заодно решил обновить серверный софт: перейти со стабильной ветки Apache 2.2 на ветку Apache 2.4, а так же обновить PHP до последней версии 5.4.9, всё это под Windows 7. Вот здесь загвостки и возникли.

В инете достаточно мануалов по установке Apache 2.2 + PHP 5.2 + MySQL, я остановлюсь лишь на некоторых ньюансах именно для связки Apache 2.4.3 + PHP 5.4.9, с которыми сам столкнулся - решил сделать небольшую заметку, чтоб самому не забыть решение проблемы :-) А может и ещё кому пригодится.

 

Apache 2.4.3 + PHP 5.4.9 + Drupal 7.17 + Windows 7

Раньше можно было просто скачать и установить web-сервер с http://apache.org/, а язык программирования с http://php.net/. В настоящее время этого недостаточно. Дело в том, что разработчики PHP, начиная с версии 5.3, выкладывают лишь VC9-версии дистрибутивов (скомпилированные в Visual Studio 2008), а на сайте http://apache.org/ доступны только VC6-версии web-сервера (скомпилированные в Visual Studio 2006). На официальном сайте PHP крайне не рекомендуют к использованию VC9-версии языка совместно с VC6-версиями сервера. Пробовал сделать связку Apache 2.2.2 и PHP 5.3.9 - кое-как работает с глюками, в общем не вариант. Тем более, бинарников версии Apache 2.4 для Windows на официальном сайте Apache просто нет.

 

Обновляем библиотеки Microsoft Visual C++

Для корректного запуска VC9-версии приложений (скомпилированных в Visual Studio 2008) необходимо установить соответствуюущие Visual C++ библиотеки.

Идём на сайт Майкрософта: http://www.microsoft.com/ru-ru/download/details.aspx?id=8328, вытягиваем Microsoft Visual C++ 2010 SP1 Redistributable Package (Распространяемый пакет пакета обновления 1 для Microsoft Visual C++ 2010), устанавливаем.

Устанавливаем Apache 2.4.3

  1. Идём на сайт http://www.apachelounge.com/download/, ищем Apache 2.4 win32 binaries и вытягиваем файлик вида httpd-2.4.3-win32.zip.
    На момент написания заметки доступна версия Apache 2.4.3, прямая ссылка на файл:  httpd-2.4.3-win32.zip
  2. Распаковываем архив, к примеру в папку "d:\Server\Apache\"
  3. Далее открываем конфигурационный файл "conf/httpd.conf" и настраиваем web-сервер. Здесь необходимо учесть момент - в ветке Apache 2.4 немного изменён синтаксис, к примеру:

    Для запрета доступупа:

    В версии 2.2 использются:

    Order deny,allow
    Deny from all

    В версии 2.4:

    Require all denied

    Для разрешения доступа:

    В версии 2.2:

    Order allow,deny
    Allow from all

    В версии 2.4:

    Require all granted

    Подробнее о переходе с Apache 2.2 на Apache 2.4 можно почитать на оф. сайте в статье: Upgrading to 2.4 from 2.2

  4. После настройки web-сервера, при необходимости его можно установить в качестве службы Windows.
    В нашем случае запускаем: "d:\Server\Apache\bin\httpd.exe -k install".
    Лучше эту команду (без кавычек, конечно же) запускать из консольки CMD, чтоб увидеть возможные ошибки при запуске.

  5. Для автозапуска монитора web-сервера Апач необходимо поместить ярлык от файла d:\Server\Apache\bin\ApacheMonitor.exe в папку "c:\Users\имя_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
     

 

Устанавливаем PHP 5.4.9

  1. Заходим на официальный сайт PHP для Windows: http://windows.php.net/download/, из блока VC9 x86 Thread Safe скачиваем zip-архив. На момент написания заметки была доступна версия PHP 5.4.9, прямая ссылка на файл: php-5.4.9-Win32-VC9-x86.zip
  2. Распаковываем архив, к примеру, в папку: "d:\Server\php5\".
  3. Идём на уже знакомый нам сайт http://www.apachelounge.com/download/ и вытягиваем архив с PHP-модулями Apache. Прямая ссылка: php5apache2_4.dll-php-5.4-win32.zip
  4. Открываем архив с PHP-модулями, находим в архиве папку с модулем для нашей версии PHP. В нашем случае это: "PHP 5.4.9\php5apache2_4.dll".
  5. Извлекаем из архива PHP-модуль php5apache2_4.dll в папку, куда до этого распаковали сам PHP (в нашем случае: "d:\Server\php5\").
  6. Открываем конфигурационный файл web-сервера "d:\Server\Apache\conf\httpd.conf", в конце раздела Dynamic Shared Object (DSO) Support добавляем две строчки:

    LoadModule php5_module "d:/Server/php5/php5apache2_4.dll"
    PHPIniDir "d:/Server/php5"

     

  7. Убеждаемся, что строка в конфиг. файле "d:\Server\Apache\conf\httpd.conf" присутствует и раскомментирована:

    AddType application/x-httpd-php .php
     

  8. В самой системе Windows не забываем указать в "Переменных окружения" путь к PHP (в нашем случае это: "d:\Server\php5\").
  9. Перегружаем сервер и проверяем работоспособность. Если всё сделано правильно, то картина должна вылядеть примерно так:

 

Проблема с авторизацией в Drupal 7 в связке Apache 2.4 и PHP 5.4

После обновления Apache и PHP столкнулся с проблемой авторизации в cms Drupal - никаких ошибок не выдаётся, просто при попытке войти на сайт не происходит ничего, опять запрашивает логин и пароль.

В том же PhpMyadmin или Sypex Dumper авторизация проходит отлично.
Кстати, вышла новая версия отличной утилиты для резервного копирования - Sypex Dumper 2.0.10, оф. сайт: http://sypex.net/.

Как оказалось, причина была в отключенном модуле mod_rewrite.so.

Открываем конфиг Апача, раскомментируем строку:

LoadModule rewrite_module modules/mod_rewrite.so
 

Перезапускаем сервер. Авторизация в Drupal должна заработать.

 

Вот вроде как и все проблемные моменты, возникшие при переходе с Apache 2.2 на Apache 2.4 и последующей связке PHP 5.4 с Апачем. Надеюсь данная мини-заметка пригодится не только мне :-)

Колонка админа:
Комментарии Вконтакте
Не забудь поделиться с друзьями в соц сетях! ;-)