Перейти к основному содержанию

Top.Mail.Ru

Настройка Nginx, PHP, MariaDB и SSL на Debian VPS

Готовый сервер для хостинга любых сайтов: от блога на WordPress до мощного интернет-магазина. Всё — с безопасным HTTPS-соединением.

В этой статье мы развернём на сервере под управлением Debian 12 (Bookworm) полноценную связку: веб-сервер Nginx, процессор PHP-FPM, базу данных MariaDB и бесплатный SSL-сертификат Let's Encrypt. Именно такая инфраструктура лежит в основе большинства профессиональных сайтов.

📌 Что нужно для начала:

  • Арендованный VPS/VDS сервер с root-доступом (например, вот такой)
  • Базовые навыки работы с командной строкой (SSH)
  • Домен, привязанный к IP вашего сервера (для SSL обязателен)

1. Подключение к серверу по SSH

Подключитесь к серверу через терминал (Linux/macOS) или PuTTY (Windows).

ssh root@ip-вашего-сервера

При первом подключении подтвердите сохранение ключа, введите пароль.

2. Обновление системы

apt update && apt upgrade -y

3. Установка Nginx

apt install nginx -y

Проверьте статус: systemctl status nginx. Откройте в браузере IP сервера — увидите приветственную страницу Nginx.

4. Установка PHP 8.2 и PHP-FPM с популярными расширениями

apt install php8.2-fpm php8.2-common php8.2-cli php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-imagick -y

Мы добавили php8.2-imagick — он часто нужен для обработки изображений в CMS.

5. Установка MariaDB (база данных)

MariaDB — форк MySQL, полностью совместим и быстрее.

apt install mariadb-server mariadb-client -y

Запустите и добавьте в автозагрузку:

systemctl enable --now mariadb

6. Базовая настройка безопасности MariaDB

Запустите скрипт безопасности и следуйте инструкциям (установите пароль root, удалите тестовые БД и анонимных пользователей):

mysql_secure_installation

Совет: При вопросе про пароль задайте надёжный, сохраните его в менеджере паролей.

7. Создание виртуального хоста (конфигурации сайта)

Создадим файл конфигурации для вашего сайта. Замените ваш-домен.ru на ваш реальный домен.

nano /etc/nginx/sites-available/ваш-домен.ru

Вставьте базовую конфигурацию. Временно будет использовать HTTP, HTTPS настроим позже.


server {
    listen 80;
    server_name ваш-домен.ru;
    root /var/www/ваш-домен.ru;
    index index.php index.html index.htm;


    location / {
        try_files $uri $uri/ =404;
    }


    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}

Пояснения:

server_name — ваш домен, на котором будет работать сайт.

root — каталог с файлами сайта (создадим его ниже).

location ~ \.php$ — блок для обработки PHP через сокет FPM.

Сохраните файл (Ctrl+O, затем Ctrl+X).

8. Создание корневой директории сайта и тестового файла

mkdir -p /var/www/ваш-домен.ru

Создайте тестовый PHP-файл для проверки работы:


echo '<?php echo "<h1>Сервер работает! Связка Nginx+PHP+MariaDB готова.</h1>"; ' | tee /var/www/ваш-домен.ru/index.php

9. Активация сайта

Включите конфигурацию и проверьте её на ошибки:


ln -s /etc/nginx/sites-available/ваш-домен.ru /etc/nginx/sites-enabled/

nginx -t

Если тест пройден — перезагрузите Nginx:

systemctl reload nginx

10. Установка Certbot и получение SSL-сертификата (HTTPS)

Certbot — официальный клиент Let's Encrypt. С его помощью установим бесплатный SSL-сертификат и настроим автоматическое перенаправление HTTP → HTTPS.

Установите Certbot и плагин для Nginx:

apt install certbot python3-certbot-nginx -y

Запустите получение сертификата для вашего домена. Certbot автоматически изменит конфигурацию Nginx и включит HTTPS:

certbot --nginx -d ваш-домен.ru

Следуйте инструкциям на экране: укажите email, согласитесь с условиями. Certbot сам пропишет настройки в файле конфигурации.

Проверьте автоматическое обновление сертификата (сертификаты Let's Encrypt действуют 90 дней):

systemctl status certbot.timer

Теперь ваш сайт доступен по HTTPS. Проверьте, открыв его в браузере: https://ваш-домен.ru. В адресной строке должен появиться замочек.

11. Финальная проверка

Откройте ваш сайт по HTTPS. Вы должны увидеть сообщение: «Сервер работает! Связка Nginx+PHP+MariaDB готова.»

💡 Полезные команды для управления сервером:

  • Перезапуск Nginx: systemctl restart nginx
  • Перезапуск PHP-FPM: systemctl restart php8.2-fpm
  • Перезапуск MariaDB: systemctl restart mariadb
  • Проверка журнала ошибок Nginx: tail -f /var/log/nginx/error.log
  • Проверка журнала ошибок PHP: tail -f /var/log/php8.2-fpm.log
  • Вход в MariaDB (для создания БД): mysql -u root -p

Что дальше?

Ваш сервер полностью готов к работе! Теперь вы можете:

  • Создать базу данных и пользователя для будущего сайта (через mysql -u root -p).
  • Установить WordPress, Joomla, 1С-Битрикс или любую другую CMS — загрузив файлы в папку /var/www/ваш-домен.ru.
  • Настроить автоматическое резервное копирование сайта и базы данных.
  • Подключить дополнительный домен, создав новый конфигурационный файл в /etc/nginx/sites-available/.

🚀 Ещё нет своего сервера?

Арендуйте VPS/VDS в RiSYS: быстрые SSD-диски, root-доступ, защита от DDoS и готовность за 15 минут. Идеальная площадка для ваших проектов.

Выбрать тариф VPS

Руководство поможет вам развернуть полноценный сервер. Если на каком-то шаге возникли трудности — напишите в поддержку!

Список всех услуг

Разовое обслуживание

Разовые услуги по ремонту и настройке офисных компьютеров с почасовой оплатой

DNS-хостинг

Размещение ресурсных записей DNS и управление ими

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

Размещение сайтов, блогов, интернет-магазинов

Администрирование серверов

Услуги по обслуживанию и администрированию серверов организаций

Разработка ИТ-инфраструктуры

Услуги по разработке ИТ-инфраструктуры для офиса

Внешнее FTP-хранилище

Аренда FTP-хранилища для резервного копирования и обмена файлами

Абонентское обслуживание

Комплексное обслуживание компьютеров, серверов, локальных сетей, IP-телефонии организаций

Настройка серверов

Установка и настройка серверов для организаций