Установка Apache + PHP + MySQL + phpMyAdmin в Windows 10
В статье рассказывается о том, как настроить связку Apache + PHP + MySQL + phpMyAdmin в Windows 10.
📖 Содержание ⬇️
Содержание
Данная статья является переработкой статьи 2014 года.
Скачивание файлов
Файлы скачиваете согласно битности вашей операционной системы.
Вначале надо скачать и установить (и возможно перегрузить комп) системную библиотеку от Microsoft. Конкретная версия будет зависеть от сборки Apache. Сейчас для Apache 2.4.35 Win64 нужна библиотека Microsoft Visual C++ 2015 Redistributable Update 3:
https://www.microsoft.com/en-us/download/details.aspx?id=53840

Рисунок 1 — Скачивание Microsoft Visual C++ 2015 Redistributable Update 3
Апач скачиваем не с официального сайта, а с другого, где есть скомпилированная под Windows версия Apache Lounge:
https://www.apachelounge.com/download/

Рисунок 2 — Скачивание Apache Lounge
Теперь перейдем к скачиваю PHP. Будьте очень внимательны. Надо скачать архив с последней версией PHP вашей битности в версии Thread Safe. Я вначале несколько раз не то скачивал и не понимал, почему не работает:
https://windows.php.net/download/

Рисунок 3 — Скачивание PHP
Для работы с базами данных скачиваем phpMyAdmin. На сайте только один вариант для загрузки:

Рисунок 4 — Скачивание phpMyAdmin
Скачиваем MySQL с сайта в виде установщика под Windows:
https://dev.mysql.com/downloads/installer/

Рисунок 5 — Скачивание MySQL
И да, у вас сайт попросит зарегистрироваться, чтобы вы могли скачать файл.
Структура папок
На диске C: (или на том, котором вы хотите разместить сервер) создаем папку Server в которую скидываем архивы Apache, PHP:

Рисунок 6 — Папка Server
В этой же папке создаем директорию htdocs, в которой создаем папки www и phpmyadmin. В последнюю копируем наш архив phpMyAdmin:

Рисунок 7 — Папка Server с директорией htdocs

Рисунок 8 — Папка htdocs

Рисунок 9 — Папка phpmyadmin
Установка Apache
В папке C:\Server разархивируем архив с Apache и оставим только папку Apache24, а файлы ReadMe.txt и -- Win64 VC15 -- (у вас может по-другому называться) удалим. Архив с Apache тоже удалим, так как он нам не нужен:

Рисунок 10 — Лишние файлы для удаления

Рисунок 11 — Содержимое папки Server
Ищем теперь файл C:\Server\Apache24\conf\httpd.conf и открываем его в любом текстовом редакторе:

Рисунок 12 — Файл httpd.conf
Ищем и меняем в нем строчку:
#ServerName www.example.com:80
Меняем на следующее значение:
ServerName localhost
Ищем и меняем в нем строчку:
Define SRVROOT "c:/Apache24"
Меняем на следующее значение:
Define SRVROOT "c:/Server/Apache24"
Ищем и меняем в нем строчку:
DocumentRoot "${SRVROOT}/htdocs"
Меняем на следующее значение:
DocumentRoot "c:/Server/htdocs/"
Ищем и меняем в нем строчку:
<Directory "${SRVROOT}/htdocs">
Меняем на следующее значение:
<Directory "c:/Server/htdocs/">
Ищем и меняем в нем строчку:
DirectoryIndex index.html
Меняем на следующее значение:
DirectoryIndex index.html index.php index.htm
Ищем и меняем в нем строчку:
#Include conf/extra/httpd-vhosts.conf
Меняем на следующее значение:
Include conf/extra/httpd-vhosts.conf
Теперь находим файл C:\Server\Apache24\conf\extra\httpd-vhosts.conf и открываем его.
Удаляем всё в нем. И вставляем туда следующие строчки:
<VirtualHost *:80>
DocumentRoot "c:/Server/htdocs/www"
ServerName localhost
ErrorLog "c:/Server/htdocs/www/error.log"
CustomLog "c:/Server/htdocs/www/access.log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/Server/htdocs/phpmyadmin"
ServerName phpmyadmin
ErrorLog "c:/Server/htdocs/phpmyadmin/error.log"
CustomLog "c:/Server/htdocs/phpmyadmin/access.log" common
</VirtualHost>
Теперь находим файл C:\Windows\System32\drivers\etc\hosts и открываем каким-нибудь блокнотом под администратором (иначе изменения при сохранении не сохранятся) и добавьте в него строчку:
127.0.0.1 phpmyadmin

Рисунок 13 — Файл hosts
Теперь запустим приложение C:\Server\Apache24\bin\httpd.exe. При этом может появиться запрос на разрешение к доступу к сетям. Разрешаем:

Рисунок 14 — Запрос от Брандмауэра Windows
Если вы видите ошибку, как на рисунке ниже, то вы не установили библиотеку от Microsoft, о которой говорилось в самом начале статьи:

