Установка Nginx, PHP и MariaDB на Windows 10
d:\server\ — директория для хранения ПО и данных сервера
d:\server\bin\ — программное обеспечение
d:\server\bin\nginx
d:\server\bin\php
d:\server\bin\mariadb
d:\server\data\ — хранение данных (например логов)
Nginx
Скачиваем последнюю версию Nginx и размещаем в директории d:\server\bin\nginx.
Настройка
В файле конфигурации D:\server\bin\nginx\conf\nginx.conf нужно добавить строку внутри блока http
и создать директорию 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-файлы для управления сервером
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"
taskkill /IM nginx.exe /F taskkill /IM php-cgi.exe /F
call stop.bat call start.bat EXIT /b
Источник:
Установка сервера LEMP (Nginx, MariaDB, PHP)
Стек LEMP включает пакеты Nginx (Engine X), MySQL/MariaDB и PHP/Python, установленные в системе Linux и настроенные для совместной работы в качестве системы хостинга веб-сайтов, приложений или выполнения других функций. В данном руководстве мы рассмотрим установку стека LEMP на примере Ubuntu 18.04.
Для запуска рассмотренных команд потребуется доступ к серверу по SSH и root-привилегии (или использование команды sudo).
Установка веб-сервера Nginx
Обновите программные пакеты и установите Nginx при помощи менеджера пакетов apt-get. Nginx — быстрый, производительный и простой в настройке веб-сервер с открытым исходным кодом, поддерживающий функции балансировки нагрузки и обратного прокси.
$ sudo apt-get update $ sudo apt-get install nginx
После установки служба ngnix должна автоматически запуститься. Также должен включиться ее запуск при загрузке. Проверить состояние службы можно следующей командой:
$ sudo systemctl status nginx
При необходимости вручную запустить службу и активировать ее автоматический запуск при загрузке нужно выполнить следующие команды:
$ sudo systemctl start nginx $ sudo systemctl enable nginx
Если в вашей системе есть брандмауэр, нужно открыть порты 80 (HTTP) и 443 (HTTPS), чтобы разрешить клиентам запросы на веб-сервер, а затем перезагрузить брандмауэр, например:
$ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp $ sudo ufw reload
Для проверки правильности работы ngnix нужно ввести в строке браузера имя или адрес вашего веб-сервера:
Если установка была выполнена правильно, вы увидите тестовую страницу Nginx:
Установка MariaDB
Для установки системы управления базами данных MariaDB (разрабатываемая сообществом ветвь MySQL) выполните команду:
$ sudo apt-get install mariadb-server mariadb-client
Служба должна автоматически запуститься после установки. Это можно проверить следующей командой (если она не запущена, нужно аналогично предыдущему разделу запустить ее и активировать автоматический запуск при загрузке):
$ sudo systemctl status mysql
Теперь нужно обеспечить минимальную безопасность базы данных при помощи специального скрипта (входит в комплект установки):
$ sudo mysql_secure_installation
Дайте ответ y (yes, да) на следующие вопросы, а также задайте пароль для пользователя root:
Set root password? [Y/n]: y Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Установка PHP
PHP — популярный скриптовый язык, используемый для создания динамического содержимого веб-сайтов. Все необходимые для веб-разработки модули PHP можно установить следующей командой (версия по умолчанию для репозиториев Ubuntu — PHP 7.2)
$ sudo apt-get install php php-fpm php-common php-mysql php-gd php-cli
После установки PHP служба PHP7.2-FPM (реализация FastCGI сервера) также должна запуститься автоматически. Это можно проверить следующей командой:
$ sudo systemctl status php7.2-fpm
Теперь нужно настроить PHP-FPM для правильного представления PHP-приложений или сайтов. Параметры конфигурации находятся в файле /etc/php/7.2/fpm/php.ini. Откройте его любым текстовым редактором:
$ sudo vim /etc/php/7.2/fpm/php.ini
Найдите строку ;cgi.fix_pathinfo=1 и замените ее на cgi.fix_pathinfo=0, чтобы при работе PHP рассматривал только указанный в явном виде путь и прекращал обработку, если файл не найден.
Затем в разделе серверного блока по умолчанию файла конфигурации сервера Nginx (/etc/nginx/sites-available/default) настройте обработку PHP-скриптов при помощи PHP-FPM:
$ sudo vim /etc/nginx/sites-available/default
Чтобы передавать PHP-скрипты серверу FastCGI, раскомментируйте следующий раздел:
После внесения изменений перезапустите службы nginx и php7.2-fpm, чтобы они вступили в силу:
$ sudo systemctl restart php7.2-fpm $ sudo systemctl restart nginx
Теперь можно проверить правильность настройки PHP, создав в корне документов вашего сервера простую страничку info.php. Для этого требуется всего одна команда:
Затем откройте веб-бразуер и введите любой из следующих адресов, чтобы увидеть информационную страницу PHP.
http://IP-адрес_сервера/info.php
Заключение
Мы рассмотрели установку стека LEMP. Данный набор является платформой, на которую могут устанавливаться веб-сайты и веб-приложения. Для более подробной информации обратитесь к соответствующим man-страницам.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.