Сербия 11400 Младеновац, ул. Александра Обреновича, 72/21 Тел. +381 62 198 03 33, +381 63 763 10 96 (рус.)
Srbija 18230 Sokobanja, ul. Svetog Save 19 Tel. +381 18 884 111, +381 63 831 81 44 (srpski) 
Mail:   letter Skype:  skype
РФ Москва +7 968 011 39 85

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

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

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

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

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

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

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

Перед тем как начать, создайте на диске C папку TAMP, в которой создайте 5 подпапкок: apache, php, tmp, www, log.

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

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

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

;D:\TAMP\apache;D:\TAMP\apache\bin;D:\TAMP\php;

Как менять системную переменную можно посмотреть тут.

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

Установка Apache 2.4

Для простой разработки на PHP нет необходимости в отдельном WEB-сервере (в PHP встроен собственный WEB-сервер, которого почти всегда достаточно для разработки одного проекта).

  1. Заходим на страницу https://www.apachelounge.com/download/ и выбираем сборку Apache для Windows и разрядность
    VC14 сборка с Windows® Visual Studio C++ 2015 (VC14)
    VC11 Сборка с Visual Studio® 2012 Update 5 (VC11)
    Эту сборка нужна для PHP 5.6
    VC10 Сборка с Windows® Platform SDK 7.1 and Visual Studio C++ 2010 SP1 (VC10)
    Работает под XP и Vista
    Тут же можно скачать и дополнительные модули для Apache

    Загружаем Apache 2.4 binaries VC11 под свою разрядность по соответствующей ссылке и выбираем разрядность

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

Установка 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:\TAMP\php. Как в случае с Apache, инсталлировать ничего не требуется.
  3. В файл D:\TAMP\apache\conf\httpd.conf добавляем строки:
    LoadModule php5_module "d:/TAMP/php/php5apache2_4.dll"
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir "D:/TAMP/php"
    
  4. И изменяем значение DirectoryIndex на index.html index.php (строка 276)
  5. Используя ApacheMonitor перезапускаем Apache (Apache24 -> Restart)
  6. Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает.
  7. Делаем копию файла D:\TAMP\php\php.ini-development с именем D:\TAMP\php\php.ini
  8. Пользуясь поиском находим, раскомментируем и изменяем параметры:
    extension_dir = "D:/TAMP/php/ext"
    sys_temp_dir = "D:/TAMP/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:\TAMP\www\s1.localhost и D:\TAMP\www\s2.localhost, в которых будут располагаться файлы. В каждой из папок создаем файл index.html с содержимым S1 и S2 соответственно (для контроля того, что все работает как нужно)
  5. Затем создаем папки для логов: D:\TAMP\log\s1.localhost и D:\TAMP\log\s2.localhost — тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так — мне так более удобно.
  6. Далее необходимо включить поддержку виртуальных хостов. В файле D:\TAMP\apache\conf\httpd.conf раскомментировать строку Include conf/extra/httpd-vhosts.conf
  7. Далее редактируем файл d:\TAMP\apache\conf\extra\httpd-vhosts.conf — он должен выглядеть так (каждому виртуальному хосту свой блок VirtualHost):
    
        ServerAdmin Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
        DocumentRoot "D:/TAMP/www/s1.localhost"
        ServerName s1.localhost
        ServerAlias www.s1.localhost
        ErrorLog "D:/TAMP/log/s1.localhost/error.log"
        CustomLog "D:/TAMP/log/s1.localhost/access.log" common
    
    
    
        ServerAdmin Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
        DocumentRoot "D:/TAMP/www/s2.localhost"
        ServerName s2.localhost
        ServerAlias www.s2.localhost
        ErrorLog "D:/TAMP/log/s2.localhost/error.log"
        CustomLog "D:/TAMP/log/s2.localhost/access.log" common
    
    
  8. Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на http://localhost/
  9. Перезапускаем Apache используя ApacheMonitor и заходим по очереди на http://s1.localhost/ и http://s2.localhost/.
  10. Итак. Для добавления нового виртуального хоста будет достаточно: создать папку для файлов хоста в D:\TAMP\www, создать папку для логов хоста в D:\TAMP\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 сервера (автоматически будут добавлены необходимые обязательные модули). Проще удалить все и добавить только сервер — все необходимые компоненты при этом добавятся сами
  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. При помощи этого инструмента можно создавать пользователей БД и назначать права доступа. Возможно, есть более удобные и быстрые инструменты. Из всех, что я использовал, этот наиболее функциональный, хоть и не особо быстрый.
Если при старте Apache выдается ошибка об отсутствии библиотек типа VCRUNTIME140.dll и тому подобных, название которых содержит VC необходимо установить пакет Visual C++ с сайта Microsoft по ссылке.