Рисунок 15 — Сообщение об ошибке
Откроем браузер и введем http://localhost и жмем Enter. Если видим следующее, то всё хорошо:

Рисунок 16 — Первый запуск http://localhost
Создадим текстовой файл index.html в папке D:\Server\htdocs\www со следующим содержимым:
<!DOCTYPE html>
<html>
<body>
<h1>Localhost</h1>
<p>This is page in Localhost.</p>
</body>
</html>
И создадим текстовой файл index.html в папке D:\Server\htdocs\phpmyadmin со следующим содержимым:
<!DOCTYPE html>
<html>
<body>
<h1>PhpMyAdmin</h1>
<p>This is page in PhpMyAdmin.</p>
</body>
</html>
Теперь, если откроем в браузере http://localhost, то получим:

Рисунок 17 — Проверка доступности HTML файла по адресу http://localhost
А при заходе на адрес http://phpmyadmin получим вот это:

Рисунок 18 — Проверка доступности HTML файла по адресу http://phpmyadmin
Закрываем приложение httpd.exe. Тем самым мы закрыли наш созданный сервер. Сделаем так, чтобы сервер был всегда открыт при запуске системы.
Откроем командную строку под администратором. Через поиск находим программу Командная строка:

Рисунок 19 — Поиск приложения командной строки
Запускаем от имени администратора:

Рисунок 20 — Запуск от имени администратора

Рисунок 21 — Запущенная командная строка
Вводим там:
c:\Server\Apache24\bin\httpd.exe -k install
И нажимаем Enter:

Рисунок 22 — Установка службы Apache24
Служба Apache24 установилась. Теперь сервер будет всегда работать при работе операционной системы.
Закрываем командную строку (а можете и не закрывать: еще пригодится).
Открываем приложение C:\Server\Apache24\bin\ApacheMonitor.exe. В трее должна появится иконка:

Рисунок 23 — Иконка ApacheMonitor в трее
Щелкаем по ней и выбираем кнопку Start:

Рисунок 24 — Запуск сервера
Если иконка изменилась на зеленый квадратик, то всё в порядке:

Рисунок 25 — Сервер запущен
Если осталась с красной точкой, то проверьте все шаги. И проверьте: вы закрыли или нет httpd.exe.
Чтобы каждый раз не заходить в папку C:\Server\Apache24\bin для запуска ApacheMonitor.exe, то создайте где-нибудь ярлык к программе.
Установка PHP
Создадим папку PHP в папке C:\Server и туда разархивируем архив с PHP. Сам архив потом удалим:

Рисунок 26 — Содержимое папки с PHP
В конец файла C:\Server\Apache24\conf\httpd.conf (с которым мы уже работали) добавим в самом конце такие строчки:
PHPIniDir "C:/Server/PHP"
AddHandler application/x-httpd-php .php
LoadModule php7_module "C:/Server/PHP/php7apache2_4.dll"

Рисунок 27 — Файл httpd.conf
В папке D:\Server\htdocs\www удаляем файл index.html и добавляем текстовой файл index.php с таким содержимым:
<?php
phpinfo ();
?>
Перезапускаем сервер:

Рисунок 28 — Перезапуск сервера
И в браузере открываем http://localhost. Если видите такое, то всё в порядке:

Рисунок 29 — Результат работы PHP скрипта
В папке C:\Server\PHP файл php.ini-development переименуем в php.ini и откроем его в блокноте.
Находим в нем строчку:
; extension_dir = "ext"
И заменяем на:
extension_dir="C:\Server\PHP\ext"
Находим строчки:
;extension=bz2
;extension=curl
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
В этих строчках убираем точку с запятой в начале строк. То есть получим вот это:
extension=bz2
extension=curl
extension=fileinfo
extension=gd2
extension=gettext
extension=gmp
extension=intl
extension=imap
extension=interbase
extension=ldap
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
extension=oci8_12c ; Use with Oracle Database 12c Instant Client
extension=odbc
extension=openssl
extension=pdo_firebird
extension=pdo_mysql
extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite
extension=pgsql
extension=shmop
Аналогично поступаем со стоками:
;extension=soap
;extension=sockets
;extension=sqlite3
;extension=tidy
;extension=xmlrpc
;extension=xsl
То есть в них убираем также точку с запятой:
extension=soap
extension=sockets
extension=sqlite3
extension=tidy
extension=xmlrpc
extension=xsl
Найдите в файле строчку:
short_open_tag = Off
И замените ее на:
short_open_tag = On
Создайте в папке C:\Server папку temp:

Рисунок 30 — Папка temp в директории Server
Найдите в php.ini строчку:
; session.save_path = "N;/path"
И замените ее на:
session.save_path = "C:\Server\temp"
Найдите в php.ini строчку:
upload_max_filesize = 2M
И замените ее на:
upload_max_filesize = 200M
Найдите строчку:
post_max_size = 8M
И замените ее на:
post_max_size = 50M
Сохраните и перезапустите сервер. Если видите зеленый треугольник, то всё нормально. Фактически вы настроили сервер, но пока без MySQL:

