Установка Apache + PHP + MySQL + phpMyAdmin в Windows 10

Featured image

В статье рассказывается о том, как настроить связку 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

Скачивание Microsoft Visual C++ 2015 Redistributable Update 3

Рисунок 1 — Скачивание Microsoft Visual C++ 2015 Redistributable Update 3

Апач скачиваем не с официального сайта, а с другого, где есть скомпилированная под Windows версия Apache Lounge:

https://www.apachelounge.com/download/

Скачивание Apache Lounge

Рисунок 2 — Скачивание Apache Lounge

Теперь перейдем к скачиваю PHP. Будьте очень внимательны. Надо скачать архив с последней версией PHP вашей битности в версии Thread Safe. Я вначале несколько раз не то скачивал и не понимал, почему не работает:

https://windows.php.net/download/

Скачивание PHP

Рисунок 3 — Скачивание PHP

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

https://www.phpmyadmin.net/

Скачивание phpMyAdmin

Рисунок 4 — Скачивание phpMyAdmin

Скачиваем MySQL с сайта в виде установщика под Windows:

https://dev.mysql.com/downloads/installer/

Скачивание MySQL

Рисунок 5 — Скачивание MySQL

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

Структура папок

На диске C: (или на том, котором вы хотите разместить сервер) создаем папку Server в которую скидываем архивы Apache, PHP:

Папка Server

Рисунок 6 — Папка Server

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

Папка Server с директорией htdocs

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

Папка htdocs

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

Папка phpmyadmin

Рисунок 9 — Папка phpmyadmin

Установка Apache

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

Лишние файлы для удаления

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

Содержимое папки Server

Рисунок 11 — Содержимое папки Server

Ищем теперь файл C:\Server\Apache24\conf\httpd.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

Файл hosts

Рисунок 13 — Файл hosts

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

Запрос от Брандмауэра Windows

Рисунок 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, то получим:

Проверка доступности HTML файла по адресу

Рисунок 17 — Проверка доступности HTML файла по адресу http://localhost

А при заходе на адрес http://phpmyadmin получим вот это:

Проверка доступности HTML файла по адресу

Рисунок 18 — Проверка доступности HTML файла по адресу http://phpmyadmin

Закрываем приложение httpd.exe. Тем самым мы закрыли наш созданный сервер. Сделаем так, чтобы сервер был всегда открыт при запуске системы.

Откроем командную строку под администратором. Через поиск находим программу Командная строка:

Поиск приложения командной строки

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

Запускаем от имени администратора:

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

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

Запущенная командная строка

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

Вводим там:

c:\Server\Apache24\bin\httpd.exe -k install

И нажимаем Enter:

Установка службы Apache24

Рисунок 22 — Установка службы Apache24

Служба Apache24 установилась. Теперь сервер будет всегда работать при работе операционной системы.

Закрываем командную строку (а можете и не закрывать: еще пригодится).

Открываем приложение C:\Server\Apache24\bin\ApacheMonitor.exe. В трее должна появится иконка:

Иконка ApacheMonitor в трее

Рисунок 23 — Иконка ApacheMonitor в трее

Щелкаем по ней и выбираем кнопку Start:

Запуск сервера

Рисунок 24 — Запуск сервера

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

Сервер запущен

Рисунок 25 — Сервер запущен

Если осталась с красной точкой, то проверьте все шаги. И проверьте: вы закрыли или нет httpd.exe.

Чтобы каждый раз не заходить в папку C:\Server\Apache24\bin для запуска ApacheMonitor.exe, то создайте где-нибудь ярлык к программе.

Установка PHP

Создадим папку PHP в папке C:\Server и туда разархивируем архив с PHP. Сам архив потом удалим:

Содержимое папки с 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"

Файл httpd.conf

Рисунок 27 — Файл httpd.conf

В папке D:\Server\htdocs\www удаляем файл index.html и добавляем текстовой файл index.php с таким содержимым:

<?php
phpinfo ();
?>

Перезапускаем сервер:

Перезапуск сервера

Рисунок 28 — Перезапуск сервера

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

Результат работы PHP скрипта

Рисунок 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:

Папка temp в директории Server

Рисунок 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, где соглашаемся на условия использования:

Первое окно мастера установки MySQL

Рисунок 32 — Первое окно мастера установки MySQL

Выбираем тип установки Custom:

Выбор типа Установки

Рисунок 33 — Выбор типа Установки

Добавляем MySQL Server для установки и устанавливаем:

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

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

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

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

Установка

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

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

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

Окно перед конфигурацией MySQL

Рисунок 38 — Окно перед конфигурацией MySQL

Начинаем конфигурировать MySQL:

Выбор Group Replication

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

Выбор сетевых настроек

Рисунок 40 — Выбор сетевых настроек

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

Выбор типа аутентификации

Рисунок 41 — Выбор типа аутентификации

Вводим пароль для root пользователя. У меня для примера используется пароль 1234:

Выбор пароля для root пользователя

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

Настройка сервиса для Windows

Рисунок 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, то всё хорошо:

Подключение к базе mysql прошло успешно

Рисунок 48 — Подключение к базе mysql прошло успешно

Установка phpMyAdmin

В папке D:\Server\htdocs\phpmyadmin удалим файл index.html.

И разархивируем в папку наш скаченный архив с phpmyadmin:

Содержимое папки 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, то всё работает отлично:

Запущенный 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&gt

В файле 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 как обычную программу.