Миграция конфигурации Denwer с Apache 2.2 на Apache 2.4

Пока не вышло следующей версии Denwer, решаем задачу перехода с Apachе 2.2 на Apache 2.4. Проблема миграции в том, что конфигурации окажутся не совместимыми из-за изменений в синтаксисе ряда команд более свежего http сервера. Давайте поправим конфигурацию и заставим работать новый Apache в составе Denwer.

Что нужно поменять, чтобы Apache 2.4 ожил под denwer?

Далее по шагам.

  1. Переименуйте папку со старым сервером (2.2) из \denwer\usr\local\apache в \denwer\usr\local\apache.old
  2. Место старой версии займет новый дистрибутив с Apache 2.4. Его нужно скачать, например, вот от сюдаApache 2.4.x VC9 x32 на этот момент это был — httpd-2.4.18-x86-r3.zip. Скачивайте, распаковывайте и копируйте в папку \denwer\usr\local\apache.
  3. Сохраните отдельно \conf\httpd.conf из 2.4, он нам ещё понадобится.
  4. Из папки старого дистрибутива \denwer\usr\local\apache.old\bin нам нужны 2 файла : TrayApache.exe и Apache.ico, скопируйте их в 2.4 — \denwer\usr\local\apache\bin.
  5. Скопируйте все файлы конфигурации apache для денвера из старого проекта, т.е. папку \denwer\usr\local\apache.old\conf накатите поверх \denwer\usr\local\apache\conf.
  6. Теперь займемся правкой конфигурации, а именно файлом — \denwer\usr\local\apache\conf\httpd.conf. Он соответствует старой версии сервера и его нужно «подлатать».
  7. Мы сохранили отдельно в п.3. файл конфигурации от нового апача. Возьмите от туда список подключаемых модулей (портянка инструкций LoadModule почти в начале файла) и скопируйте его вместо того списка, что в текущем файле httpd.conf.
  8. Теперь необходимо произвести замену устаревших команд Apache на новые варианты в файлах конфигурации. Ищите и заменяйте следующие варианты:

Директивы AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex, and WatchdogMutexPath заменяются одной командой Mutex.

Где вылавливать ошибки конфигурации Apache в Denwer?

Ошибки конфигурации Apache будет вам сообщать при запуске сервера. Консоль с сообщением об ошибке можно вызвать, кликнув на иконку апача в трее. Там вы увидите что то вроде следующего:

satisfy-error

В данном случае конфигуратор не может распознать команду «Satisfy», для неё нужно раскомментировать модуль mod_access_compat.so.

Я подозреваю, что все эти операции вы проделали лишь чтобы обновить версию PHP в вашем Denwer, поставить что то выше чем PHP 5.4, который ещё работает с Apache 2.2. Потому не забудьте поменять в httpd.conf строку

на

Более свежий PHP под Denwer понадобится вам для работы с Drupal 8 (PHP 5.5.9 и выше) и Symfony 3 (тоже PHP от 5.5.9 и выше).

Мало букафф? Читайте есчо !

Apache: переадресация на другой домен

Май 19, 2020 г.

Задача переадресации пользователя с одного домена на другой возникает весьма часто. Разберем как это выглядит в контексте настроек сайта на веб-сервере на базе Apache. Задача состоит в том, чтобы все запросы обращенные к домену site1.ru направить ...

Читать

Переходим с http на https - план действий

Июль 24, 2017 г.

Прежде чем переводить сайт на https протокол, нужно иметь четкий план того, что делать и в какой последовательности. Такая тактика хорошо работает и в ...

Читать

Меняем параметры запроса GET с помощью mod rewrite

Ноябрь 17, 2016 г.

Модуль rewrite сервера Apache предоставляет мощные возможности по перенаправленнию запросов. Это позволяет ещё до обработки запроса, к примеру, в коде программы на PHP вашего сайта, выполнить рутинные операции по изменению адреса страницы, параметров ...

Читать

Установка Lets' encrypt SSL сертификата на Debian

Июль 24, 2017 г.

Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets' encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера. ...

Читать
 

Комментарии к «Миграция конфигурации Denwer с Apache 2.2 на Apache 2.4»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Миграция конфигурации Denwer с Apache 2.2 на Apache 2.4”

  1. Andy:

    если используется php openssl нужно в файле apache.pl заменить часть кода на:

    if (my $p = fsgrep { /^openssl.cnf$/i } $phpdir)
    {
    $ENV{OPENSSL_CONF} = Installer::getSubstDriveConfig() . $p;
    }

    иначе не будут ssl функции работать выдавая ошибку error:0E06D06C:configuration file routines:NCONF_get_string:no value

  2. serg:

    нормально обяснить не умеешь кароч не помогло нехрена все только хуже стало запутался бля