Гид по технологиям

Установка WordPress с Nginx и Let’s Encrypt на Ubuntu 22.04

5 min read Развёртывание Обновлено 26 Nov 2025
Установка WordPress на Ubuntu 22.04 с Nginx и SSL
Установка WordPress на Ubuntu 22.04 с Nginx и SSL

Иллюстрация WordPress и сервера

В этой инструкции шаг за шагом показано, как развернуть WordPress на Ubuntu 22.04 с использованием Nginx, MariaDB и PHP-FPM (стек LEMP) и включить бесплатный SSL от Let’s Encrypt. Вы настроите базу данных, сконфигурируете wp-config.php, создадите виртуальный хост в Nginx, получите сертификат Certbot и включите перенаправление на HTTPS.

Кому это подходит

Коротко: для администраторов серверов и разработчиков, которые хотят управляемый, лёгкий в обслуживании сайт на собственном VPS с открытым стеком.

Что вы получите в результате

  • Рабочий WordPress сайт на Ubuntu 22.04.
  • SSL-сертификат Let’s Encrypt с автопродлением через Certbot.
  • Базовая защита и рекомендации по безопасности.

Основные шаги

  1. Установка Nginx, MariaDB, PHP-FPM и модулей PHP.
  2. Настройка PHP и создание базы данных для WordPress.
  3. Разворачивание файлов WordPress и настройка wp-config.php.
  4. Создание виртуального хоста Nginx.
  5. Проверка и перезагрузка сервисов.
  6. Завершение установки через веб-интерфейс.
  7. Получение SSL через Certbot и включение HTTPS.

Предварительные требования

  • Сервер с Ubuntu 22.04.
  • Домен, указывающий на IP сервера (A-запись).
  • Доступ root или пользователь с sudo.

Важно: убедитесь, что порт 80 и 443 открыты в брандмауэре (например, через ufw).

Установка Nginx, MariaDB и PHP

Установите LEMP-стек и необходимые модули PHP одной командой:

apt install nginx mariadb-server php php-fpm php-curl php-mysql php-gd php-mbstring php-xml php-imagick php-zip php-xmlrpc -y

Проверьте версию PHP:

php -v

Вы увидите версию PHP в выводе. Это подтвердит, что PHP-FPM доступен.

Быстрая правка конфигурации PHP

Откройте файл конфигурации PHP-FPM и измените рекомендуемые параметры:

nano /etc/php/8.1/fpm/php.ini

Измените или добавьте:

cgi.fix_pathinfo=0
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 512M
max_execution_time = 120

Сохраните и закройте файл. Затем перезапустите PHP-FPM после изменений:

systemctl restart php8.1-fpm

Важно: cgi.fix_pathinfo=0 предотвращает маршрутизацию неизвестных PHP запросов и повышает безопасность.

Создание базы данных для WordPress

Войдите в MariaDB:

mysql

В консоли создайте базу и пользователя (замените имена и пароль на свои безопасные):

MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'securepasssword';
MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wpuser'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

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

Разворачивание WordPress

Перейдите в веб-корень Nginx и загрузите последний пакет WordPress:

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Распакуйте и подготовьте конфигурацию:

tar -zxvf latest.tar.gz
mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Откройте wp-config.php и укажите настройки базы данных:

nano /var/www/html/wordpress/wp-config.php

Замените параметры на свои:

define( 'DB_NAME', 'wpdb' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'securepasssword' );
define( 'DB_HOST', 'localhost' );

Далее обновите секретные ключи (AUTH_KEY и т.п.). Сгенерируйте уникальные значения на официальной странице генератора ключей WordPress и вставьте их в файл.

Задайте права и владельца для каталога WordPress:

chown -R www-data:www-data /var/www/html/wordpress
chmod -R 755 /var/www/html/wordpress

Примечание: права 755 совместимы с большинством окружений. Для строгой безопасности можно ограничить права отдельных директорий (см. раздел «Укрепление безопасности»).

Создание виртуального хоста Nginx для WordPress

Создайте файл конфигурации:

nano /etc/nginx/conf.d/wordpress.conf

Вставьте конфигурацию (обновите server_name на ваш домен):

