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
-
Идём на сайт 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 - Распаковываем архив, к примеру в папку "d:\Server\Apache\"
-
Далее открываем конфигурационный файл "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
-
После настройки web-сервера, при необходимости его можно установить в качестве службы Windows.
В нашем случае запускаем: "d:\Server\Apache\bin\httpd.exe -k install".
Лучше эту команду (без кавычек, конечно же) запускать из консольки CMD, чтоб увидеть возможные ошибки при запуске. -
Для автозапуска монитора web-сервера Апач необходимо поместить ярлык от файла d:\Server\Apache\bin\ApacheMonitor.exe в папку "c:\Users\имя_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
Устанавливаем PHP 5.4.9
- Заходим на официальный сайт PHP для Windows: http://windows.php.net/download/, из блока VC9 x86 Thread Safe скачиваем zip-архив. На момент написания заметки была доступна версия PHP 5.4.9, прямая ссылка на файл: php-5.4.9-Win32-VC9-x86.zip
- Распаковываем архив, к примеру, в папку: "d:\Server\php5\".
- Идём на уже знакомый нам сайт http://www.apachelounge.com/download/ и вытягиваем архив с PHP-модулями Apache. Прямая ссылка: php5apache2_4.dll-php-5.4-win32.zip
- Открываем архив с PHP-модулями, находим в архиве папку с модулем для нашей версии PHP. В нашем случае это: "PHP 5.4.9\php5apache2_4.dll".
- Извлекаем из архива PHP-модуль php5apache2_4.dll в папку, куда до этого распаковали сам PHP (в нашем случае: "d:\Server\php5\").
-
Открываем конфигурационный файл 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"
-
Убеждаемся, что строка в конфиг. файле "d:\Server\Apache\conf\httpd.conf" присутствует и раскомментирована:
AddType application/x-httpd-php .php
- В самой системе Windows не забываем указать в "Переменных окружения" путь к PHP (в нашем случае это: "d:\Server\php5\").
-
Перегружаем сервер и проверяем работоспособность. Если всё сделано правильно, то картина должна вылядеть примерно так:
Проблема с авторизацией в 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 с Апачем. Надеюсь данная мини-заметка пригодится не только мне
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- 20418 просмотров