Веб-сервер на Windows
Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.
PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.
MySQL — это система управления базами данных (СУБД). Это также самостоятельная программа, она используется для хранения данных, поиска по базам данных, для изменения и удаления данных. Веб-приложения нуждаются в постоянном хранилище, поэтому для веб-сервера дополнительно устанавливается и СУБД. Кстати, вполне возможно, что вы слышали про MariaDB — это тоже СУБД. Первой появилась MySQL, а затем от неё ответвилась MariaDB. Для веб-приложений обе эти СУБД являются взаимозаменяемыми, то есть никакой разницы нет. В этой инструкции я буду показывать установку на примере MySQL, тем не менее если вы хотите попробовать новую MariaDB, то смотрите статью «Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows».
Что касается phpMyAdmin, то это просто скрипт на PHP, который предназначен для работы с базами данных — наглядно выводит их содержимое, позволяет выполнять в графическом интерфейсе такие задачи как создавать базы данных, создавать таблицы, добавлять, изменять и удалять информацию и т. д. По этой причине phpMyAdmin довольно популярен, хотя и не является обязательной частью веб-сервера.
Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации
Не нужно этого боятся — я расскажу, какие файлы нужно редактировать и что именно в них писать.
Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!
Мы установим сервер в отдельную директорию. Для этого в корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data (для сайтов и баз данных).
Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).
Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.
Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2022» — это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку.
Подготовительные действия закончены, переходим к установке компонентов веб-сервера.
Как установить Apache на Windows
Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:

Распакуйте папку Apache24 из этого архива в C:\Server\bin\.
Перейдите в каталог C:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.
В нём нам нужно заменить ряд строк.
Меняем
| 1 | Define SRVROOT "c:/Apache24" | 
на
| 1 | Define SRVROOT "c:/Server/bin/Apache24" | 
меняем
| 1 | #ServerName www.example.com:80 | 
на
| 1 | ServerName localhost | 
меняем
| 1 2 | DocumentRoot "${SRVROOT}/htdocs"<Directory "${SRVROOT}/htdocs"> | 
на
| 1 2 | DocumentRoot "c:/Server/data/htdocs"<Directory "c:/Server/data/htdocs"> | 
меняем
| 1 | DirectoryIndex index.html | 
на
| 1 | DirectoryIndex index.php index.html index.htm | 
меняем
| 1 2 3 4 5 | # AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:#   AllowOverride FileInfo AuthConfig Limit#AllowOverride None | 
на
| 12345 | # AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:#   AllowOverride FileInfo AuthConfig Limit#AllowOverride All | 
и меняем
| 1 | #LoadModule rewrite_module modules/mod_rewrite.so | 
на
| 1 | LoadModule rewrite_module modules/mod_rewrite.so | 
Сохраняем и закрываем файл. Всё, настройка Apache завершена!
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).

Выберите там Windows PowerShell (администратор) и скопируйте туда:
| 1 | c:\Server\bin\Apache24\bin\httpd.exe -k install | 
Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.

Теперь вводим в командную строку:
| 1 | c:\Server\bin\Apache24\bin\httpd.exe -k start | 
И нажмите Enter.

Теперь в браузере набираем http://localhost/ и видим следующее:

Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ — это главная папка для данных сервера, где будут размещаться все сайты.
Как установить PHP на Windows
PHP 8 скачайте со страницы windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность.

В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.
В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки:
| 123 | PHPIniDir "C:/Server/bin/PHP"AddHandler application/x-httpd-php .phpLoadModule php_module "C:/Server/bin/php/php8apache2_4.dll" | 
И перезапускаем Apache:
| 1 | c:\Server\bin\Apache24\bin\httpd.exe -k restart | 
В каталоге c:\Server\data\htdocs\ создаём файл с названием i.php, копируем в этот файл:
| 12 | <?phpphpinfo (); | 
В браузере откройте ссылку http://localhost/i.php. Если вы видите что-то похожее, значит PHP работает:

