Установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на Windows 7 ­- 10

В статье описывается установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на операционную систему Windows 7 / 8 / 8.1 / 10

Данная инструкция будет полезна начинающим WEB-разработчикам, которые собираются установить на своем ПК с ОС Windows WEB-сервер Apache с интерпретатором PHP последних версий. Конечно же, намного проще установить сборку, наподобие Denwer или прибегнуть к использованию инсталляторов и не париться по поводу настроек. Однако каждый WEB-разработчик обязан понимать процесс работы WEB-сервера, процесс его установки и настройки.

Если Вы хотите установить PHP 7, то обратитесь пожалуйста к этой статье.

Если в процессе сборки сервера по этой инструкции Вы столкнулись с проблемами и все еще считаете себя WEB-разработчиком, то будет правильным шагом разобраться в возникших проблемах, а не писать в комментарии что инструкция говно. Инструкция рабочая. Проверено временем и сотнями инсталляций. Будьте внимательней при выполнении простых шагов. Выполнение шагов вручную и разбор ситуаций, если не заработало, добавит Вам skill как разработчику. Если Вы не WEB-разработчик и не планируете им быть, то подыщите простой способ установки в интернете — данная инструкция не для Вас.

Обратите внимание, что под Windows XP данные версии VC11 запустить будет невозможно (или крайне затруднительно).

Подготовительные работы

Убедитесь, что у вас именно Windows 7 или новее. Если у Вас Windows XP, данная инструкция не поможет Вам, так как описанная здесь версия Apache не работает под Windows XP.

Удалите все WEB-серверы, которые устанавливали до этого, зайдите в службы и убедитесь, что там нет служб Apache или IIS. Если у вас уже установлен какой-либо веб-сервер, второй параллельно скорее всего не заработает вовсе.

Если у Вас есть Скайп, обязательно отключите в настройках использование 80 порта. В конечном итоге Вы должны убедиться, что ни одна служба не использует 80й порт.

Для работы очень желательно иметь файловый менеджер, позволяющий создавать файлы с любыми расширениями, либо, что еще лучше, редактор кода, наподобие Sublime Text или Notepad++ или полноценную IDE.

Структура папок может быть различной, однако данная инструкция написана под определенную структуру и, если ей следовать, всё гарантированно заработает.
Перед тем как начать, создайте на диске D папку USR, внутри которой создайте 5 подпапкок: apache, php, tmp, www, log. Именно так. Без указания номеров версий.

В каталоге www создаем индексные файлы (при помощи файлового менеджера или редактора кода), которые будут нужны для проверки того, что все работает:

  • index.html с содержимым: It works!
  • index.php с содержимым: <?php phpinfo(); ?>

Если файлового менеджера / редактора кода / IDE нет, скачайте архив с этими двумя файлами по этой ссылке. Но, если Вы считаете себя WEB-разработчиком, Вы должны обзавестись инструментами.

В системную переменную PATH добавляем:

;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;

Если кто не знает, как найти то место, где меняется PATH, прочитайте вот этот комментарий.

Замечания!

Приведенные в примерах конфигурационных файлов номера строк могут отличаться для других версий apache и php.
Все команды, включая редактирование файлов, должны осуществляться от имени Администратора.

Установка Apache 2.4

