Главная  /  Помощь  /  Сайт на своём сервере: nginx, PHP и база данных

Сайт на своём сервере: nginx, PHP и база данных

Облачные серверы2 мин чтения

Как поставить на облачный сервер 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.

Не нашли ответ? Напишите в поддержку — подскажем.

Контакты (495) 664-22-98 или Написать нам

© 2026 Транзит Телеком · Все права защищены