Рисунок 31 — Индикация успешного перезапуска сервера
Установка MySQL
Запустим скаченный установщик MySQL, где соглашаемся на условия использования:

Рисунок 32 — Первое окно мастера установки MySQL
Выбираем тип установки Custom:

Рисунок 33 — Выбор типа Установки
Добавляем MySQL Server для установки и устанавливаем:

Рисунок 34 — Выбор компонентов для установки

Рисунок 35 — Список выбранных компонентов для установки

Рисунок 36 — Установка

Рисунок 37 — Окончание установки компонентов

Рисунок 38 — Окно перед конфигурацией MySQL
Начинаем конфигурировать MySQL:

Рисунок 39 — Выбор Group Replication

Рисунок 40 — Выбор сетевых настроек
Так как новый тип аутентификации пока не поддерживается в PHP, то выбираем старый способ аутентификации:

Рисунок 41 — Выбор типа аутентификации
Вводим пароль для root пользователя. У меня для примера используется пароль 1234:

Рисунок 42 — Выбор пароля для root пользователя

Рисунок 43 — Настройка сервиса для Windows
Применяем выбранную конфигурацию:

Рисунок 44 — Запускаем настройку конфигурации

Рисунок 45 — Окончание конфигурации

Рисунок 46 — Второй шаг окончания конфигурации

Рисунок 47 — Окончание установки
Проверим работу MySQL. Заменим содержимое файла D:\Server\htdocs\www\index.php на следующее:
<?php
$db_conn = new mysqli("localhost", "root", "1234", "mysql");
if (mysqli_connect_errno()) {
echo 'Connection to database failed:'.mysqli_connect_error();
exit();
}
else {
echo 'Ok';
}
?>
Вместо 1234 вставьте свой пароль. И перейдите на адрес http://localhost/.
Если вы видите Ok, то всё хорошо:

Рисунок 48 — Подключение к базе mysql прошло успешно
Установка phpMyAdmin
В папке D:\Server\htdocs\phpmyadmin удалим файл index.html.
И разархивируем в папку наш скаченный архив с phpmyadmin:

Рисунок 49 — Содержимое папки phpmyadmin
Создайте текстовой файл config.inc.php со следующим содержимым:
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '1234';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
?>
Разумеется, что пароль вы меняете на свой.
После этого файл сохраняется в папке D:\Server\htdocs\phpmyadmin:

Рисунок 50 — Файл config.inc.php
Перейдите в браузере по адресу: http://phpmyadmin. Если вы увидите работающий phpMyAdmin, то всё работает отлично:

Рисунок 51 — Запущенный phpMyAdmin
Добавление своего виртуального хоста [дополнительно]
В статье показано как добавлен был виртуальный хост phpmyadmin, то есть по адресу http://phpmyadmin у вас в браузере открывается ваш подсайт. Аналогичным образом добавляете и другие свои локальные сайты.
В папке C:\Server\htdocs создаете папку [Название вашего локального сайта]. Туда кидаете файла своего сайта.
В файле C:\Server\Apache24\conf\extra\httpd-vhosts.conf добавляете строчки:
<VirtualHost *:80>
DocumentRoot "D:/Server/htdocs/[Название вашего локального сайта]"
ServerName [Название вашего локального сайта]
ErrorLog "D:/Server/htdocs/[Название вашего локального сайта]/error.log"
CustomLog "D:/Server/htdocs/[Название вашего локального сайта]/access.log" common
</VirtualHost>
В файле C:\Windows\System32\drivers\etc\hosts под администратором добавляете строчку:
127.0.0.1 [Название вашего локального сайта]
После этого перезагружаете апач сервер через ApacheMonitor или перезагрузкой компа.
После этого по адресу http://[Название вашего локального сайта] в браузере будет открываться локальный сайт.
Удаление служб [дополнительно]
В процессе экспериментов по настройке сервера вы можете захотеть начать всё сначала. По крайней мере, у меня такое было часто. Для этого достаточно удалить папки Server, так как полноценной установки в Windows не производилось. Но перед этим нужно остановить и удалить службы Apache и MySQL. Ниже приводится алгоритм, как это сделать.
Вызываем программу Службы. Способов много. Можно просто через обычный поиск в Windows:

Рисунок 52 — Поиск программы «Службы»
Останавливаем нашу службу:

Рисунок 53 — Команда «Остановить службу»
Двойным щелчком по названию службы открываем подробности службы:

Рисунок 54 — Свойства службы
И копируем имя службы:

Рисунок 55 — Копирование имени службы
Запускаем от имени администратора командную строку:

Рисунок 56 — Командная строка
Теперь пропишите команду удаления службы:
sc delete Apache2.4
И нажмите Enter. Служба удалена:

Рисунок 57 — Удаление службы
Возможно, придется перезагрузить комп, чтобы служба полностью удалилась. Один раз мне такое потребовалось.
Службу MySQL можно также удалить, но, если вы устанавливали MySQL через установщик, как в этой статье, то лучше просто деинсталлировать MySQL как обычную программу.