Хотя для простой разработки на PHP и нет необходимости в отдельном WEB-сервере (в PHP встроен собственный WEB-сервер, которого почти всегда достаточно для разработки одного проекта), все же рекомендуется произвести установку и настройку WEB-сервера Apache, хотя бы потому, что программист обязан знать эти тонкости. В конечном итоге придется работать с WEB-сервером и придется разбираться с его конфигурацией. Так что приступим.

  1. Загружаем Apache 2.4 binaries VC11 под свою систему по ссылке http://www.apachelounge.com/download/VC11/ Скорее всего у Вас 64 разрядная ОС, поэтому Вам понадобится файл с именем httpd-2.4.16-win64-VC11.zip
  2. Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
  3. Разархивируем содержимое папки Apache24 из скаченного архива в D:\USR\apache. Обратите внимание, что в D:\USR\apache нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется.
  4. В файле D:\USR\apache\conf\httpd.conf изменяем значение ServerRoot на "d:/USR/apache" (строка 37) и значение DocumentRootDirecroty) на "d:/USR/www" (строки 242 и 243). Так же следует раскомментировать строку 218 и изменить ее на: ServerName localhost:80
  5. Изменяем параметры хранения логов в том же файле (находим параметры и изменяем):
    ErrorLog "D:/USR/log/apache-error.log"
    CustomLog "D:/USR/log/apache-access.log" common
  6. Устанавливаем сервис Apache (от имени Администратора). Открываем командную строку от имени Администратора и вставляем туда следующую строку:
    D:\USR\apache\bin\httpd.exe -k install
  7. Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
  8. Создаем на рабочем столе ярлык для D:\USR\apache\bin\ApacheMonitor.exe и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8 необходимо нажать WIN+R, затем ввести shell:Startup и нажать ОК)
  9. Запускаем ApacheMonitor. В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start.
  10. В браузере заходим на http://localhost/ — должны увидеть It works!
  11. Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)

Установка PHP 5.6

  1. Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe по ссылке http://windows.php.net/download/. Обратите внимание, что нужен именно VC11 и именно Thread Safe. Разрядность должна быть как у Apache. Файл, который Вам нужен, скорее всего будет называться наподобие: php-5.6.11-Win32-VC11-x86.zip или php-5.6.11-Win32-VC11-x64.zip
  2. Извлекаем содержимое архива в D:\USR\php. Как в случае с Apache, инсталлировать ничего не требуется.
  3. В файл D:\USR\apache\conf\httpd.conf добавляем строки:
    LoadModule php5_module "d:/USR/php/php5apache2_4.dll"
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir "D:/USR/php"
  4. И изменяем значение DirectoryIndex на index.html index.php (строка 276)
  5. Используя ApacheMonitor перезапускаем Apache (Apache24 -> Restart)
  6. Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает.
  7. Делаем копию файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini
  8. Пользуясь поиском находим, раскомментируем и изменяем параметры:
    extension_dir = "D:/USR/php/ext"
    sys_temp_dir = "D:/USR/tmp"
    extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_openssl.dll
    date.timezone = Europe/Zaporozhye
  9. Выполняем в командной строке php -m чтобы просмотреть список подключенных модулей.
  10. Перезапускаем Apache используя ApacheMonitor

