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

В этой инструкции шаг за шагом показано, как развернуть 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.
- Базовая защита и рекомендации по безопасности.
Основные шаги
- Установка Nginx, MariaDB, PHP-FPM и модулей PHP.
- Настройка PHP и создание базы данных для WordPress.
- Разворачивание файлов WordPress и настройка wp-config.php.
- Создание виртуального хоста Nginx.
- Проверка и перезагрузка сервисов.
- Завершение установки через веб-интерфейс.
- Получение 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:

Включение 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. После установки рекомендуем выполнить шаги по безопасности и настроить регулярные бэкапы и мониторинг.
Важно: периодически проверяйте обновления пакетов и состояние сертификатов, чтобы сайт оставался доступным и защищённым.
Похожие материалы
Установка Windows 11 на неподдерживаемые ПК
Устранение ошибки Epson 1131: полное руководство
Отключить Bluetooth в Arch Linux быстро и безопасно
Windows netstat: прослушиваемые порты
Ограничения ресурсов в Kubernetes: CPU, память и хранилище