Установка 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

Прежде чем продолжить чтение, обратите внимание на то, действительно ли вам необходимо устанавливать и настраивать всё это под Windows?Может быть Вам стоит обратить внимание на быстрый способ развернуть более качественное окружение для разработки под Windows, основанное на виртуализации Vagrant и не тратить свое время и нервы на настройку того же самого напрямую в Windows? В любом случае, прочтите статью про Vagrant. Возможно она сэкономит вам не только время, но и здоровье.

Данная инструкция будет полезна начинающим 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.xx-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: 362 комментария

      1. Спасибо! Я пробовал устанавливать PEAR, но запутался в путях на Вашем примере (там 13 пунктов). Вот и попросил Вас. Спасибо за ссылку, сейчас буду разбираться.

  1. Спасибо за подробную статью с: Застряла на пункте 9 (работа с php).
    «php» не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.

    В PATH прописано ;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;

    Надо ли еще что-то добавлять в эту переменную? Не могу понять в чем ошибка :с

    1. Пожалуйста.
      Попробуйте перезагрузить Windows. Значение переменной PATH будут прочитаны только после перезагрузки.
      Проверьте, есть ли у вас каталог D:\USR\php и файл php.exe в нем? Может быть вы разархивировали в другой каталог? Тогда пропишите в PATH путь к нему.

      1. Проверила, все на месте. После перезагрузки все тоже самое :с Что ещё можно сделать? Спасибочки

        1. Ну тогда это к Windows вопросы.
          Выполните в консоле комнаду, отображающую переменные окружения:
          set
          Найдите там PATH и убедитесь, что значение этой переменной синтаксически верное (каждый путь должен быть отделен точкой с запятой) и что там присутствует ваш каталог с php.

      2. Здравствуйте! При переходе на http://localhost/index.php, появляется вот такая ошибка «The requested URL /denwer/ was not found on this server». Никак не могу понять причем тут вообще denver, он удален около года назад. Сам apache работает. Вы не могли бы подсказать в чем может быть дело?

  2. Спасибо все подробно, все заработало сразу, хочу попробовать с субд поработать.

  3. Здравствуйте, Денис. У меня на ноутбуке один системный диск С и Recovery(D)
    Могу ли я создать папку URS?

    1. Добрый день, Александр.
      Вы можете создавать каталог USR где вам удобно. Даже не внешнем диске или флешке. В статье это показано для примера, чтобы было от чего отталкиваться.
      Более того. Вам не обязательно называть его USR.

      1. Здравствуйте, Денис! В каталоге USR надо создавать папку apache2.4, тогда работает. Всего доброго.

  4. После правки DocumentRoot «${SRVROOT}/htdocs» на DocumentRoot «d:/usr/www» надо еще поменять на , а то получите ошибку доступа, во всяком случае на apache 2.4.

    1. К сожалению, текст, похожий на теги, «съел» вордпресс.
      Я могу догадываться, что речь шла о правах доступа в Directory.
      Об этом сказано в статье.

      изменяем значение ServerRoot на «d:/USR/apache» (строка 37) и значение DocumentRoot (и Direcroty) на «d:/USR/www» (строки 242 и 243)

  5. Автор спасибо, все работает, нигде не ругается.
    Есть вопрос по поводу постановки apache+php+mysql+phpmyadmin на XP на работе.
    Соответственно, на офисной машине стоят версии apache 2.2+php 5.3.5+mysql 5.5+phpmyadmin 3.5. 32-разрядная операционка. Учусь ставить сервер и создавать веб сервер 1С. Офисные айтишники установили блокировку на многие внешние сайты, при этом, следуя инструкциям других блогеров по установке и настройке, вышеупомянутого ПО, столкнулся с проблемами: http://localhost/index.php — не отображается в браузере — forbidden. — такая же проблема. В общем, простые команды php не выполняются в браузере. Либо проверить правильность написания искомого сайта просит. Имеется proxy-сервер рабочей группы. Для тестов в самом браузере указываю исключения (делал и с ними и без) по сайтам. Также не работает созданная виртуальная машина в файлах — vhosts. А по результатам установки и настройки phpmyadmin перестал включаться Apache (запускаться сервер). Что делать, не знаю.

    1. Если ваш офисный компьютер контролируется администраторами, то что либо подсказать будет сложно. Все зависит от того, что они там заблокировали и как они это сделали.
      По идее, локалхост не должен работать через прокси. Можно для проверки попробовать на время отключить прокси-сервер вообще, если это возможно. Виртуальный хост будет работать, если вы в hosts пропишите имя этого виртуального хоста. В противном случае, нужно видеть, какая ошибка возникает и уже разбираться с ней.
      Просто «не работает» не бывает — нужно обязательно понять, какая ошибка возникает. Это уже половина ответа на вопрос «почему не работает?». Если браузеру не удается определить узел (ошибка DNS), то вы забыли прописать его в hosts. Для проверки можете пингануть этот адрес, будет ли пинговаться при этом ваш 127.0.0.1?
      Ну а вообще, если администраторы заблокировали на компьютере некоторые возможности, то будет проблематичным что либо установить и настроить без возникновения проблем.

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

    1. 4 года прошло с момента написания статьи.
      Номера строк, по идее, в пределах версии 5.6.х не должны меняться. Там конфиги должны быть примерно одинаковые +/-
      Но за 4 года, вы уж извините. Странно, что вообще что-то получается. Кстати, у большинства до сих пор все гладко получается.

    2. Из текста:

      Замечания!

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

  7. Спасибо большое автору, сделал все по инструкции — работает (установил Apache + PHP)!

  8. Здравствуйте! Спасибо за прекрасную статью! Во время установки возникла только одна проблема: MySQL упорно устанавливается в папку C:/Program Files и не предлагает выбрать папку для установки. Можно ли это исправить? Мне нужно установить MySQL на другой диск, а не на С.
    Спасибо за ответ!

    1. Добрый день. Спасибо за оценку.
      Дело в том, что таким способом я устанавливал MySQL последний раз уже больше трех лет назад. Мы давно перешли на Vagrant и Docker (в зависимости от проекта) и не устанавливаем ничего на локальную машину вручную.
      Поэтому, к сожалению, я не знаю даже каким способом спустя столько лет происходит установка MySQL в Windows.

  9. Во время установки PHP когда нужно apachi перезагружать, во время перезагрузки сервер не запускается(выбивает ошибку), когда нажимаешь запустить выбивает ошибку

    1. Изучайте ошибку. Ошибка может быть какая угодно. Скорее всего, что-то не то в конфиге. Но бывает разное. Может не хватает каких-то зависимостей. Я тут уже не помогу. Я точно так же гуглю при возникновении ошибки, как это можете сделать вы сами.

  10. Во время установки PHP после 4-го шага (когда надо перезагружать Apache) он не включается, сделал все как прописано. В чем проблема?

  11. Проблемка вылезла, во время установки PHP, после 4-го шага надо перезапустить apache а он не врубается. Что делать?

  12. LoadModule php5_module «C:/PHP/php7apache2_4.dll» НЕ правильно
    LoadModule php7_module «C:/PHP/php7apache2_4.dll» Правильно

  13. Возникла проблема, при установке Apache, когда в командной строке пишу указанную команду, выдается ошибка «Устройство не готово». Что делать?

  14. В инете есть такой комментарий про conf:Любой текстовой редактор как notepad, открывает , но после записи , этот файл больше не работает.
    У меня такая же проблема

  15. А у меня такая проблема. То, что должно лечь в www- index.php. Превратилось в что то типа веб-сайтов значка.
    А эти расширения conf не открывалось . А при открытии блокнот или WordPad какие-то сбои
    Что я делаю не так ?
    Впервые делаю такое возможно, по непониманию столько ошибок

  16. Спасибо, Денис, все получилось
    а как и сервера и клиента на одном компе поставить?

  17. Скажите, подойдет ли эта инструкция для установки на удаленный сервер на Windows Server 2016 для полноценной работы веб проектов?

    1. В продакшене под Windows Server, наверное, лучше будет использовать IIS, а не Apache.
      Данная статья не затрагивает вопросов безопасности веб-сервера, так как речь идет об установке на компьютер с целью разработки.
      Если же Вам хочется использовать Apache под Windows в продакшене, то эта инструкция подойдет, только поищите в ести статьи, касательно безопасности веб-серверов. Тут одним комментарием, да и даже одной статьей всего не объяснить.

  18. Спасибо большое за отличную и понятную статью!
    Всё получилось :)

    Может кому-то пригодится: после нажатия на installer mysql программа потребовала установки .net framework 4.0. Переживала, что что-то пошло не так или пойдет не так после, но установила и всё вроде как хорошо)

    Подскажите, может есть в планах написание такой инструкции под macOS?

    1. Инструкция написана для начинающих разработчиков, которые хотят установить и настроить это все под Windows с целью самообучения разработке.
      Для MacOS, как и для Linux, скорее всего, такие инструкции не нужны. Потому что там все происходит просто и автоматически, введя одну или несколько команд.
      Да и в любом случае я рекомендую использовать Vagrant везде, чтобы получить идентичное окружение для разработки на всех рабочих станциях.

    1. Эх :(

      Специально для вас в статье есть абзац:

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

      Так что не мучайтесь, установите Denwer в два клика. Это ведь так просто.

    1. Да. У вас DocumentRoot указывает на d:/USR/www, как это было описано в разделе «Установка Apache 2.4».
      Чтобы было так, как вы хотите, прочитайте еще раз раздел «Виртуальные хосты в Apache» и не забудьте перезапустить Apache после перенастройки.

  19. Добрый вечер. Подскажите чайнику — Принципиально ли называть папку USR именно так, можно ли ее назвать любым другим словом ?? Если нельзя — то почему ?

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

  20. Прежде всего хочу поблагодарить Дениса за отличный материал. Мне он очень помог. И хотя всё это — прописные истины и делалось уже не раз, но здесь всё собрано в одном месте и очень удобно.

    Небольшое дополнение по MySQL. Регистрироваться НЕ ОБЯЗАТЕЛЬНО. Чуть ниже кнопок есть ссылочка No thanks, just start my download. Вот на нее и нажимайте, чтобы загрузка пошла без регистрации.

    1. Спасибо за отзыв.
      Да, мне уже в комментариях много раз писал, что уже не нужно регистрироваться. Раньше, когда писал заметку, было нужно.
      Наверное пришло время исправить это в статье.

  21. Здравствуйте, Денис.

    После подключения php не запускается apache.

    Подключаю так:

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

    PHPIniDir «C:/php»

    Дистрибутив php:
    php-5.6.32-Win32-VC11-x64.zip
    Апач:
    2.4.25 Win64
    Сообщение:
    httpd.exe: Syntax error on line 532 of C:/Apache24/conf/httpd.conf: Cannot load
    C:/php/php5apache2_4.dll into server: \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea
    \xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.
    В переводе на русский «Не найден указанный модуль.»

    Путь проверял многократно. Скопировал и ваш вариант.
    Могу показать скриншот где эта dll лежит по этому адресу.

    В чем может быть проблема?

    1. Добрый день.
      Судя по всему, Вы все делаете верно.
      Такая проблема может быть из-за несоответствия разрядности Apache и PHP, но у Вас везде х64.
      Если Вы конечно не скопировали файл php5apache2_4.dll из другого архива, что Вы вряд ли бы сделали.
      Так сходу не могу ничего сказать. Все должно работать.
      Пришлите посмотреть файлик apache/conf/httpd.conf — попробую его у себя проверить.

  22. Отвратительная статья. Непрофессиональная чушь на уровне дилетанта, начитавшегося урывками статей из первых строк по запросу в поисковике. Из за таких «сисадминов» и «программистов» падают сервера и происходят тупняки в системе.

    1. Решил оставить этот комментарий, чтобы на фоне него все остальные посетители чувствовали в себе уверенность и психическую уравновешенность.

  23. День добрый.
    Бьюсь с такой проблемой: На первом же этапе, на апаче… При установке на диск С все замечательно. При установке на Е и переходе на локалхост — превышен интервал ожидания ответа… Хотя апаче запускается, служба работает… В чем может быть проблема?

    1. Добрый день.
      Перед тем, как удалить файлы с диска С, нужно было остановить и удалить службу. Ведь она запускает апач из конкретного каталога на диске С.
      Затем перенести файлы на диск Е и снова проинсталлировать службу.
      Сейчас, судя по всему, служба пытается запустить уже не существующий апач с диска С.

  24. При установке MySql 5.7 ошибка
    the action install for product mysql server failed
    никто не подскажет что можно предпринять?

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

      1. Нет,я запускаю от имени httpd.exe и запускается командная строка но я ничего не могу написать клацаю по клавиатуре и ничего не происходит .

        1. Сначала открываете командную строку. Для этого нажимаете правой кнопкой мышки по кнопке Пуск и выбираете там «Командная строка (администратор)»
          http://pastenow.ru/25LCO

          Затем у Вас откроется командная строка. Копируете этот текст:
          D:\USR\apache\bin\httpd.exe -k install
          Затем переключаетесь в окошко командной строки и вставляете его
          http://pastenow.ru/25LDJ
          И нажимаете Enter

              1. Снова проблема.Все сделал как указано для установки PHP. Переименовал php5apache_2.4dll в php7apache2.4dll и запустил в командой строке а оно выдает ошибку cannot load и ссылку на php7apache2.4dll . Что делать?

                    1. Не совсем понятен ход мыслей.
                      Если нужна версия 7, качайте версию 7. Если переименовать файл от 5 версии в 7, то он не превратится в версию 7.

                    2. та я не файл переименовывал а переписал строку там где нужно было писать 5 я написал 7

  26. Вроде все сделал правильно, но после запуска веб-приложения на локалхосте вместо сайта отображается код…

  27. Спасибо, все класс, теперь немножко добавлю

    Установка MySQL 5.6
    пункт 1
    можно пропустить регистрацию нажав
    No thanks, just start my download.

  28. Добрый день
    может уже было…

    D:\USR\apache\bin\httpd.exe -k install
    Installing the ‘Apache2.4’ service
    The ‘Apache2.4’ service is successfully installed.
    Testing httpd.conf….
    Errors reported here must be corrected before the service can be started.
    (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address [::]:80
    (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address 0.0.0.0:80
    AH00451: no listening sockets available, shutting down
    AH00015: Unable to open logs

    куда копать?

    1. Добрый день.

      The ‘Apache2.4’ service is successfully installed.

      Говорит о том, что сервис уже установлен.

      (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address [::]:80
      (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address 0.0.0.0:80

      Говорит о том, что порт 80 уже занят. Возможно это связано с тем, что другая версия Apache уже была установлена ранее. Скорее всего она и занимает 80й порт.
      Кракозябры расшифровываются так: «Сделана попытка доступа к сокету методом, запрещенным правами доступа.» (Виндоус сам не может разобраться в своих же кодировках).

      AH00015: Unable to open logs

      А тут что-то с невозможностью открыть файл лога. Но давайте пока не будем это трогать, исправьте первые две проблемы. Хотя, скорее всего, это одна и та же проблема. Удалите сначала старый сервис, затем установите новый.

      1. Дело в том что делаю это все первый раз на «новой блестящей винде». даже на всякий случай переустановил :)
        все равно вылазит однотипное сообщение
        $ D:\USR\apache\bin\httpd.exe -k install
        Installing the ‘Apache2.4’ service
        The ‘Apache2.4’ service is successfully installed.
        Testing httpd.conf….
        Errors reported here must be corrected before the service can be started.
        (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address [::]:80
        (OS 10013)╤фхырэр яюя√Єър фюёЄєяр ъ ёюъхЄє ьхЄюфюь, чряЁх∙хээ√ь яЁртрьш фюёЄєяр. : AH00072: make_sock: could not bind to address 0.0.0.0:80
        AH00451: no listening sockets available, shutting down
        AH00015: Unable to open logs

        после запуска ярлыка ApacheMonitor.exe, сама утилита стартует но апач не запускается (Error The requested operation has failed!)

    2. Запускаем ApacheMonitor. В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start. Нажимаю, и выбивает ошибку: The reguested operation has failed! Что делать?

  29. В установке Apache и php не произошло проблем, а вот с MySQL вышла такая заковырка: на этапе конфигурирования сервера установщик потребовал от меня текущий(!) пароль root, хоть я и удалил все предыдущие попытки установки mysql. Я оставил поле пустым, после чего, в процессе настройки, вылезла ошибка: Access denied for user ‘root’@’localhost’ (using password: NO). Попробовал второй раз установить (удалив предыдущую попытку) используя пароль встроенной учётн. записи администатора (?), вылезла та же ошибка, только с YES.
    Иначе говоря, требует пароль, которого у меня нет.
    Попробую уставовить MySQL другим способом.

    1. Хех, была проблема — нет проблемы)
      Нашёл некоторые файлы в ProgramData, которые мной не были удалены после предыдущих попыток. Удалил их, запустил установку снова — всё получилось! Не требовал пароль текущий для рута. Спасибо большое за статью!

  30. по поводу мускула ==для скачивания (необходима регистрация на сайте)==
    там внизу есть No thanks, just start my download

  31. Здравствуйте!
    У меня поиском в сайблайне 3 не находятся вот эти штуки:
    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

    Можете как-то помочь? У вас была уже такая проблема? Как решали? Спасибо :)

    1. Добрый день.
      Ищите по части фразы, например: extension_dir, sys_temp_dir, php_mysql, date.timezone
      Ведь в статье приведено то, что должно получиться в итоге. Изначально Вы должны найти сами параметры и привести их к указанному виду.

  32. что то не завелось) вначале не понял, после запуска монитора апаче, сам апаче работает
    но не запущен другой сервис, MS4W думал из за него, пока качал)) почем зря

    посмотрел еще раз конфиг, здесь не верное утверждение
    ServerName localhost:80

    ServerName — это доменное имя
    а вот Listen — просматривает порт на котором будет сидеть апаче

    правильно будет
    Listen 8888
    ServerName localhost

    в итоге: http://localhost:8888

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

  33. Здравствуйте.
    Все сделал по инструкции и даже работает шаблон магазина OpenCart, но
    почему-то не работают шаблоны с сайта http://sitey.ru/224-usesite.html
    Но эти же шаблоны отлично работают на сборке denwer 3 (php 5.3)
    Ошибок по директиве error_reporting = E_ALL нет
    Где искать проблему?

  34. Полезный мануал , спасибо. При скачивании MySQL регистрация не обязательна — там есть линк ниже No thanks, just start my download.

  35. Доброго дня Дмитро. Встановив усе за інструкцією, проте після встановлення phpMyAdmin виникла проблема «Розширення mysqli не знайдено….», підкажіть де може бути проблема. Із перевіреного: шляхи вказані вірно, php_mysql.dll та php_mysqli.dll розкоментовані, info.php показує наявність mySQL і mySQLi в списку модулів, запускав з іншого браузера проблема та сама, вище вказані файли до System32 скопійовано :) більше не знаю що робити, наперед дякую.

  36. Здравствуйте,куда именно нужно вписать В файле (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»???
    У меня отсутствует файл php.ini,где его взять???

  37. Ошибка

    SQL запрос:

    DROP TABLE IF EXISTS ddcg3_assets

    Ответ MySQL: Документация
    #1046 — База данных не выбрана

    апач+пшп+мускул работает нормально Проблема при импорте файла через phpmyadmin. Как исправить?

  38. Добрый день.
    Успешно установил 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.»
    В чём может быть проблема?

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

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

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

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

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

  40. Спасибо. Вроде получилось. Но когда искал ошибку переписывал файлы, теперь при нажатии 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. Если Вы настроили виртуальные хосты правильно, то они должны работать. В Вашем случае они просто не работают. Ищите ошибку в настройке виртуальных хостов.

  41. Здравствуйте, подскажите, все делаю по инструкции. Но п.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.

  42. Не нашел комментов по моей проблеме. Суть проста по любому адресу 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

  43. Пытаюсь установить 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 на предмет включения данного расширения.
      Буквально дословный перевод.

  44. Добрый день! Такая проблема. 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 Вы указываете конфигурацию каталога, в которую входят как раз и права доступа.
        Убедитесь, что обе директивы имеют одинаковое значение.

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

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

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

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

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

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

  48. Здравствуйте.
    У папке 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.

  49. У меня слетел 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. Могу ошибаться, в но в десятке вроде бы достаточно неплохой встроенный «антивирус». Касперский мне никогда не нравился — он слишком много на себя берет.

  50. При старте 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. Конечно же, это может быть один и тот же каталог, но чаще это разные каталоги.

  51. Писал Вам про то, как расшарить сайты по сети. Оказалось просто. Нужно на компьютере, с которого нужно соединиться с компьютером-сервером в hosts прописать ip сервера (выделенный в сети) алиас сайта, типа 192.168.1.55 my-site.lc. Статья Ваша замечательная, Было бы славно, если бы Вы сделали урок по настройкам php. Спасибо за труды!

    1. Здравствуйте.
      Да, для «расшаривания» ничего не требуется — все и так сразу доступно точно так же, как и локально. Если Вам нужно организовать доступ к серверу из локальной сети, то можете поступить любым из способов: 1) прописать на тех компьютерах, с которых необходимо получить доступ к сайтам, в файле hosts соответствие имен хостов и IP адреса сервера (самый простой способ) или 2) наверняка у Вас есть маршрутизатор, обслуживающий локальную сеть (роутер), если он поддерживает добавление статических хостов в настройках DNS, то можете прописать соответствия имен IP адресам там — тогда все компьютеры локальной сети сразу же смогут открывать ваши сайты на сервере (это предпочтительный способ) и еще один способ 3) настроить WINS сервер и в нем прописать соответствия, но это самый нежелательный способ, если у вас нет контроллера домена и т.д.
      Если нужно получить доступ из интернет, то желательно, чтобы сервер имел статический белый IP-адрес, в крайнем случае статический белый IP-адрес должен быть хотябы на маршрутизаторе, на котором Вы потом настроите проброс 80-го порта на Ваш сервер в локальной сети. Ну, а чтобы сайты открывались по имени, а не по IP-адресу, необходимо зарегистрировать домен в службе, которая поддерживает WebDNS, чтобы не пришлось еще настраивать свои DNS-серверы. Когда зарегистрируете домен, то используя WebDNS укажите соответствие имени белому IP-адресу и Ваш сайт будет доступен из любой точки интернет.

      А по настройкам PHP в официальном мануале всё исчерпывающе описано. http://php.net/manual/ru/ini.php

  52. Здравствуйте! По Вашей инструкции все отлично и быстро настраивается! Спасибо! Не могли бы еще подсказать как теперь установленные сайты расшарить по лан сети. Решил развернуть apache+php+mysql на более мощном компе, а редактировать по сети. Помогите пожалуйста…. В инете много подсказок под денвер, oprenserver, но хотелось заморочиться со сборкой.

  53. Автор данной статьи напишите в установке php чтобы освободили порт 80,если выскакивает ошибка при изменении кода httpd.conf (добавление модуля) и все заработает

      1. здравствуйте Денис я все сделал по вашей инструкции и перепроверил несколько раз скайпа у меня вообще нет порт 80 свободен и всеровно вылазит вот эта ошибка The requested operation has failed.при установки ни каких ошибок не было в файле лог вообще ни чего нет правда апач я ставлю 2.4.23 только такой был на сайте

        1. Добрый день.
          Если эта ошибка возникает до того, как Вы подключили РНР к Apache, то попробуйте запустить httpd из командной строки, а не через Apache-monitor. Там будет больше информации.
          Если ошибка возникает уже после добавления в конфиг РНР, то ищите синтаксическую ошибку.

  54. Здравствуйте, помогите пожалуйста! Как удалить apache 24 VC10 из под семерки. Установил с не теми настройками, хотелось бы переустоновить.
    Уровень пользователя — дизайнер, и эвм это что то из параллельного мира.

    1. Добрый день. Если делали по моей инструкции, то сделайте следующее:
      1. откройте командную строку и введите:
      D:\USR\apache\bin\httpd.exe -k uninstall
      2. просто удалите каталог D:\USR\apache, ведь Apache по моей инструкции не устанавливается. Это просто папка, откуда запускается сервер. Достаточно ее удалить и всё.

      1. Ок спасибо, даже перед этим остановил httpd –k shutdown, а то вдруг немцы и все такое ). Второй вопрос — в таком случае зачем инсталлировать ../bin/httpd.exe -k install?

  55. Не могу установить php 5.6
    «Cannot load E:/USR/php5_6/php5apache2_4.dll into server»
    Файла действительно нет, как его получить? или что я делаю не так?

  56. Здравствуйте, у меня выдает ошибку в строке 37, но я полностью все копировал, сделал все по инструкции а когда трее нажимаю старт то подключение не удается, немогу понять что нужно дописать в 37 строке, буду благодарен если подскажите!

  57. Здравствуйте, сделал все по инструкции раза на 4 пробывал на других компьютерах, все получается, но когда нажимаю старт в трее он пишет что неудалось подключить! а в командной строке пишет вот это»Синтаксическая ошибка на строке 37 из символы должны быть действительный каталог»-перевод, оригенал вот-«Syntax error on line 37 of D:\USR\apache\conf\httpd.conf: ServerRoot must be a valid directory» буду благодарен если поможите разобратся!

      1. спасибо за инструкцию! вчера уже измотанно думал что ничего не получится! но ведь глупая ошибка я просто не сохранял изменения в редакторе который скачал с этого сайта!!!))

  58. Денис, добрый день. Установил Apache, PHP, MySql. Попробовал написать разные примеры из книги Маклафина. Работает. Но когда дошел до примера с подключением к базе данных, то получил ошибку. А именно: написал connect.html (тест подключения к базе данных) из которого идет обращение к connect.php. Код connect.php такой:
    <?php
    mysql_connect("localhost", "root", "60818778")
    or die (" Ошибка подключения к базе данных: «.mysql_error().» «);
    echo » Вы подключились к MySql»;
    ?>
    Возникает ошибка: «Fatal error: Call to undefined function mysql_connect() in C:\USR\www\site1\ch02\scripts\connect.php on line 4»

    Проверил пункты 3 и 8 из абзаца «Установка PHP 5.6». У меня сделано так же. Подскажите, пожалуйста, в чем проблема?

    1. Добрый день, Евгений.
      Функция mysql_connect не рекомендуется к использованию уже достаточно давно, как не безопасная, а в версии РНР7 вообще удалена.
      Обратитесь к справочнику для более подробной информации: http://php.net/manual/ru/function.mysql-connect.php

      РНР — динамично развивающийся язык. Поэтому, я не рекомендовал бы Вам начинать его изучение по старым книгам.
      Я рекомендую изучать язык по официальной документации на сайте РНР: http://php.net/manual/ru/
      А в качестве неплохого руководства по современному РНР рекомендую: http://getjump.me/ru-php-the-right-way/
      После того, как Вы ознакомитесь с синтаксисом языка и немного освоитесь, рекомендую изучить ООП (без привязки к какому либо языку) и паттерны проектирования (Банда Четырех), затем обязательно прочитайте замечательную книгу: Мэтт Зандстра «PHP: объекты, шаблоны и методики программирования.» — это поможет Вам воссоединить ООП, паттерны и РНР воедино.
      И помните, программистов много. Действительно хороших разработчиков, которые находят хорошую работу, очень мало.
      Успехов в изучении!

      1. Денис, спасибо за полезную статью с доступным изложением и за ответ. Буду продолжать изучать☺

      2. Денис, книгу по паттернам программирования (Банда Четырех) нашел только 2001 г.в. Стоит ли ее изучать?

        1. Держите https://goo.gl/6IYmeo
          Или бумажный вариант: http://balka-book.com/goods.php?id=3629 (мне, например, удобней бумажные читать, тем более что книга не дорогая)
          В шаблонах, можно сказать, ничего не изменилось за все время, которое прошло с момента написания книги (на самом деле книга написана в 1994 году) https://ru.wikipedia.org/wiki/Design_Patterns

          А книгу «PHP: объекты, шаблоны и методики программирования» лучше взять последнее 4-издание, так как в ней идут примеры кода на РНР и с ростом самого языка эти примеры немного изменяются. Тоже желательно в бумажном варианте. Эта книга вообще должна быть на столе у каждого РНР разработчика.

          1. Книгу по ссылке скачал, книгу Мэтта Зандстра тоже. Буду изучать. С ошибкой, про которую писал в первом вопросе, разобрался. Оказывается в строчке extension_dir = C:/USR/php/ext» пропустил кавычку перед C. Спасибо, Дениc.

            1. Хочу еще раз обратить внимание на то, что эти книги помогут Вам разобраться в ООП. Банда Четырех — это общий справочник по паттернам (шаблонам) проектирования, применимым в любых языках программирования. Знание и понимание паттернов избавит Вас от изобретения велосипедов в большинстве случаев, но не во всех. Не нужно целиком и полностью доверять паттернам. Если Вы захотите изучить какой-то еще ОО-язык программирования, то эти паттерны будут работать и там. Паттерны помогают быстро писать легко поддерживаемый код. Решение, какой паттерн где применить и применить ли вообще — целиком и полностью ложится на Вас.
              Вторая книга рассказывает об ООП применительно к РНР. В первых главах даются общие понятия ООП, которых может быть не достаточно для полноценного понимания ООП как такового, но для базовых понятий вполне достаточно. Также книга содержит часть паттернов, описанных Бандой Четырех, но уже применительно к РНР.
              Обе эти книги не являются панацеей. Изучив их Вы только поймете направление, в котором Вам необходимо двигаться. Эти книги дают фундаментальные знания, но не более того.
              Посещайте мастер-классы по программированию. Подписывайтесь на сообщества. Общайтесь с коллегами по цеху. Учиться программированию нужно всю жизнь.
              Успехов! Станьте хорошим разработчиком.

  59. Ничего не встало Сделал по инструкции все встало.
    Копировать надо вместе с папкой Apache24, настройки httpd.conf не полные.
    Вот линки тут немного более менее направлябщей в правельное русло инфы.
    [ссылки запрещены]

    1. Описанных настроек вполне достаточно для запуска веб-сервера с прикрученным к нему php.
      Описание настроек apache и php в данной статье не входило в планы.
      Можете скопировать вместе с папкой apache24, но тогда у вас получится D:\USR\apache\Apache24, т.е. на одну папку больше. Если Вам так нравится, я не смею Вам мешать :)

  60. Спасибо за подробную статью, все отлично встало. Хотя я и не начинающий программист, но последние несколько лет работала на линуксе, понадобился мануал под винду, чтобы по-быстрому, все четко заработало. Кстати, mysql можно скачать и без регистрации на сайте, там внизу ссылочка есть.

    1. Да. Уже можно. Раньше нельзя было. Я не правил в статье моменты, которые не влияют на достижение цели.
      Возможно, для семерки вообще стоит ее полностью переписать в соответствии с новыми рекомендациями.
      Я давно не использую PHP под Win и не использую MySQL. Использую Vagrant, чего и всем желаю.

  61. здравствуйте, на «D:\USR\apache\bin\httpd.exe -k install» сервис установился но при тесте httpd.conf «Errors reported here must be corected before cervice can be started»
    я нановопеределал, как узнать исправил ли я ошыбку?

      1. спасибо, есть одна проблемка — в файле index.php после введения руского язика (через AkelaPad) черные квадраты, читал нужно в настройках поставить кодировку 1251, у меня так и есть но и проблема есть..

  62. Отличная статья, вот если бы Вы еще написали ссылку откуда dll скачивать рабочие для PDO было бы вообще шикарно, для mssql приходится юзать dll как я понял стороннего разработчика. родной не работает.

    1. Все стандартные драйверы PDO идут в комплекте и включаются простым раскомментированием соответствующей строки в php.ini с последующим перезапуском Apache.
      Что касается драйверов Microsoft SQL Server, то обратитесь пожалуйста к официальной документации: http://php.net/manual/ru/ref.pdo-dblib.php
      И к официальной документации Microsoft: https://msdn.microsoft.com/library/dn865013.aspx

      Свои пять копеек: Почему так сложно? Потому что это Microsoft.

  63. В файл D:\USR\apache\conf\httpd.conf добавляем строки:

    1LoadModule php5_module «d:/USR/php/php5apache2_4.dll»
    2AddHandler application/x-httpd-php .php
    3# Путь к файлу php.ini
    4PHPIniDir «D:/USR/php»

    После того как прописываю это выдаёт ошибку: «The requested operation has failed!»

    Что делать ?

    1. Вы могли скачать не ту версию РНР. Убедитесь, что файл d:/USR/php/php5apache2_4.dll присутствует (об этом жирно написано в инструкции).
      Либо же синтаксическая ошибка в конфигурационном файле, если Вы вставили записи прям с номерами строк, как в Вашем комментарии.

      1. Извините натупи, исправился.

        Но опять застрял «Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку Include conf/extra/httpd-vhosts.conf»

        После выполнения этого та же самая байда…

        Буду благодарен за ответ…

              1. у меня аналогичная проблема, ошибок не нашел
                LoadModule php5_module «C:/SERVER/php/php5apache2_4.dll»
                AddHandler application/x-httpd-php .php

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

                PHPIniDir «C:/SERVER/php»
                файлик php5apache2_4.dll присутствует по этому адресу, VCR установлен.
                Апачь без этих строчек — работает.
                В php.ini изменил чётко строчки указанные в инструкции, пробовал включать и без них, но всё равно apach не запускается, пишет «the requested operation has failed».
                Что можно ещё проверить? Очень не хотелось бы переустанавливать апачь.

                  1. Аналогичная мПроблема ! 32 разрядная система.Все проверил все правильно вставил…..когда пишешь httpd.exe на командную строку пишет что не являеется внутренней или внешней командой. исполняемой или пакетным файлом

  64. Денис, у меня проблема. Apache работает, но сразу после того, как раскомментирываю строку Include conf/extra/httpd-vhosts.conf в файле httpd.conf, у меня выскакивает ошибка при запуске сервера The Requested operation has failed! Что делать? Есть ли какие-то предположения?

    1. Я нашёл проблему. Проблема в строчке ErrorLog C:/USR/log/s5.localhost/error.log», когда её добавляю, у меня Apache перестаёт работать. Так же Apache перестаёт запускаться после того, как я пишу Listen 80, надо Listen 8080. Вот получается, когда Listen 80 и стоит строчка ErrorLog C:/USR/log/s5.localhost/error.log» в httpd-vhosts.conf, тогда Apache не работает. Не подскажете отчего так и куда теперь записывать логи?

      1. Всё, нашёл проблему. Пропустил переднюю кавычку в строчке ErrorLog C:/USR/log/s5.localhost/error.log»

  65. Добрый день!
    При запуске «D:\USR\apache\bin\httpd.exe -k install»
    Выходит сообщение об ошибке:
    «[mpm_winnt:error] [pid 2140:tid 116] AH00433: Apache2.4: Service is already installed»

    1. Моя статья рассчитана на то, что разработчик самостоятельно устанавливает и настраивает веб-сервер. Чтобы, так сказать, прочувствовать всё на себе и понять архитектуру и принцип работы.
      Если Вам нужен был просто рабочий сервер без заморочек не вникая в то, как он работает, Вы могли скачать Денвер, например, и не мучиться :)
      Я не люблю приложения, которые инсталлируются — с ними не все так просто в случае проблем. Apache, установка которого описана в моей статье, не требует инсталляции. Достаточно добавить в автозагрузку, что на самом деле вовсе не обязательно — можно запускать Apache-монитором.

  66. Привет, Денис. Настроил сервер по твоей инструкции. Возникла проблема с настройкой роутинга. Допустим в www/s2.localhost/api/index.php у меня следующий код

    В .htaccess такие настройки

    RewriteEngine On
    RewriteBase /api

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^.*$ index.php [L]

    При обращении к http://s2.localhost/api сервер выдаёт в браузере ошибку 500 Internal Server Error

    В чём может быть проблема? Вроде всё настроено верно.

    1. Код в index.php

      function server($uri) {
      if ($uri == «/») {
      echo «Главная»;
      } else if ($uri == «/test») {
      echo «test»;
      }
      }

      server($_SERVER['REQUEST_URI']);
      
      1. Привет, Игорь!
        При возникновении ошибки 500 сразу же читайте логи апача (error.log)
        Там будут ответы на все Ваши вопросы :)
        Скорее всего у Вас не подключен модуль mod_rewrite

  67. Все установил, все работает, но php в командной строке не работает, пишу: php -v или php -m или php что угодно и получаю в ответ: Устройство не готово. В чем может быть проблема?

  68. Автору спасибо, все вроде коротко и по делу.
    P.S. На Вашем сайте очень не удобно комментарии оставлять)

    1. Пожалуйста!
      По поводу комментариев — Вы абсолютно правы, к сожалению, из-за спама приходится использовать предмодерацию.
      Нужно заняться этим вопросом и подыскать плагины для комментирования.

  69. Здравствуйте! Конечно, большое спасибо за статью, она очень помогла.
    Но мне кажется, что в ней имеется одна неточность, в результате которой я потратил на установку лишние 1,5 часа.
    В разделе про Apache вы пишете: «Скорее всего у Вас 64 разрядная ОС, поэтому Вам понадобится файл с именем httpd-2.4.16-win64-VC11.zip».
    Далее, в разделе про PHP вы пишете: «Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe».

    Так вот, я скачал и поставил Apache x64, а PHP — x86, и у меня Апач не захотел подгружать php5apache2_4.dll. Лишь когда я удалил Апач x64 и поставил Апач x86 (и соответственно Visual Studio 2012 x86), у меня всё заработало.
    Выходит, что Apache и PHP обязательно должны быть одной разрядности?

    1. Здравствуйте. Рад, что помог!
      Что касается Вашего замечания, то в п.1 написано следующее:
      Загружаем последнюю версию VC11 x86 Thread Safe или VC11 x64 Thread Safe по ссылке http://windows.php.net/download/. Обратите внимание, что нужен именно VC11 и именно Thread Safe. Разрядность должна быть как у Apache.
      Спасибо за Ваш отзыв!

  70. Добрый вечер Денис!
    у меня вот такая проблемка,при открытии index.php не происходит приветствия в виде таблицы,а вываливается код.
    т.е.
    заранее спасибо!

    1. Добрый день.
      Не срабатывает РНР. Могли забыть добавить строки в конец httpd.conf, которые включают интерпретатор РНР (п.3)
      Или еще частая проблема в том, что Вы скачали неправильную версию PHP. Нужно именно THREAD SAFE. Убедиться в этом можно по наличию файла php5apache2_4.dll в каталоге с РНР. Если его нет — скачайте правильную версию. Разрядность должна соответствовать разрядности Apache.

  71. Здравствуйте! При попытке загрузить интернет — магазин выдает ошибку в броузере:
    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\USR\www\LifeExampleShop.ru\config.php on line 13
    getMenu(); ?>

    1. Добрый день.
      Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
      Это сообщение говорит о том, что функция mysql_connect() является устаревшей и не рекомендуется к использованию.
      Какого года ваш интернет магазин? Данная функция считается устаревшей начиная с версии PHP 5.5 (с 2013 года) и не рекомендуется к использованию.

  72. Здравствуйте! У меня при попытке запустить код интернет-магазина вываливает программный код в броузере(интерпретатор php работает). Возможно что-то с базой данных…?

  73. Всё сделал, всё заработало.
    В папке www сделал папку сайта, прописал в конфиге и всё работает. Но перестало работать http://localhost. Пишет Forbidden. You don’t have permission to access / on this server.
    Решил установить phpmyadmin в папку корень USR. В httpd.conf прописал

    ServerAdmin webmaster@phpmyadmin
    DocumentRoot «D:/USR/phpmyadmin»
    ServerName phpmyadmin
    ServerAlias http://www.phpmyadmin
    ErrorLog «D:/USR/log/phpmyadmin/error.log»
    CustomLog «D:/USR/log/phpmyadmin/access.log» common

    В файле hosts прописано
    127.0.0.1 localhost
    127.0.0.1 mk31
    127.0.0.1 phpmyadmin
    Но почему не работает phpmyadmin?
    Он работает только в папке www.

    1. Перефразирую немного ответ, написанный первый раз.
      В конфигурационном файле httpd.conf Вы указали параметры каталога в директиве Directory. Выглядит это примерно так (строк и приблизительно 243-270):

      DocumentRoot "d:/USR/www"
      <Directory "d:/USR/www">
          Options Indexes FollowSymLinks
          AllowOverride None
          Require all granted
      </Directory>

      Это означает, что для всех директорий, начиная с d:/USR/www установлены определенные права доступа, которые разрешают доступ к ней Require all granted

      Для корневой же директории в том же конфигурационном файле имеется следующая конфигурация доступа (строки примерно 226-229):

      <Directory />
          AllowOverride none
          Require all denied
      </Directory>

      Это означает полный запрет доступа для всех директорий, начиная с корневой.

      Так как больше настройку Directory в примере нигде не производили, то для всех каталогов файловой системы будут действовать указанные в httpd.conf права доступа, а именно полный запрет доступа к файлам в корневой директории (и всех поддиректория соответственно) и разрешение доступа на директорию d:/USR/www со всеми поддиректориями. Если Ваш сайт находится внутри d:/USR/www, то доступ к файлам будет разрешен, иначе запрещен.

      Поэтому можно поступить двумя способами:
      1. Хранить все виртуальные хосты в d:/USR/www, как это описано в статье в разделе про настройку хостов
      2. В виртуальных хостах задавать еще и параметры директории. То есть в файле виртуальных хостов хост будет выглядеть вот примерно так:

      <VirtualHost *:80>
          DocumentRoot "D:/USR/phpmyadmin.localhost"
          ServerName phpmyadmin.localhost
          ErrorLog "D:/USR/log/phpmyadmin.localhost/error.log"
          CustomLog "D:/USR/log/phpmyadmin.localhost/access.log" common
          <Directory "D:/USR/phpmyadmin.localhost">
              AllowOverride All
              Require all granted
          </Directory>
      </VirtualHost>
  74. В браузере заходим на http://localhost/ – должны увидеть It works! — А я вижу картинку в которой написано :
    .
    Перепроверила правильность замены директивы, всё равно не работает.
    Вбивала в гугл, всё равно толком ничего не поняла. Он вроде как не может найти правильный адрес размещения php, но вроде как всё указала верно.
    Заранее спасибо за помощь

        1. Добрый день. Если Вы все делали в строгой последовательности, то php phpinfo() Вы никак не увидите, потому как на момент проверки, которая должна вывести It works!, Apache еще не умеет читать файлы типа .php Вы явно что-то перепутали. Не торопитесь.

  75. Добрый день, Денис! Спасибо! Информация достойная! На Windows сегодняшних поколений все прекрасно работает. не мог бы ты также написать такую статью пошаговую для Windows XP. Буду очень благодарен

    1. День добрый.
      К сожалению, Windows XP невозможно установить Apache VC11, только VC10. Соответственно и указанный в статье PHP не подойдет, нужно более старый искать. На официальном сайте есть VC9, но я не уверен, заработает ли он с сервером VC10. Попробуйте.
      И обязательно установите все недостающие библиотеки VisualStudio с сайта Microsoft.
      В остальном инструкция подойдет.
      Если после установки апач не запустится, попробуйте запустить его в командной строке — увидите ошибки. Скорее всего будет не хватать библиотек MS VisualStudio. Гугл решает эту проблему :)
      Удачи!

  76. Здравствуйте, Денис!
    Спасибо за такое подробное описание. Все установилось и работает.
    Возникли проблемы с созданием виртуальных хостов.
    В моей системе (Win7-x64) отсутствует каталог c:\Windows\System32\drivers\etc. Подскажите где искать нужный файл.

    1. Добрый день.
      Затрудняюсь ответить. Это стандартный системный каталог, который есть в любой версии Windows, начиная с Win-2000.
      Только что у себя на Win10 перепроверил — все на месте.

  77. Добрый день. Получилось запустить всё как в гайде, вот только как сделать чтобы на сайт можно было попасть не через localhost (то есть не из компа, на котором размещённый сам сайт)? Сайт хочу разместить на VDS сервере.

    1. Добрый день.
      Разницы никакой. localhost — такое же доменное имя, которое разрешается в локальный IP-адрес, как и любое другое доменное имя, которое разрешается в любой другой IP-адрес.
      Если планируете использовать сайт на VPS, то вам еще нужен домен. Обычно зарегистрировать домен можно у того же регистратора, где и VPS. A-запись домена должна указывать на IP-адрес вашего VPS (это делается в настройках домена).
      А далее никакой разницы нет. Все зависит от операционки на VPS. Если планируется использовать один единственный сайт, а не несколько, то просто разместите файлы в /var/www/html (если VPS на Linux) и все должно заработать.
      Если сайтов несколько — используйте виртуальных хосты. В Debian управление виртуальными хостами немного отличается от Windows. Для каждого виртуального хоста создается свой файл в каталоге /etc/apache2/sites-available. Затем необходимо включить необходимые виртуальные хосты (по умолчанию все они выключены) путем создания символических ссылок на файлы с конфигами из каталога sites-avaiable в каталог sites-enable.

      1. Допустим у меня есть домен mydomen.tk (бесплатный регистратор), когда я регистрирую домен — указываю IP. А надо ли в файле hosts прописать что-то типа 127.0.0.1 mydomen.tk?

        1. Ничего не нужно. В hosts Вы прописывали «костыль», чтобы ваш браузер знал, что адрес, который вы вводите — находится на локальном компьютере.
          Это было исключительно для отладки сайта на локальной машине. Ведь статья про то, как поднять локально и локально работать над проектом.
          В реальной жизни за это отвечает DNS и никогда никакие hosts трогать не нужно.
          Это если Вы на домашнем компьютере собрались отлаживать работу сайта, тогда вы в hosts пропишите: 127.0.0.1 mydomen.tk
          И после этого все запросы браузера на адрес mydomen.tk будут приходить на локальный адрес 127.0.0.1, а не в интернет

  78. Спасибо! Годный гайд, даже для деревянных, как я)) Все по полочкам. Появился вопрос, как добраться до сервера из WAN’а. После 2 минут гугла понял, что дело это будет не из простых, т.к. выделенного внешнего адреса провайдер не выдал. Есть тут где-то статья по этому поводу? Спасибо еще раз.

    1. Добрый день.
      Получайте белый статический адрес у провайдера или, если есть белый динамический, используйте DynDNS и подобные сервисы.
      Ну а дальше зависит все от построения внутренней сети. Если белый адрес прям на сервере с Apache, то ничего более делать не нужно — заходите по белому адресу на сайт точно так же, как на localhost. Можете еще домен приобрести себе, чтобы не по IP заходить, а по домену.

  79. При попытке зайти на виртуальный HOST s1.localhost выдается следующая ошибка:
    While trying to retrieve the URL: http://s2.localhost/

    The following error was encountered:

    Unable to determine IP address from host name for s2.localhost
    The dnsserver returned:

    Name Error: The domain name does not exist.
    This means that:

    The cache was not able to resolve the hostname presented in the URL.
    Check if the address is correct.
    Your cache administrator is webmaster.
    На localhost без ошибок.

    1. Странное поведение. Непонятно, причем здесь dnsserver, если информация о localhost прописана в файле hosts.
      Проверьте свой файл hosts на наличие строки
      127.0.0.1 s1.localhost
      Вообще-то достаточно просто строки
      127.0.0.1 localhost
      но на всякий случай проверьте и добавьте конкретно полностью адрес.
      Если найдете в чем была причина — сообщите пожалуйста.

  80. Денис, добрый день!
    Все сделал по инструкции, но при переходе на s1.localhost и s2.localhost выдает «It works», а должно быть, как я понимаю, S1 и S2, соответственно. Где может быть ошибка?

    1. Сегодня я получил совсем другие результаты. s1.localhost — S1; s2.localhost — S2; localhost — так же S1.
      Localhost/index.php — not found. Добавил так же PhpMyAdmin, выдает это — The mbstring extension is missing. Please check your PHP configuration. Прошу помочь

      1. Добрый день.
        Для проверки работоспособности виртуальных хостов, мы разместили в каждый из них файл index.html с содержимым S1 и S2 соответственно. Никаких index.php там нет. Поэтому и not found.
        Когда Вы включаете функционал виртуальных хостов, то основной DocumentRoot из httpd.conf уже не имеет значения, как и сама папка.
        Теперь что касается The mbstring extension is missing — это означает, что не установлено расширение mbstring. Просто раскомментируйте соответствующую троку в файле php.ini и перезапустите Apache
        Строка: extension=php_mbstring.dll

  81. Добрый день. Спасибо за инструкцию, она очень хорошая. По мере установки возникла следующая проблема: после того, как в php.ini подключаются модули, Apache перестает запускаться.
    речь идет о связке Apache 2.4.18+ PHP 7.0.0.1+MySQL5.7.1
    Работал по инструкции для PHP7. ОС: Windows 8.1 Pro x64
    Заранее спасибо

  82. Денис, спасибо за статью. У меня был опыт работы с Apache 2.2. Решил обновиться, возникла следующая проблема. Apache 2.4 запускается без ошибок, но не работают модули php, в частности mysqli. В php.ini модуль подключается, cli версия php отрабатывает нормально, а в связке с apache вот такая ошибка: Fatal error: Class ‘mysqli’ not found in D:\web\www\php-test\sql.php on line 54. Модуль php подключается, phpinfo() выводит, но когда касается mysql ситуация непонятная. ОС Windows 7 64-bit, Apache сборка launge 2.4.17. И Apache и php пробовал разной разрядности, и 32-bit и 64-bit. PHP 5.6.16. Может сталкивались с подобными ситуациями, или посоветуйте форум, на котором опытные специалисты в этих вопросах имеются.

      1. Может быть мне повезло, но мне никогда не приходилось сталкиваться с подобной проблемой.
        Давайте уточним. Проблема в конфиге httpd.conf заключается в том, что подключение модуля директивой LoadModule должно осуществляться в конце файла после указания AddHandler и PhpIniDir, а не перед? Верно?

    1. Добрый день, Александр.
      Проверьте, чтобы в httpd.conf был указан путь к php.ini при помощи опции PHPIniDir
      Также проверьте, чтобы в php.ini был указан путь к каталогу с расширениями при помощи опции extension_dir — лучше укажите абсолютный путь.
      Посмотрите внимательно вывод phpinfo, найдите там пути к php.ini и расширениям.
      Строки вывода phpinfo():
      Loaded Configuration File
      extension_dir
      Форум, к сожалению, не посоветую. Не знаю, на каком форуме сейчас могут действительно помочь.

      1. Спасибо, что оперативно откликнулись. Расширения и путь к php.ini были указаны верно. Проблема была в другом. Указал директиву LoadModule после AddHandler и PhpIniDir (от безысходности уже) и модули в php заработали:). На каких версиях вы тестировали настройки описанные в статье? И ещё вопрос, зачем в переменной среды PATH указывать пути к Apache? Удалил всё, apache запускается нормально. Путь к php требуется, если к расширениям php указан относительный путь. Если указать абсолютный, как вы посоветовали, то работает и без пути к php в Path.

        1. Путь к Apache нужен как минимум для удобства работы с консоли. Если это больше нигде не пригодится, то по крайней мере с консоли очень удобно писать httpd без абсолютного пути. Но это скорее всего мало кому пригодится.
          Что касается пути к PHP, то это на самом деле важно. Некоторые расширения, как например curl, требуют указания пути к php в системной path. Когда-то на этом обжегся. Ну и опять же, удобно запускать разные сценарии, тот же композер и т.д.
          Настройки, описанные в статье, тянутся уже много лет в моих заметках, иногда что-то незначительно изменяется, но не настолько, чтобы совсем все перестало работать.
          Совсем недавно я это оформил из своих заметок в статью, которая, как показывает практика, пригодилась достаточному количеству программистов.
          Недавно я сделал новую статью по установке и настройке Apache VC14 + PHP7, там тоже совсем минимальные изменения, но они есть. Опытный пользователь смог бы обойтись и без новой статьи.
          У меня была мысль про ваш модуль LoadModule, но если бы Вы его указали неверно (путь к модулю, например), то у вас вообще РНР не работал бы из Apache. Странно.

  83. Все поставил как вы здесь описали, все работает. Спасибо! Основная проблема была с IIS. Если она у вас не установлена, установите, и тогда все заработает.

  84. Делал четко как написанно, на моменте с

    Устанавливаем сервис Apache (от имени Администратора). Открываем командную строку от имени Администратора и вставляем туда следующую строку:

    D:\USR\apache\bin\httpd.exe -k install

    Выдает вот это.

    [mpm_winnt: error] [pid 4852:tid116] AH00433 Apache 2.4 Service is already installer

      1. Здравствуйте, Денис.
        Может и мне поможете…
        Три недели безуспешного чтения по форумам и сайтам и нет результата:
        windows 7
        denwer 3
        Apache 2.4 -win32-VC14 настроил — запускается и работает
        php-7.0.6-Win32-VC14-x86 не могу настроить, уже нет сил!!!
        При попытке перейти http://localhost/index.php выдает:

        The requested URL /index.php was not found on this server.
        И что я уже не менял, что не настраивал — ничего не могу сделать, главное причину понять так и не удалось.
        Могу предоставить настройки из файлов:
        httpd.conf
        php.ini
        Помогите пожалуйста, если можете.
        Заранее спасибо.

          1. Да Денис, Вы правильно поняли. Один файл открывается, другой — нет!!!
            Очень странное поведение файлов…
            Но неожиданно вопрос решился, сам.
            Несколько раз поменял расширение файла «php» на «txt», потом на «html», потом снова на «php» и вдруг все заработало…
            Теперь http://localhost/index.php открывается, как положено.
            Так и не понял, почему он сразу не открывался.
            Спасибо большое, что ответили и попытались помочь. Спасибо !!!

  85. Почему-то с Apache 2.4 не переключается язык страницы http://prntscr.com/8ketau , в Apache 2.2 все работало. Поискал в нэте, вроде как пишут что это связано с изминениями глобальных переменных.
    Добавил в «index.php» во вторую строку:
    $appservlang = $_GET['appservlang'];
    тогда язык переключается, но при первом открытии появляется ошибка — «Notice: Undefined index: appservlang in D:\USR\www\index.php on line 2». Если нажать переключение языка, ошибка пропадет и не появляется даже при обновлении страницы. И только если страницу закрыть и открыть снова, ошибка вновь появляется. Что я не так делаю ?

    1. При первом вызове index.php параметры GET отсутствуют. Поэтому экранируйте присваивание например так:
      if (array_key_exist('appservlang', $_GET)) {
      $appservlang = $_GET['appservlang'];
      }

          1. Точно :) Теперь все работает. Спасибо.
            Хотя возможно это и не правильно :

            if (array_key_exists('appservlang', $_GET)){
            $appservlang = $_GET['appservlang'];
            }
            if (empty($appservlang)){
            $appservlang = getenv("HTTP_ACCEPT_LANGUAGE");
            }
            switch ($appservlang)
            {
            case "ru" :
            include("appserv/lang-rus.php");
            break;
            case "en" :
            include("appserv/lang-english.php");
            break;
            case "th" :
            include("appserv/lang-thai.php");
            break;
            default :
            include("appserv/lang-rus.php");
            break;
            }

  86. Установил, все работает, спасибо. Устанавливал под windows 10. ApacheMonitor добавил в автозагрузку, но он не запускается вместе с системой, ни кто не знает в чем может быть причина ?

  87. Спасибо !
    Апач заработал!
    Очень правильный текст, ничего лишнего и все становится понятно по ходу выполнения.
    Тренируемся, и ждем следующего текста, про то как сделать сервер защищенным.
    Надоело платить за хостинг.

  88. Здравствуйте. В принципе все доступно и понятно. Установилось. Но вот PHPAdmin не хочет работать. При вводе http://myphpadmin.localhost/ в браузере появляется ошибка: phpMyAdmin — Error
    The mbstring extension is missing. Please check your PHP configuration. Полазил в интернете — проблема есть у многих, но решения так и не нашел. Что это может быть? Винда 7 (64разрядная). Строка соответствующая в php.ini раскомментирована. Помогите.

    1. Добрый день.
      Если в php.ini раскоментирована строка extension=php_mbstring.dll, тогда я затрудняюсь ответить в чем может быть проблема.
      Выполните в консоли команду php -m
      В списке расширений отыщите mbstring, если его нет, то проверьте наличие файла php_mbstring.dll в папке ext
      Как вариант убедитесь, чтобы apache и php были одинаковой разрядности, хотя иначе apache не запустился бы с ошибкой.

      1. Спастбо за ответ. Причина была в названии файла. Он у меня назван был php.ini+расширение ini (php.ini.ini). А сервир видимо ссылался на конкретный файл php.ini. Поменял имя — все заработало.

  89. Я поставил Web-сервер по вашей инструкции. Можно ли его выпускать в интернет, или нужно еще что-то прикрутить для повышения безопасности?

    1. Необходимы небольшие изменения и понимания механизма работы сервера, чтобы настроить как нужно.
      В приведенной конфигурации нет абсолютно никакой защиты — это нужно для разработки. В интернете могут возникнуть проблемы с безопасностью. Поэтому, как минимум:
      Используйте php.ini-production в качестве базового конфига для PHP. В статье рекомендуется использовать базовый конфиг для разработки php.ini-development.
      В виртуальных хостах или в файлах .htaccess не забудьте запретить просмотр файлов каталогов опцией
      Options -Indexes
      Это минимум, что нужно сделать.

      1. В таком случае напишите дополнительную статью о том, как это делается. До файла php.ini-production я сам допер. Что в нем нужно поправить? Желательно в инструкции укажите примеры.

        1. Поправьте часовой пояс — это самое главное. Остальное там уже настроено для продакшена.
          Если Вы сам программист — значит никто другой кроме Вас не может знать какие параметры нужно изменить для работы Вашего кода. Если Вы будете использовать сторонний код, то чаще всего разработчики позаботились и указали необходимые параметры php.ini в процессе инсталляции этого чужого кода. Например в WordPress во время инсталляции выводятся параметры, которые необходимо изменить в php.ini
          Что касается Apache, то тут все серьезней и в одну статью не уместиться. Все зависит от количества желающих взломать ваш сайт. За одну статью этого не рассказать.
          Могу точно сказать, что большинство сайтов в интернете работает на стандартных настройках безопасности, так как безопасность обычно вынесена в файл .htaccess самого сайта, а не настраивается на сервере.
          Удачи.

  90. Подключаю вот так модуль LoadModule php5_module «d:/USR/php/php5apache2_4.dll»

    Проверяю версию и опять остается версия 5.4.24, хотя пробовал ставить Версии 5.5 и 5.6

    В чем там прикол?

    Плз в личку если можно vk com id31245451

  91. Подключаю вот так модуль LoadModule php5_module «d:/USR/php/php5apache2_4.dll»

    Проверяю версию и опять остается версия 5.4.24, хотя пробовал ставить Версии 5.5 и 5.6

    В чем там прикол?

    Плз в личку если можно vk.com/id31245451

  92. Переставил PHP, причем ставил тот в кот присутствует php5apache2_4.dll, переставил Apache. C LocalHost — все правильно стал отображать, но как только начинаю настраивать PHP и прописываю

    LoadModule php5_module “d:/USR/php/php5apache2_4.dll”
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir “D:/USR/php”

    Apache пере стает запускаться — теперь в логах пишет следующее

    httpd.exe: Syntax error on line 1 of D:/USR/apache/conf/httpd.conf: Cannot load d:/USR/php/php5apache2_4.dll into server: %1 \xed\xe5 \xff\xe2\xeb\xff\xe5\xf2\xf1\xff \xef\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xe5\xec Win32

    И почему он не может загрузить ……

    1. Судя по всему, мне сложно будет Вам что либо подсказать, так как следуя из цепочки Ваших вопросов, у вас непредсказуемое положение дел на компьютере. Если Вы качали все по тем ссылкам, которые я привел, то все однозначно должно заработать. Если у вас Апач не находит файл по указанному пути, значит его там попросту нет. Еще может быть, что у вас 32 радрядная ОС, а Вы пытаетесь запустить 64 разрядных РНР. РНР из этой статьи не инсталлируется. Нужно просто извлечь файлы из архива и все. Если вы его именно инсталлируете, значит скачали не ту версию, о которой я писал. В указанном в статье архиве с РНР обязательно есть файл php5apache2_4.dll под Апач VC11. Другие версии не подойдут. Только те, что приведены в статье. Не качайте самые последние версии, они скорее всего не заработают.

  93. Файла php5apache2_4.dll изначально в папке не было — вытянул из инета, подсунул по указанному адресу — то же самое

  94. В браузере заходим на http://localhost/ – должны увидеть It works! — А я вижу картинку в которой наеписано IIS7 , выключил службу IIS7 — тоже самое. Че не так ?

    1. Значит не включили службу IIS. Раз она еще работает и отдает вам страницу из своих настроек. Apache не должен был запуститься и, скорее всего, не запустился, так как 80 порт у вас был занят службой IIS.

      1. Так с IIS разобрался , Apache стартует НО, при входе на localhost — пишет веб-страница недоступна, и кстати когда начинаю настраивать PHP, прописываю

        2
        3
        4
        LoadModule php5_module «d:/USR/php/php5apache2_4.dll»
        AddHandler application/x-httpd-php .php
        # Путь к файлу php.ini
        PHPIniDir «D:/USR/php»

        после этих настроек Apache перестает запускаться, пишет — The requested operation has failed.

        1. В логах пишет

          httpd.exe: Syntax error on line 1 of D:/USR/apache/conf/httpd.conf: Cannot load d:/USR/php/php5apache2_4.dll into server: \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.

          Вот только не могу понять где ошибка синтаксиса :(

  95. Денис, День Добрый!
    Сделал все как ты написал в «Букваре», и вот на п.6 все остановилось (D:\USR\apache\bin\httpd.exe — install не запускается, висит и все даже курсор не моргает). Что сделать?

    1. Сергей, у Вас в комментарии неправильная команда.
      D:\USR\apache\bin\httpd.exe -k install
      Ваша команда запустила сервер, а не вызвала установку службы. Проверьте еще раз синтаксис. Вы пропустили -k

        1. Совершенно верно. Вы запускаете сервер httpd и он начинает работать. В консоль ничего не выводится при этом и командная строка не появляется.
          А Вам нужно установить службу Apache. Это можно сделать, если указать параметр -k install. Просто скопируйте строку из инструкции.

  96. При попытке запуска apache выскакивает ошибка : запуск программы невозможен так как отсутствует VCRUNTIME140.dll . Как это можно исправить?

    1. Андрей, извините, но я никогда не сталкивался с такой проблемой. Даже гугл не нашел связи между отсутствием этой библиотеки и сервером Apache. Как вариант, попробуйте просто скачать эту библиотеку из сети и сохранить в папку C:\Windows\System32

      1. Я столкнулся с такой проблемой сегодня, гугл также помочь не смог. Помогла смекалка, вроде как :)
        Нужно обновить microsft visual c++. Сразу решило проблему.

          1. Честно скажу — не знаю, извините. У меня автообновление системы отключено, появилась проблема — появилась идея в голове про VC = Visual C++ .’RUNTUME140\.dll’ , обновил Visual C++ — проблема пропала.
            Кстати, спасибо за прекрасную статью! Пользуясь только англоязычной документацией новичку не понятно, что куда пихать и как делать .

    2. Нужно поставить пакет VC++ 2015 redistributable (13-14Mb). Взять можно на официальном сайте Microsoft. Это требование практически любой программы, скомпилированной с помощью VC++ 2015. Если хоть одна таковая программа у вас уже установлена, в её составе ставится указанный пакет и требование не вылезет.

    1. Свойства системы (в зависимости от версии Windows можно вызвать разными способами, например правой кнопкой на «Компьютер» — дадее «Свойства» — далее «Дополнительные параметры системы» или же через панель управления, в Windows 8 и новее просто правой кнопкой по флажку «Пуск» и там — «Система» — «Дополнительные параметры системы»).
      В этом окошке на вкладке «Дополнительно» внизу есть кнопка «Переменные среды».
      В открывшемся окошке есть нижний блок «Системные переменные», среди которых есть Path. Кликаем по ней мышкой, нажимаем кнопку «Изменить» и не стирая написанного, аккуратно, в конец добавляем строку, приведенную в статье. Во всех окнах в обратном порядке жмем ОК.
      После этого желательно перезагрузить компьютер, иначе значение может не обновиться автоматически в системе.

  97. Денис, а можешь пожалуйста написать еще гайд для phpmyadmin? Что бы всё было с твоими папками типа s1.lcl и т.п. Если не сложно

    1. Я не пользуюсь myphpadmin. А в чем собственно сложность? Процесс добавления сайта описан в пункте 10 раздела про виртуальные хосты.

      1. Создаете папку D:\USR\www\myphpadmin.localhost и разархивируете в нее скрипт myphpadmin, чтобы индексный файл находился именно в этой папке, а не в подпапке

      2. В файл c:\Windows\System32\drivers\etc\hosts добавляете строку
      127.0.0.1 myphpadmin.localhost

      3. В файл d:\USR\apache\conf\extra\httpd-vhosts.conf добавляете блок для нового сайта:

      <VirtualHost *:80>
      ServerAdmin webmaster@myphpadmin.localhost
      DocumentRoot "D:/USR/www/myphpadmin.localhost"
      ServerName myphpadmin.localhost
      ServerAlias www.myphpadmin.localhost
      ErrorLog "D:/USR/log/myphpadmin.localhost/error.log"
      CustomLog "D:/USR/log/myphpadmin.localhost/access.log" common
      </VirtualHost>

      4. Создаете папку для логов: D:/USR/log/myphpadmin.localhost

      5. Перезапускаете апач :)

      6. Пробуете зайти по адресу http://myphpadmin.localhost/
      Всё должно работать.

      1. Денис, получается создавая сайт нужно файлы раскидывать по директориям которые ты указал? То есть создавая хост с названием test2.ru получается его путь будет выглядить как D:\USR\www\test2.ru?

        1. Да.
          Но Вы можете задавать любые имена папок в пределах D:\USR\www\
          Главное, чтобы этот путь Вы корректно указали в файле vhosts.conf, когда будете настраивать виртуальный хост.
          В этой статье было указано имя папки такое же как и url, чтобы облегчить понимание и ускорить получение результата.
          И все же, если Вы будете задавать имена папкам такие же как адреса сайтов, то это будет только помогать Вам в дальнейшей работе.

          1. Здраствуйте! Большая благодарность вам за вашу статью очень простая и доходчевая всегда скидаю людям силки на вашу статью.
            Но возникла проблема при установки MyPHPadmin.
            1.Ошибка:
            phpMyAdmin — Error
            The mbstring extension is missing. Please check your PHP configuration.
            Я ее исправил. За ней последовала.
            2.Ошибка:
            №2002. Сервер не отвечает (или локальний сокет сервера MySQL неверно настроений).

            Увидел то что имя хоста в примере прописано myphpadmin.localhost, а небудет ли ето связано с моей ошибкой если я прописал.

            ServerAdmin webmaster@admin
            DocumentRoot «D:/USR/www/admin
            ServerName admin
            ServerAlias http://www.admin
            ErrorLog «D:/USR/log/admin/error.log»
            CustomLog «D:/USR/log/admin/access.log» common

            Зарание благодарин. Извеняюсь за свой русский.;)

            1. Добрый день.
              Если Вы пытаетесь зайти на myphpadmin.localhost, то и виртуальный хост должен быть настроен так:
              ServerName myphpadmin.localhost
              ServerAlias можете не использовать

  98. Could not reliably determine the server’s fully qualified domain name using. Set the Server Name directive globally to suppress this message

    Сразу же после запуска httpd. Уже менял локал хост на 81 и на 127.0.0.1 хз что такое одно и тоже все время пишет

      1. И тут же еще одна :)

        когда ввожу
        LoadModule php5_module «d:/USR/php/php5apache2_4.dll»
        AddHandler application/x-httpd-php .php
        # Путь к файлу php.ini
        PHPIniDir «D:/USR/php»

        Апач перестает запускаться, то есть я делаю рестарт, а он мне выдает ошибку. В чем проблема?

        1. Добрый день, Влад! Вы так быстро решаете проблемы, что я даже не успеваю отвечать :)
          Апач перестал запускаться — смотрите лог ошибок. Скорее всего неверные пути к модулям. Убедитесь, что модуль и конфиг присутствуют по указанному пути.
          Еще обращу Ваше внимание на кавычки. В приведенном Вами куске конфига стоят неправильные кавычки. У вас там «лапки», а должны быть «программистские». Просто перебейте символы кавычек с клавиатуры.

          UPD: Отправил комментарий и увидел, что это блог автоматически исправляет кавычки, так что скорее всего они у вас правильные, но все равно проверьте.

      2. Автор ошибся с названием PHP. Если скачать версию Thread Safe, то в ней нет модуля php5apache2_4.dll, и естественно возникает ошибка при запуске. Замените PHP на версию Non Thread Safe и все заработает без ошибок.

        1. Извиняюсь, ни автор ошибся, а я, видимо так же как и Влад скачал по ошибке не тот файл. Действительно модуль php5apache2_4.dll есть только в Thread Safe.

  99. Приветствую. Сделал все, как у вас в статье.
    Сначала все работало. Но после установки MySQL57 на доменах стало выдавать ошибку
    Forbidden
    You don’t have permission to access / on this server.
    В чем может быть дело?
    Спасибо.

    1. Павел, MySQL никаким образом не относится к данной ошибке.
      Такое поведение WEB-сервера может возникнуть, если для DocumentRoot или для виртуального хоста или в файле .htaccess неверно указаны права доступа к директории.

    2. В httpd-vhosts.conf , который ты подключил, раскомментировав строчку Include conf/extra/httpd-vhosts.conf
      в httpd.conf , NameVirtualHost *:80 и подкорректируй пути)))

  100. Проблему решил. Нашел вот на одном форуме: «в httpd.conf ищи параметр «Listen 80″ и поменяй, на 81, например.». Поменял — сразу запустился без ошибки

    1. У меня теже яйца при первом старте случились. Прописал Listen 81 — прокатило, и кстати да — вырубаешь скайп, работает при параметре 80

  101. Устанавливал по порядку до момента ApacheMonitor => Start. Выдало ошибку: The requested operation has failed. Полностью переустановил виндовс (win7 x64 — были и поставил ее же, но сборки разные). Дошел до той же ошибки. Что здесь не так?

    1. Зайди Пуск > Панель Управления > Администрирование > Просмотр событий > Журналы виндовс > Приложения, и там будет самое верхнее Ошибка Apache Service. Дальше смотри что тебе нужно :)
      P.S. Ещё раз запусти Apache до всего этого.

Прокомментировать