Виртуальные хосты в Apache

  1. Если на компьютере производится отладка нескольких проектов, то могут понадобиться виртуальные хосты (сайты). На примере будем рассматривать два виртуальных хоста: s1.localhost и s2.localhost. Для удобства будем создавать папки с такими же названиями, что совсем не обязательно в реальной системе.
  2. Следует учесть, что при использовании виртуальных хостов, параметр DocumentRoot конфигурационного файла Apache более не имеет смысла. Основным хостом сервера (который будет доступен по адресу http://localhost/) теперь является первый виртуальный хост в конфигурационном файле виртуальных хостов!
  3. Для начала необходимо добавить в файл c:\Windows\System32\drivers\etc\hosts строки:
    127.0.0.1 s1.localhost
    127.0.0.1 s2.localhost

    Делать это нужно от имени Администратора. Желательно после этого перезагрузиться, но на практике этого не требовалось. Если изменить файл не удается (права доступа), вы можете скопировать его на рабочий стол, изменить, а затем скопировать обратно.

  4. Создаем папки для виртуальных хостов D:\USR\www\s1.localhost и D:\USR\www\s2.localhost, в которых будут располагаться файлы. В каждой из папок создаем файл index.html с содержимым S1 и S2 соответственно (для контроля того, что все работает как нужно)
  5. Затем создаем папки для логов: D:\USR\log\s1.localhost и D:\USR\log\s2.localhost — тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так — мне так более удобно.
  6. Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку Include conf/extra/httpd-vhosts.conf
  7. Далее редактируем файл d:\USR\apache\conf\extra\httpd-vhosts.conf — он должен выглядеть так (каждому виртуальному хосту свой блок VirtualHost):
    <VirtualHost *:80>
        ServerAdmin webmaster@s1.localhost
        DocumentRoot "D:/USR/www/s1.localhost"
        ServerName s1.localhost
        ServerAlias www.s1.localhost
        ErrorLog "D:/USR/log/s1.localhost/error.log"
        CustomLog "D:/USR/log/s1.localhost/access.log" common
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin webmaster@s2.localhost
        DocumentRoot "D:/USR/www/s2.localhost"
        ServerName s2.localhost
        ServerAlias www.s2.localhost
        ErrorLog "D:/USR/log/s2.localhost/error.log"
        CustomLog "D:/USR/log/s2.localhost/access.log" common
    </VirtualHost>
  8. Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на http://localhost/
  9. Перезапускаем Apache используя ApacheMonitor и заходим по очереди на http://s1.localhost/ и http://s2.localhost/.
  10. Итак. Для добавления нового виртуального хоста будет достаточно: создать папку для файлов хоста в D:\USR\www, создать папку для логов хоста в D:\USR\log, прописать имя хоста в файле hosts, добавить блок VirtualHost в файл конфигурации виртуальных хостов.

Установка MySQL 5.6

  1. Загружаем MySQL Installer MSI (mysql-installer-community) по ссылке: http://dev.mysql.com/downloads/windows/installer/5.6.html (необходима регистрация на сайте)
  2. Во время установки на этапе Choosing a Setup Type выбираем: Custom, затем удаляем из устанавливаемых продуктов всё (в правой колонке), за исключением самого MySQL сервера (автоматически будут добавлены необходимые обязательные модули). Проще удалить все и добавить только сервер — все необходимые компоненты при этом добавятся сами
    mysql-win-choose
  3. Запускаем установку, нажав на Execute в следующем окне
  4. После установки сервера нажимаем несколько раз Next и переходим к конфигурированию сервера
  5. Выбираем тип Development Machine, опции оставляем как есть и нажимаем Next
  6. Устанавливаем пароль основного пользователя root (обязательно) — здесь же можно добавить пользователей, но пока этого делать не нужно, нажимаем Next
  7. Указываем, нужно ли сделать так, чтобы сервер запускался автоматически со стартом Windows (у меня автозапуск выключен, т.к. локальный MySQL-сервер используется только для отладки в очень редких случаях), нажимаем Next
  8. Запускаем конфигурирование кнопкой Execute. Всё должно пройти успешно, после чего нажимаем Next и затем Finish.
  9. Установка сервера MySQL завершена. Поздравляем!
  10. Если вы оставили в настройках автозагрузку сервера, то более ничего делать не нужно. Сервер MySQL будет запускаться автоматически вместе со стартом операционной системы Windows. Иначе придется запускать сервер из окна Службы панели Управления компьютером Windows (или написать свой минискрипт для запуска и остановки службы). Я работаю на ноутбуке и постоянно запущенный сервер мне не нужен (расход ресурсов).
  11. Для работы с MySQL сервером есть множество полезных и удобных утилит. Я рекомендую использовать dbforge Studio for MySQL. При помощи этого инструмента можно создавать пользователей БД и назначать права доступа. Возможно, есть более удобные и быстрые инструменты. Из всех, что я использовал, этот наиболее функциональный, хоть и не особо быстрый.

Часто задаваемые вопросы (FAQ)

Q: В браузере отображается РНР-сценарий вместо результата.
A: Вы невнимательно читали статью и все таки скачали не ту версию РНР, которая требуется. Обращаю еще раз внимание — нужна именно Thread Safe версия РНР, разрядность которой должна совпадать с разрядностью Apache. Убедиться в том, что ошибка именно в этом можно по отсутствию файла d:/USR/php/php5apache2_4.dll. Почему-то это самая частая проблема, хотя в тексте на этом специально заострено внимание.

Q: При старте Apache ошибка: The requested operation has failed.
A: Apache VC11 не работает под Windows XP. Если у Вас Windows 7-10, то проверьте, чтобы порт 80 не был занят другими процессами, например каким нибудь другим WEB-сервером, который Вы устанавливали до этого. Проверьте, чтобы в приложении Skype было отключено использование 80 порта.

Q: При старте Apache ошибка об отсутствии библиотек типа VCRUNTIME140.dll и тому подобных, название которых содержит VC.
A: Установите пакет Visual C++ с сайта Microsoft по ссылке.

Q: Как установить PHPMyAdmin?
A: PHPMyAdmin — это такое же WEB-приложение, как и любое другое. Создайте для него виртуальный хост по инструкции из этой статьи, как для любого другого сайта, разархивируйте архив с PHPMyAdmin в созданную для хоста папку, перейдите в браузере на адрес этого виртуального хоста и следуйте инструкция по установке. За более подробной информацией обращайтесь на сайт PHPMyAdmin.

Если эта статья помогла Вам, пожалуйста, окажите финансовую поддержку моему блогу.

Установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на Windows 7 ­- 10: 241 комментарий

  1. Добрый день.
    Успешно установил Apache 2.4.25 (httpd-2.4.25-win64-VC11). Но на этапе установки РНР(php-5.6.30-Win32-VC11-x64) после добавления строк

    LoadModule php5_module «d:/USR/php/php5apache2_4.dll»
    AddHandler application/x-httpd-php .php

    Путь к файлу php.ini

    PHPIniDir «D:/USR/php»

    в файл httpd.conf, при старте апачи выбрасывает ошибку «The requestes operation has failed.»
    В чём может быть проблема?

  2. Всё отлично работает, спасибо автору.

    Еще можно добавить:

    Можно не использовать апач монитор — служба апача после регистрации появляется в системных службах :)

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

    1. Благодарю за замечания!
      Апач-монитором всегда пользовался ради удобства. Быстрее перезапустить службу через него, чем лезть в службы.
      А по поводу отладки, честно говоря, не сильно знаю как это делать в Windows. Спасибо за информацию.

  3. Спасибо. Вроде получилось. Но когда искал ошибку переписывал файлы, теперь при нажатии http://s1.localhost/ и http://s2.localhost/ выдает — It’s works! Файлы в папках USR/www/ s1.localhost и USR/www/ s2.localhost index.html c cодержимым S1 и S2. Пробовал даже удалять все из папки USR/www/, при перезапуске ApacheMonitor — при нажатии http://localhost/, http://s1.localhost/ и http://s2.localhost/ выдает — It’s works!
    Может так должно быть?

    1. Если Вы настроили виртуальные хосты правильно, то они должны работать. В Вашем случае они просто не работают. Ищите ошибку в настройке виртуальных хостов.

  4. Здравствуйте, подскажите, все делаю по инструкции. Но п.6 «Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает» — не идет. Выдает ошибку:
    «Not Found
    The requested URL /index.php was not found on this server.»
    Может так должно быть?

    1. Добрый день.
      Ну, раз таки The requested URL /index.php was not found on this server., значит все таки его там нет.
      Проверьте, если ли этот файл в папке, которую указали в DocumentRoot.

  5. Не нашел комментов по моей проблеме. Суть проста по любому адресу localhost или s1.localhost открывается index.html из папки htdocs. Знаю щас скажете про ${SRVROOT}, но если меняю на обычный прямой путь лучше не становиться, да и к тому же логи в таком виде пишуться куда надо. Вот что у меня в блоке Document Root

    DocumentRoot «${SRVROOT}/www»

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    1. Текст не верно отобразился, там было так

      DocumentRoot «${SRVROOT}/www»
      Directory «${SRVROOT}/www»
      Options Indexes FollowSymLinks
      AllowOverride None
      Require all granted
      Directory

      только с ковычками)

    2. Если проблема в том, что s1.localhost открывает ту же страницу, что и просто localhost, то у Вас просто не настроены виртуальные хосты. В таком случае любой адрес ***.localhost будет вести на одну и ту же страницу, определенную в DocumentRoot файла httpd.conf

  6. Пытаюсь установить PHPMyAdmin, но не получается. При заходе на http://phpmyadmin.localhost/index.php выдает ошибку
    «The mbstring extension is missing. Please check your PHP configuration.»

    Установил Apache и все остальное верно, проверил.

    Как исправить? Спасибо.

    1. The mbstring extension is missing. Please check your PHP configuration.

      Раширение mbstring не найдено. Проверьте php.ini на предмет включения данного расширения.
      Буквально дословный перевод.

  7. Добрый день! Такая проблема. Apache установлен и работает, но если зайти на localhost через браузер, выводится страничка IIS. IIS отключен через компоненты windows. В чем может быть дело? Спасибо.

    1. Кое-что исправил (допустил ошибку по невнимательности), теперь выдает ошибку 403 при заходе на localhost.

      Forbidden

      You don’t have permission to access / on this server.

      1. Добрый день.
        Скорее всего у Вас не совпадает DocumentRoot и Direcroty в apache\conf\httpd.conf
        Директивой DocumentRoot Вы указываете корневой каталог файловой системы, где Apache будет искать индексный файл index.html
        А директивой Direcroty Вы указываете конфигурацию каталога, в которую входят как раз и права доступа.
        Убедитесь, что обе директивы имеют одинаковое значение.

  8. Нужна помощь.При выполнении команды php — m выскакивает ошибка что нету VCRUNTIME140.dll .visual ставил не помогло.Зарание спасибо!!

    1. Андрей, на здоровье! :)
      Попробуйте другой браузер, посмотрите в отладке, кто переадресовывает.
      Может у Вас какой-то прокси где-то включен. Странное поведение, конечно.

      1. Очень странное, учитывая факт редиректа на двух ноутах, айпаде и телефоне, причем и с мобильного инета, и сдомашнего wifi

  9. У меня такая проблемка возникла. Аpache отказывается контактировать со мной и выдает ошибку «The requested operation has failed» при подключении виртуальных хостов, но как только отключаю их, закомментировав строку вновь, то снова начинает работать. ;(

    1. Откройте командную строку и перейдите в каталог D:\USR\apache\bin
      Находясь в нем выполните httpd.exe
      Если есть какие-то проблемы с конфигом — увидите их в выводе команды. Если проблем нет — после выполнения ничего не произойдет, просто запустится сервер без какой либо информации в консоль.
      А дальше уже смотреть, что за ошибки, и разбираться.

  10. фигасе )) заработало!
    Был косяк, не ту версию php загрузил ))
    И нужно на чистой винде(я на десятой делал) делать! Чтобы отсечь разные там проблемы.
    С чистой душой могу сказать ОГРОМНОЕ СПАСИБО тебе Денис ))

  11. Здравствуйте.
    У папке php/ нет файла php5apache2_4.dll
    Если добавить это:

    LoadModule php5_module «d:/USR/php/php5apache2_4.dll»
    AddHandler application/x-httpd-php .php

    Путь к файлу php.ini

    PHPIniDir «D:/USR/php»

    апачь не запускается. Такие вот пироги.

    1. Вы уже решили свою проблему, но отвечу здесь, может быть кто-то найдет комментарий в поиске и сразу найдет решение:

      Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe по ссылке http://windows.php.net/download/. Обратите внимание, что нужен именно VC11 и именно Thread Safe.

  12. У меня слетел OpenServer, вернее перестал запускаться Apache у него. И не устанавливал и не запускался Апач ни на одном сервере из штук пяти опробованных. Я почти сутки долбился в нэт пытаясь найти причину, отключать системные сервисы и пинговать порты, ничего не помогало. В итоге попал на твой блог. Снес все что было и начал ставить Апач с нуля.
    Первый запуск из консоли инсталяции выдал вот эту ошибку [mpm_winnt:error] [pid 6148:tid 152] (OS 2)═х єфрхЄё  эрщЄш єърчрээ√щ Їрщы. : AH00436: No installed service named «Apache2.4».
    Я полез в файл конфига который правил по твоим указанным настройкам еще раз и увидел незакомиченную строку с неправильным путем оставшимся по умолчанию. Ты почемуто не упомянул про неё. После правки её на нужный путь, и новой попытке установки получил вот такой ответ:
    The ‘Apache2.4’ service is successfully installed.
    Testing httpd.conf….
    Errors reported here must be corrected before the service can be started.
    Как видим Апач встал, но будучи в сомнениях я попытался 3й раз инсталировать его на что получил во это:
    [mpm_winnt:error] [pid 5604:tid 416] AH00433: Apache2.4: Service is already installed.
    Что это за ошибка я так и не нашел ответа.
    Резюме. Апач запустился. Я его выключил, выгрузил и запустил OpenServer. И вуаля… ВСЁ Заработало! )) Что изменил инсталятор Апача я так и не понял, но суть в том что — ПОМОГЛО! Пробую работать, посмотрим сколько протянут эти костыли )))

    1. No installed service named «Apache2.4»
      Судя по всему, попытки были в MacOS? Понятия не имею как там установить Апач. Знаю только, что там должно быть намного проще, чем под виндой.
      Но если стало по моей инструкции — чудно :)
      О какой строчке в конфиге идет речь?

      Apache2.4: Service is already installed.
      Переводится как «Служба уже установлена».

      1. Нет. Винда 10 х64.Если я уже ничего не путаю то или эта строка 362 ScriptAlias /cgi-bin/ «h:/USR/apache/cgi-bin/» или 378 это а скорее обе.

        1. Ясно. CGI не используется для PHP. Эта настройка не влияет абсолютно ни на что. Поэтому и не была упомянута в инструкции, ровно как и другие настройки, не влияющие на работу Apache+PHP.

        1. Добрый день. Да возможно, сделал ошибку. Поставил на чистой(наново установленной) винде, все ок. Спасибо за инструкцию.

          В старой винде(тоже десятая версия), появляется эта ошибка. Нужно было мне начинать установку сервера в первую очередь, а так, сложно будет найти причину этой ошибки.

          Есть идея, поставить несколько версий php. Старые движки сайтов не работают с новыми версиями php. Так что буду еще не раз обращаться к вашей инструкции ))

          1. Могу ошибаться, в но в десятке вроде бы достаточно неплохой встроенный «антивирус». Касперский мне никогда не нравился — он слишком много на себя берет.

  13. При старте Apache ошибка: The requested operation has failed.
    Столкнулся тоже с этой проблемой. В статье не описано, и в FAQ-e тоже, возможно, что в комментариях это кто-то уже подметил, но не мешало бы добавить в статью или в тот же FAQ по этому вопросу.
    Нужно в файле httpd.conf в строке Define SRVROOT «/Apache24» (в моем случае номер строки 38) нужно указать такой-же путь как и в ServerRoot, описанный в пункте 4 по установке Apache

      1. Мы в строке ServerRoot «${SRVROOT}» меняем на ServerRoot «свой путь».
        Но на одну строку выше есть строка: Define SRVROOT «/Apache24», и далее по тексту конфига вместо конкретного пути указано значение «${SRVROOT}» как в случае с ServerRoot о котором вы говорите, соответственно, что бы не менять в каждой строке где встречается это значение («${SRVROOT}») нам нужно в строке Define SRVROOT «/Apache24» то что в кавычках заменить на свой путь.

        1. Только что специально скачал последнюю версию Apache, мало ли. Нет в конфиге такой строки.
          Может быть у Вас сборка какая-то, а не чистый Apache?

          #
          # ServerRoot: The top of the directory tree under which the server's
          # configuration, error, and log files are kept.
          #
          # Do not add a slash at the end of the directory path.  If you point
          # ServerRoot at a non-local disk, be sure to specify a local disk on the
          # Mutex directive, if file-based mutexes are used.  If you wish to share the
          # same ServerRoot for multiple httpd daemons, you will need to change at
          # least PidFile.
          #
          ServerRoot "c:/Apache24"
          
        2. т.е. Define SRVROOT — это переменная которая принимает значение корневого каталога Apache24, указав который собственно ServerRoot «${SRVROOT}» уже можно не менять, как и остальные переменные, например:
          ScriptAlias /cgi-bin/ «${SRVROOT}/cgi-bin/»
          или

          AllowOverride None
          Options None
          Require all granted

          Если не указать SRVROOT и не установить свой путь во всех местах где он встречается, можно все время получать ошибку The requested operation has failed.

          1. Да, я понял ее смысл, но я никогда не встречал такого в Apache еще с времен версии 1.8. Причем, ни на одной из ОС. Видимо, прошло мимо меня либо это действительно какая-то альтернативная сборка апача.
            Вы, кажется, путаете понятия ServerRoot и DocumentRoot. Конечно же, это может быть один и тот же каталог, но чаще это разные каталоги.

Добавить комментарий