Настройка PHP 8
Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы при обновлении случайно не удалить ваш файл с настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будем использовать php.ini-development.
Открываем файл php.ini любым текстовым редактором, ищем строчку
| 1 | ;extension_dir = "ext" | 
и заменяем её на
| 1 | extension_dir = "C:\Server\bin\PHP\ext\" | 
Теперь найдите группу строк:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ;extension=bz2;extension=curl;extension=ffi;extension=ftp;extension=fileinfo;extension=gd;extension=gettext;extension=gmp;extension=intl;extension=imap;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 | 
и замените её на:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | extension=bz2extension=curlextension=ffiextension=ftpextension=fileinfoextension=gdextension=gettextextension=gmpextension=intlextension=imapextension=ldapextension=mbstringextension=exif      ; Must be after mbstring as it depends on itextension=mysqli;extension=oci8_12c  ; Use with Oracle Database 12c Instant Clientextension=odbcextension=openssl;extension=pdo_firebirdextension=pdo_mysql;extension=pdo_ociextension=pdo_odbcextension=pdo_pgsqlextension=pdo_sqliteextension=pgsqlextension=shmop | 
теперь раскомментируйте эту группу строк:
| 1 2 3 4 5 6 | ;extension=soap;extension=sockets;extension=sodium;extension=sqlite3;extension=tidy;extension=xsl | 
должно получиться:
| 1 2 3 4 5 6 | extension=soapextension=sockets;xtension=sodiumextension=sqlite3extension=tidyextension=xsl | 
Этими действиями мы включили расширения. Они могут понадобиться в разных ситуациях для разных скриптов. Сохраняем файл и перезапускаем Apache.
| 1 | c:\Server\bin\Apache24\bin\httpd.exe -k restart | 
Настоятельно рекомендуется добавить путь до PHP в переменную окружения PATH в Windows.
Как установить MySQL в Windows
Бесплатная версия MySQL называется MySQL Community Server. Её можно скачать на странице https://dev.mysql.com/downloads/mysql/. На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив.

На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись — но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download».

В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.
Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:
| 1 2 3 4 | [mysqld]sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESdatadir="c:/Server/data/DB/data/"default_authentication_plugin=mysql_native_password | 
Сохраните и закройте его.
Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:
| 1 2 3 | C:\Server\bin\mysql-8.0\bin\mysqld --initialize-insecure --user=rootC:\Server\bin\mysql-8.0\bin\mysqld --installnet start mysql | 
По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы.
Теперь служба MySQL будет запускаться при каждом запуске Windows.
Как установить phpMyAdmin в Windows
Сайт для скачивания phpMyAdmin: phpmyadmin.net.
Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.
В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в phpmyadmin.
В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php /* Servers configuration */$i= 0; /* Server: localhost [1] */$i++;$cfg['Servers'][$i]['verbose'] = '';$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['port'] = '';$cfg['Servers'][$i]['socket'] = '';$cfg['Servers'][$i]['connect_type'] = 'tcp';$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['user'] = 'root';$cfg['Servers'][$i]['password'] = '';$cfg['Servers'][$i]['nopassword'] = true;$cfg['Servers'][$i]['AllowNoPassword'] = true; /* End of servers configuration */ $cfg['blowfish_secret'] = 'kjLGJ8g;Hj3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V';$cfg['DefaultLang'] = 'ru';$cfg['ServerDefault'] = 1;$cfg['UploadDir'] = '';$cfg['SaveDir'] = ''; ?> | 
В браузере набираем http://localhost/phpmyadmin/
В качестве имя пользователя вводим root. Поле пароля оставляем пустым.
Заключение
Вот и всё — теперь у вас есть свой персональный локальный веб-сервер на своём домашнем компьютере.
Если вдруг у вас что-то не получилось, то скорее всего вы пропустили какой-то шаг или сделали его неправильно — попробуйте всё сделать в точности по инструкции.