server {
    listen 80;
    root /var/www/html/wordpress;
    index  index.php index.html index.htm;
    server_name  wordpress.example.com;

    client_max_body_size 500M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

Проверьте конфигурацию Nginx и перезапустите сервисы:

nginx -t
systemctl restart nginx
systemctl restart php8.1-fpm

Проверьте статус Nginx при необходимости:

systemctl status nginx

Если Nginx не стартует, обратитесь к журналам в /var/log/nginx/ и исправьте ошибки в конфиге.

Завершение установки через веб-интерфейс

Откройте в браузере http://wordpress.example.com (замените домен). Дальше выполните стандартный шаги мастера установки WordPress:

Выбор языка

Выберите язык и продолжите. Укажите данные сайта и администратора:

Настройки сайта

После установки вы увидите страницу успешной установки:

Установка WordPress успешна

Войдите в админ-панель:

Вход администратора

Вы попадёте в панель управления WordPress:

Панель администратора WordPress

Включение HTTPS через Let’s Encrypt (Certbot)

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

apt-get install python3-certbot-nginx -y

Запустите Certbot для вашего домена:

certbot --nginx -d wordpress.example.com

Во время процесса вас попросят указать email и согласиться с условиями использования. Certbot автоматически обновит конфигурацию Nginx и (при выборе) добавит перенаправление с HTTP на HTTPS.

Важно: проверьте, что DNS корректно указывает на сервер, иначе прохождение проверки http-01 не удастся.

После успешного получения сертификата вы увидите путь к сертификатам в /etc/letsencrypt/live/your-domain/ и рекомендации по renew:

  • certbot renew запускает автоматическое продление. Рекомендуется добавить cron/systemd таймер для автоматического обновления.

Укрепление безопасности (рекомендации)

  • Регулярно обновляйте Ubuntu, Nginx, PHP и плагины WordPress.
  • Ограничьте доступ к wp-admin по IP (если это возможно).
  • Отключите редактирование файлов тем/плагинов в WordPress, добавив define(‘DISALLOW_FILE_EDIT’, true); в wp-config.php.
  • Настройте брандмауэр ufw: разрешите 80, 443 и SSH (22 или кастомный порт).
  • Делайте регулярные бэкапы файлов и базы данных.
  • Используйте надёжные пароли и двухфакторную аутентификацию для админов.

Резервное копирование и восстановление

  • Бэкап базы: используйте mysqldump или инструменты резервного копирования хоста.
mysqldump -u wpuser -p wpdb > wpdb-backup.sql
  • Бэкап файлов: архивируйте /var/www/html/wordpress и папку uploads.

Частые проблемы и способы решения

  • Nginx не стартует: проверьте nginx -t и логи /var/log/nginx/error.log.
  • 502 Bad Gateway при обращении к PHP: проверьте путь unix сокета fastcgi_pass и состояние php8.1-fpm.
  • Ошибка подключения к БД: убедитесь, что параметры DB_NAME/DB_USER/DB_PASSWORD/DB_HOST правильные и что пользователь имеет привилегии.
  • Проблемы с SSL: проверьте, что DNS указывает на сервер, и порты 80/443 открыты.

Альтернативные подходы

  • Apache вместо Nginx: проще для тех, кто привык к mod_php, но Nginx даёт лучшую производительность при статике.
  • Docker: контейнеризация упрощает переносимость и изоляцию окружения.
  • Управляемый хостинг WordPress: если не хотите обслуживать сервер, используйте managed-хосты.

Контрольный список перед запуском в прод

  • DNS домена указывает на сервер
  • Nginx и PHP-FPM работают без ошибок
  • SSL выдан и автоматическое продление настроено
  • Права на файлы корректны, владелец www-data
  • Создана резервная копия базы и файлов
  • Установлены обновления безопасности

Критерии приёмки

  • Сайт доступен по HTTPS и возвращает корректный SSL цепочку.
  • Вход в /wp-admin работает с указанием логина/пароля администратора.
  • Страницы сайта отображаются без ошибок 5xx.
  • Автоматическое продление сертификатов настроено и протестировано.

Краткая справка (1‑строковый глоссарий)

  • LEMP: стек Linux + Nginx (Engine X) + MySQL/MariaDB + PHP-FPM.
  • Certbot: клиент для автоматизированного получения сертификатов Let’s Encrypt.
  • php-fpm: FastCGI Process Manager для запуска PHP через сокет.

Кому поручить операции (ролевые чек-листы)

Админ сервера:

  • Установить пакеты, создать базы, настроить Nginx и firewall.

Разработчик/оператор WordPress:

  • Настроить wp-config.php, загрузить темы и плагины, сделать бэкапы.

DevOps:

  • Автоматизировать продление сертификатов и бэкапов, настроить мониторинг.

Заключение

Следуя этой инструкции, вы развернёте устойчивый, управляемый WordPress-сайт на собственном сервере с поддержкой HTTPS. После установки рекомендуем выполнить шаги по безопасности и настроить регулярные бэкапы и мониторинг.

Важно: периодически проверяйте обновления пакетов и состояние сертификатов, чтобы сайт оставался доступным и защищённым.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Установка Windows 11 на неподдерживаемые ПК
Windows

Установка Windows 11 на неподдерживаемые ПК

Устранение ошибки Epson 1131: полное руководство
Поддержка принтеров

Устранение ошибки Epson 1131: полное руководство

Отключить Bluetooth в Arch Linux быстро и безопасно
Linux

Отключить Bluetooth в Arch Linux быстро и безопасно

Windows netstat: прослушиваемые порты
Сеть

Windows netstat: прослушиваемые порты

Ограничения ресурсов в Kubernetes: CPU, память и хранилище
Kubernetes

Ограничения ресурсов в Kubernetes: CPU, память и хранилище

Вредоносное ПО в облаке: что это и как защититься
Кибербезопасность

Вредоносное ПО в облаке: что это и как защититься