Установка Nginx, PHP и MariaDB на Windows 10/11

Структура директорий:

d:\server\ - директория для хранения ПО и данных сервераd:\server\bin\ - программное обеспечениеd:\server\bin\nginxd:\server\bin\phpd:\server\bin\mariadbd:\server\data\ - хранение данных (например логов)

Nginx

Скачиваем последнюю версию Nginx и размещаем в директории d:\server\bin\nginx.

Настройка

В файле конфигурации D:\server\bin\nginx\conf\nginx.conf нужно добавить строку внутри блока http

include vhosts/*.conf;

и создать директорию D:\server\bin\nginx\conf\vhosts

Виртуальный хост

Для теста можно создать хост для фреймворка Laravel. Для этого нужно разместить в директории D:\server\bin\nginx\conf\vhosts файл laravel.conf

server {
    listen 80;
    server_name laravel.test;
    root D:/projects/php/laravel.test/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

После этого добавляем строку

127.0.0.1 localhost laravel.test

в файл C:\Windows\System32\drivers\etc\hosts

PHP

Скачиваем PHP (Non Thread Safe) и размещаем в директории d:\server\bin\php. Также нужно установить компонент Visual C++ Redistributable for Visual Studio. Ссылку на эту программу можно найти в левой боковой колонке страницы

И подключаем необходимые модули расскоментируя строки extension=имя_модуля в файле D:\server\bin\php\php.ini

MariaDB

Скачиваем последнюю версию MariaDB. Я обычно выбираю MSI-пакет и устанавливаю в директорию d:\server\bin\mariadb. Впрочем эту программу можно разместить где угодно.

Но можно скачать архивный вариант и использовать разные версии сервера. Только нужно будет в bat-файлах настроить запуск и остановку сервера.

Запуск, остановка и перезапуск сервера

Нужно скачать полезную программу RunHiddenConsole.exe, которая позволяет скрыть консоль после запуска программы. Можно сохранить в директории d:\server\bin\.

bat-файлы для управления сервером

start.bat

pushd d:\server\bin\nginx
start nginx.exe
popd
d:\server\bin\RunHiddenConsole.exe "d:\server\bin\php\php-cgi.exe" -b 127.0.0.1:9000 -c "d:\server\bin\php\php.ini"

stop.bat

taskkill /IM nginx.exe /F
taskkill /IM php-cgi.exe /F

restart.bat

call stop.bat
call start.bat
EXIT /b
Источники: