Как поставить на облачный сервер nginx, PHP и MariaDB, подключить сайт и бесплатный сертификат.
Если сайту тесно на хостинге или нужны свои настройки, его можно разместить на облачном сервере. Ниже — самый частый набор: веб-сервер nginx, PHP и база MariaDB (она совместима с MySQL). Вместо example.ru подставьте свой домен.
Ubuntu и Debian
sudo apt update
sudo apt install nginx php-fpm php-mysql mariadb-server
Положите файлы сайта в /var/www/example.ru. Если сайт сам записывает файлы — загрузки, кэш, — отдайте эти папки пользователю, от которого работает PHP: sudo chown -R www-data:www-data /var/www/example.ru/uploads.
Создайте файл /etc/nginx/sites-available/example.ru:
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/example.ru;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
}
В fastcgi_pass — ваша версия PHP: в Debian 13 это 8.4, в Ubuntu 26.04 — 8.5. Точное имя покажет ls /run/php/. Включите сайт:
sudo ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
AlmaLinux
sudo dnf install nginx php-fpm php-mysqlnd mariadb-server
sudo systemctl enable --now nginx php-fpm mariadb
В AlmaLinux 9 по умолчанию ставится PHP 8.0. Нужна версия новее — перед установкой выберите её: sudo dnf module enable php:8.3. В AlmaLinux 10 сразу PHP 8.3.
Свой сайт опишите в /etc/nginx/conf.d/example.ru.conf — как в примере выше, только вместо двух строк про PHP напишите одну: include /etc/nginx/default.d/php.conf;. Готовые настройки для PHP положил туда сам пакет php-fpm.
SELinux пускает веб-сервер только к файлам с правильной меткой. Если файлы сайта переносили командой mv из домашней папки, обновите метки: sudo restorecon -Rv /var/www — подробнее в справочнике AlmaLinux.
База данных для сайта
Войдите в базу как администратор — пароль не нужен, достаточно sudo: sudo mariadb. Создайте базу и пользователя:
CREATE DATABASE site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site'@'localhost' IDENTIFIED BY 'надёжный-пароль';
GRANT ALL PRIVILEGES ON site.* TO 'site'@'localhost';
Эти имя базы, пользователя и пароль впишите в настройки сайта, адрес базы — localhost.
Домен и бесплатный сертификат
Направьте домен на сервер: A-запись с IP-адресом сервера. Если домен у нас, это делается в кабинете — «Настроить DNS» → «Записи DNS». Когда домен откроет сайт по http, выпустите сертификат Let's Encrypt.
Ubuntu и Debian:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.ru -d www.example.ru
AlmaLinux:
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d example.ru -d www.example.ru
sudo systemctl enable --now certbot-renew.timer
certbot сам допишет настройки HTTPS в nginx, а сертификат будет продлеваться автоматически. Если включён межсетевой экран, откройте в нём порты 80 и 443. Что делать, если сайт не открывается, — в статье Веб-сервер не запускается: nginx или Apache.

