Краткое руководство по быстрой установке и настройке веб-сервера в связке Windows Server 2019 Core (без графического окружения), HTTP-сервера Apache, PHP и MariaDB (MySQL) или PostgreSQL.
Установка сервера баз данных
Для начала необходимо установить MariaDB (MySQL) сервер. Как это делается, можно почитать здесь: https://dondub.com/2022/02/zapusk-subd-mariadb-na-windows-server-2019/
При необходимости в использовании СУБД PostgreSQL читать здесь: https://dondub.com/2022/02/zapusk-subd-postgresql-na-windows-server-2019/
Загрузка и установка необходимых компонентов
Для загрузки необходимых архивов и дистрибутивов запускаем консоль PowerShell и в ней переходим в каталог, куда будем загружать всё, что будет необходимо для развёртывания стека WAMP, например C:\Distr
C:\> cd Distr
Apache для Windows. Ссылку на архив можно получить на странице https://www.apachelounge.com/download/
Start-BitsTransfer -Source https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.52-win64-VS16.zip
На этой же странице необходимо найти и скачать последнюю версию Visual C++ Redistributable
Start-BitsTransfer -Source https://aka.ms/vs/17/release/VC_redist.x64.exe
PHP 8.1.2 (VS16 x64 Thread Safe). Ссылку на архив можно получить на странице https://windows.php.net/download/
Start-BitsTransfer -Source https://windows.php.net/downloads/releases/php-8.1.2-Win32-vs16-x64.zip
7-zip для Windows. Ссылку на дистрибутив можно получить на странице https://www.7-zip.org/
Start-BitsTransfer -Source https://www.7-zip.org/a/7z2107-x64.exe
Теперь можно закрыть PowerShell и вернуться в обычную командную строку cmd
C:\> cd Distr
Затем необходимо установить 7-zip и VC_redist
C:\Distr> 7z2107-x64.exe C:\Distr> VC_redist.x64.exe
После установки файловый менеджер 7-zip будет доступен в каталоге C:\Program Files\7-Zip\7zFM.exe
Настройка Apache и PHP
На диске C создадим каталоги httpd, php и www
C:\Distr> cd \ C:\> mkdir httpd,php,www
а в каталоге www создадим каталог default
C:\> mkdir www\default
здесь будут храниться файлы для хоста по умолчанию
После этого запускаем 7-zip
C:\> cd "Program Files\7-Zip" C:\Program Files\7-Zip> 7zFM.exe
и с помощью него распаковываем архивы httpd-2.4.52-win64-VS16.zip и php-8.1.2-Win32-vs16-x64.zip в каталоги C:\httpd и C:\php соответственно.
Далее открываем файл httpd.conf
C:\> notepad C:\httpd\conf\httpd.conf
после строчки
# Define SRVROOT "c:/Apache24"
добавим
Define SRVROOT "c:/httpd"
после строчки
#Listen 12.34.56.78:80
добавим
Listen 80
вместо строчки
ServerAdmin admin@example.com
впишем email администратора
ServerAdmin admin@ws2019.local
после строки
#ServerName www.example.com:80
ниже
ServerName ws2019.local
после
# DocumentRoot "${SRVROOT}/htdocs"
добавим
DocumentRoot "c:/www/default"
исправим
<Directory "${SRVROOT}/htdocs">
на
<Directory "c:/www/default">
а также в самом конце допишем такие строчки:
PHPIniDir "C:/php" AddHandler application/x-httpd-php .php LoadModule php_module "C:/php/php8apache2_4.dll"
Затем необходимо скопировать файл php.ini-production в php.ini
C:\> cd php C:\php> copy php.ini-production php.ini
и открыть файл php.ini
C:\php\> notepad php.ini
после строки
;extension_dir = "ext"
дописать
extension_dir = "c:/php/ext"
и раскомментировать необходимые модули:
extension=bz2 extension=curl extension=fileinfo extension=gd extension=gettext extension=mbstring extension=exif extension=mysqli extension=odbc extension=openssl extension=pdo_mysql extension=pdo_odbc extension=pdo_pgsql extension=pdo_sqlite extension=pgsql
а также:
extension=soap extension=sockets extension=sqlite3 extension=tidy extension=xsl
Установка и запуск службы httpd
Добавим правила файрволла, чтобы были открыты порты 80 и 443 TCP
# netsh advfirewall firewall add rule name="HTTP" protocol=TCP localport=80 dir=IN action=allow # netsh advfirewall firewall add rule name="HTTPS" protocol=TCP localport=443 dir=IN action=allow
Затем установим и запустим службу httpd
# C:\httpd\bin\httpd.exe -k install # C:\httpd\bin\httpd.exe -k start
Проверка
В каталоге C:\www\default создадим файл index.html
# notepad C:\www\default\index.html
и впишем в него HTML-код:
<html> <head> <title>Welcome</title> </head> <body> <p align="center">Welcome to WAMP Server</p> </body> </html>
Также создадим файл info.php в этой же директории
# notepad C:\www\default\info.php
с таким содержимым:
<?php phpinfo(); ?>
На другой машине в сети в адресной строке браузера введём http://IP_адрес_сервера/info.php
Появится информация о PHP: