Apache 2.4 + PHP 5.6 + MySQL 5.6 на Windows 7, 10 #
В статье описывается установка Apache 2.4 + PHP 5.6 + MySQL 5.6 на операционную систему Windows 7 / 8 / 8.1 / 10
Данная инструкция будет полезна начинающим WEB-разработчикам, которые собираются установить на своем ПК с ОС Windows WEB-сервер Apache с интерпретатором PHP последних версий. Конечно же, намного проще установить сборку, наподобие Denwer или прибегнуть к использованию инсталляторов и не париться по поводу настроек. Однако каждый WEB-разработчик обязан понимать процесс работы WEB-сервера, процесс его установки и настройки.
Если Вы хотите установить PHP 7, то после прочтения этой статьи обратитесь к этой статье.
Если в процессе сборки сервера по этой инструкции Вы столкнулись с проблемами и все еще считаете себя WEB-разработчиком, то будет правильным шагом разобраться в возникших проблемах, а не писать в комментарии что инструкция говно. Инструкция рабочая. Проверено временем и сотнями инсталляций. Будьте внимательней при выполнении простых шагов. Выполнение шагов вручную и разбор ситуаций, если не заработало, добавит Вам skill как разработчику. Если Вы не WEB-разработчик и не планируете им быть, то подыщите простой способ установки в интернете — данная инструкция не для Вас.
Обратите внимание, что под Windows XP данные версии VC11 запустить будет невозможно (или крайне затруднительно).
Подготовительные работы #
Убедитесь, что у вас именно Windows 7 или новее. Если у Вас Windows XP, данная инструкция не поможет Вам, так как описанная здесь версия Apache не работает под Windows XP.
Удалите все WEB-серверы, которые устанавливали до этого, зайдите в службы и убедитесь, что там нет служб Apache или IIS. Если у вас уже установлен какой-либо веб-сервер, второй параллельно скорее всего не заработает вовсе.
Если у Вас есть Скайп, обязательно отключите в настройках использование 80 порта. В конечном итоге Вы должны убедиться, что ни одна служба не использует 80й порт.
Для работы очень желательно иметь файловый менеджер, позволяющий создавать файлы с любыми расширениями, либо, что еще лучше, редактор кода, наподобие Sublime Text или Notepad++ или полноценную IDE.
Структура папок может быть различной, однако данная инструкция написана под определенную структуру и, если ей следовать, всё гарантированно заработает.
Перед тем как начать, создайте на диске D папку USR, внутри которой создайте 5 подпапкок: apache, php, tmp, www, log. Именно так. Без указания номеров версий.
В каталоге www создаем индексные файлы (при помощи файлового менеджера или редактора кода), которые будут нужны для проверки того, что все работает:
- index.html с содержимым:
It works!
- index.php с содержимым:
<?php phpinfo(); ?>
В системную переменную PATH добавляем:
;D:\USR\apache;D:\USR\apache\bin;D:\USR\php;
Замечания! #
Приведенные в примерах конфигурационных файлов номера строк могут отличаться для других версий apache и php. Все команды, включая редактирование файлов, должны осуществляться от имени Администратора.
Установка Apache 2.4 #
Хотя для простой разработки на PHP и нет необходимости в отдельном WEB-сервере (в PHP встроен собственный WEB-сервер, которого почти всегда достаточно для разработки одного проекта), все же рекомендуется произвести установку и настройку WEB-сервера Apache, хотя бы потому, что программист обязан знать эти тонкости. В конечном итоге придется работать с WEB-сервером и придется разбираться с его конфигурацией. Так что приступим.
- Загружаем Apache 2.4 binaries VC11 под свою систему по ссылке http://www.apachelounge.com/download/VC11/ Скорее всего у Вас 64 разрядная ОС, поэтому Вам понадобится файл с именем, наподобие httpd-2.4.xx-win64-VC11.zip
- Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
- Разархивируем содержимое папки Apache24 из скаченного архива в
D:\USR\apache
. Обратите внимание, что вD:\USR\apache
нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется - В файле D:\USR\apache\conf\httpd.conf изменяем значение
ServerRoot
на"d:/USR/apache"
(строка 37) и значениеDocumentRoot
(иDirecroty
) на"d:/USR/www"
(строки 242 и 243). Так же следует раскомментировать строку 218 и изменить ее на:ServerName localhost:80
- Изменяем параметры хранения логов в том же файле (находим параметры и изменяем):
ErrorLog "D:/USR/log/apache-error.log" CustomLog "D:/USR/log/apache-access.log" common
- Устанавливаем сервис Apache (от имени Администратора). Открываем командную строку от имени Администратора и вставляем туда следующую строку:
D:\USR\apache\bin\httpd.exe -k install
- Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
- Создаем на рабочем столе ярлык для
D:\USR\apache\bin\ApacheMonitor.exe
и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8 необходимо нажать WIN+R, затем ввестиshell:Startup
и нажать ОК) - Запускаем «ApacheMonitor». В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start
- В браузере заходим на http://localhost/ - должны увидеть It works!
- Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)
Установка PHP 5.6 #
- Загружаем последнюю версию 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
- Извлекаем содержимое архива в
D:\USR\php
. Как в случае с Apache, инсталлировать ничего не требуется - В файл 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"
- И изменяем значение
DirectoryIndex
наindex.html index.php
(строка 276) - Используя «ApacheMonitor» перезапускаем Apache (Apache24 -> Restart)
- Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает.
- Делаем копию файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini
- Пользуясь поиском находим, раскомментируем и изменяем параметры:
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
- Выполняем в командной строке
php -m
чтобы просмотреть список подключенных модулей. - Перезапускаем Apache используя «ApacheMonitor»
Виртуальные хосты в Apache #
- Если на компьютере производится отладка нескольких проектов, то могут понадобиться виртуальные хосты (сайты). На примере будем рассматривать два виртуальных хоста:
s1.localhost
иs2.localhost
. Для удобства будем создавать папки с такими же названиями, что совсем не обязательно в реальной системе. - Следует учесть, что при использовании виртуальных хостов, параметр
DocumentRoot
конфигурационного файла Apache более не имеет смысла. Основным хостом сервера (который будет доступен по адресу http://localhost/) теперь является первый виртуальный хост в конфигурационном файле виртуальных хостов! - Для начала необходимо добавить в файл
c:\Windows\System32\drivers\etc\hosts
строки:
Делать это нужно от имени Администратора. Желательно после этого перезагрузиться, но на практике этого не требовалось. Если изменить файл не удается (права доступа), вы можете скопировать его на рабочий стол, изменить, а затем скопировать обратно.127.0.0.1 s1.localhost 127.0.0.1 s2.localhost
- Создаем папки для виртуальных хостов
D:\USR\www\s1.localhost
иD:\USR\www\s2.localhost
, в которых будут располагаться файлы. В каждой из папок создаем файлindex.html
с содержимымS1
иS2
соответственно (для контроля того, что все работает как нужно) - Затем создаем папки для логов:
D:\USR\log\s1.localhost
иD:\USR\log\s2.localhost
— тут будут храниться логи каждого из сайтов. Вообще-то, логи можно хранить в одной папке, но я привык делать так — мне так более удобно. - Далее необходимо включить поддержку виртуальных хостов. В файле D:\USR\apache\conf\httpd.conf раскомментировать строку
Include conf/extra/httpd-vhosts.conf
- Далее редактируем файл 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>
- Первый виртуальный хост s1.localhost теперь будет основным хостом системы, т.к. его блок следует первым в конфигурационном файле, т.е. будет доступен при входе на http://localhost/
- Перезапускаем Apache используя ApacheMonitor и заходим по очереди на http://s1.localhost/ и http://s2.localhost/.
- Итак. Для добавления нового виртуального хоста будет достаточно: создать папку для файлов хоста в D:\USR\www, создать папку для логов хоста в D:\USR\log, прописать имя хоста в файле hosts, добавить блок
VirtualHost
в файл конфигурации виртуальных хостов.
Установка MySQL 5.6 #
- Загружаем MySQL Installer MSI (mysql-installer-community) по ссылке: http://dev.mysql.com/downloads/windows/installer/5.6.html
- Во время установки на этапе Choosing a Setup Type выбираем: Custom, затем удаляем из устанавливаемых продуктов всё (в правой колонке), за исключением самого MySQL сервера (автоматически будут добавлены необходимые обязательные модули). Проще удалить все и добавить только сервер — все необходимые компоненты при этом добавятся сами
- Запускаем установку, нажав на Execute в следующем окне
- После установки сервера нажимаем несколько раз Next и переходим к конфигурированию сервера
- Выбираем тип Development Machine, опции оставляем как есть и нажимаем Next
- Устанавливаем пароль основного пользователя root (обязательно) — здесь же можно добавить пользователей, но пока этого делать не нужно, нажимаем Next
- Указываем, нужно ли сделать так, чтобы сервер запускался автоматически со стартом Windows (у меня автозапуск выключен, т.к. локальный MySQL-сервер используется только для отладки в очень редких случаях), нажимаем Next
- апускаем конфигурирование кнопкой Execute. Всё должно пройти успешно, после чего нажимаем Next и затем Finish
- Установка сервера MySQL завершена. Поздравляем!
- Если вы оставили в настройках автозагрузку сервера, то более ничего делать не нужно. Сервер MySQL будет запускаться автоматически вместе со стартом операционной системы Windows. Иначе придется запускать сервер из окна Службы панели Управления компьютером Windows (или написать свой минискрипт для запуска и остановки службы). Я работаю на ноутбуке и постоянно запущенный сервер мне не нужен (расход ресурсов).
- Для работы с 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.