Установка WordPress на Ubuntu с NGINX
Важное: перед началом убедитесь, что у вас есть резервные копии и доступ к консоли сервера (SSH) с правами sudo.

Быстрые ссылки
- Установка зависимостей
- Установка WordPress
- Настройка NGINX
- Настройка сайта и безопасность
Что вам понадобится (кратко)
- Сервер с Ubuntu (18.04, 20.04 или 22.04). Если используете более новую LTS-версию — учтите номера пакетов PHP.
- Домен, указывающий на сервер (A/AAAA запись).
- Доступ по SSH с правами sudo.
- Минимум 1 ГБ ОЗУ рекомендуется для комфортной работы.
Понятия в одной строке
- NGINX: быстрый веб-сервер и реверс-прокси.
- PHP-FPM: менеджер процессов PHP, который обрабатывает PHP-код.
- MySQL/MariaDB: СУБД для хранения данных WordPress.
- certbot: клиент для автоматического получения сертификатов Let’s Encrypt.
1. Установка зависимостей
Обновите индексы пакетов и установите NGINX:
sudo apt update
sudo apt install nginxЕсли у вас включён брандмауэр UFW, откройте HTTP и HTTPS:
sudo ufw allow 'Nginx Full'Установите сервер базы данных. Здесь используется MySQL, можно заменить на MariaDB по желанию:
sudo apt install mysql-serverПосле установки обязательно выполните интерактивную утилиту для базовой защиты MySQL:
sudo mysql_secure_installationСоздайте базу данных и отдельного пользователя для WordPress (подставьте надёжный пароль):
sudo mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Примечание: используйте utf8mb4 для поддержки эмодзи и современных символов.
Установите PHP и необходимые расширения (поменяйте версию php на актуальную, например php8.1):
sudo apt install php-fpm php-mysql
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zipПерезапустите сервис PHP-FPM, заменив версию на ту, что установлена у вас:
sudo systemctl restart php7.4-fpm.serviceИли, если у вас другая версия, используйте php8.1-fpm и т.д. Проверьте актуальный сокет или порт (см. раздел NGINX).
2. Установка WordPress
Скачайте последнюю версию WordPress и распакуйте её:
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gzСкопируйте образец конфигурации и переместите файлы в публичную папку:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
sudo cp -a /tmp/wordpress/. /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;Сгенерируйте секретные ключи (salts) и вставьте их в wp-config.php. Получить новые можно командой:
curl -s https://api.wordpress.org/secret-key/1.1/salt/Откройте файл конфигурации и укажите параметры базы данных и метод файловой системы:
sudo nano /var/www/wordpress/wp-config.phpПример необходимых строк (замените значения):
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'strong_password_here');
define('DB_HOST', 'localhost');
define('FS_METHOD', 'direct');
Совет: для безопасности храните резервную копию wp-config.php и по возможности вынесите чувствительные параметры (ключи, пароли) в системные переменные или отдельный файл, доступный только root.
3. Настройка NGINX для WordPress
Создайте новый файл конфигурации сайта в /etc/nginx/sites-available, например example.com. Ниже — пример рабочего конфига. Обязательно замените server_name и путь root на ваши значения. Также проверьте путь к сокету PHP-FPM (php7.4-fpm.sock) и замените на свой, если нужно.
# Upstream to abstract backend connection(s) for php
upstream php {
server unix:/var/run/php/php7.4-fpm.sock;
server 127.0.0.1:9000;
}
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/wordpress;
index index.php index.html index.htm;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}Сохраните файл и активируйте сайт:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Перейдите в браузере на http://example.com и завершите веб-установку WordPress (создайте администратора и базовые настройки).
4. Настройка HTTPS (Let’s Encrypt)
Установите certbot и плагин для NGINX:
sudo apt-get install certbot
sudo apt install python3-certbot-nginxЗапустите certbot для автоматической конфигурации NGINX и получения сертификата:
sudo certbot --nginx -d example.com -d www.example.comПроверьте, что автоматическое обновление сертификатов включено (cron или systemd таймер). Тестовый запуск обновления:
sudo certbot renew --dry-runПосле получения сертификата NGINX будет перезапущен и сайт станет доступен по HTTPS.
5. Настройка и оформление сайта
После входа в админ-панель (https://example.com/wp-admin/) выберите тему: Внешний вид → Темы → Добавить. Активируйте тему и откройте Настроить, чтобы изменить логотип, цвета и шрифты.



Если нужно править шаблон, используйте дочернюю тему (child theme), чтобы не потерять правки при обновлении. Если вы всё же редактируете файлы напрямую, пример:
cd /var/www/wordpress/wp-content/themes/dark-press/
sudo nano index.phpДополнительно: безопасность и эксплуатация (Best practices)
- Обновления
- Регулярно обновляйте ядро WordPress, плагины и темы. Автообновления можно настроить частично, но для крупных сайтов лучше тестировать на стенде.
- Права доступа
- Владелец файлов — www-data, директории 755, файлы 644. Ограничьте запись только там, где это действительно нужно.
- Отключение редактора тем/плагинов в панели
- Добавьте в wp-config.php:
define('DISALLOW_FILE_EDIT', true);- Резервные копии
- Настройте регулярный бэкап файлов и базы (например, rsync + mysqldump, или решения на базе Borg/Restic).
- Защита от перебора паролей
- Используйте двухфакторную аутентификацию и ограничение попыток входа.
- Защита базы данных
- Не используйте root для WordPress; откройте доступ только с localhost.
- HTTP headers
- Включите HSTS, Content-Security-Policy и X-Frame-Options в NGINX при необходимости.
Роль‑ориентированные чек-листы
Администратор сервера:
- Настроить UFW и открыть порты 80/443.
- Настроить мониторинг (CPU, RAM, диск).
- Позаботиться о бэкапах и автоматическом обновлении безопасности.
Разработчик/темолог:
- Работать через child-theme.
- Использовать локальный стенд для тестов.
- Версионировать изменения в Git.
Контент-менеджер:
- Настроить редакционные роли и права.
- Включить авто-сохранение черновиков.
Когда этот подход не сработает (ограничения)
- Ограниченные ресурсы сервера: для крупных сайтов с высокой посещаемостью лучше использовать управляемые хостинги или облачную архитектуру с балансировкой нагрузки.
- Комплаенс и сертификация: если нужны специфические требования к хостингу (SOC2, ISO), самохостинг может оказаться не лучшим выбором.
- Если вам нужна постоянная поддержка и SLA 24/7 — рассмотрите коммерческий managed WordPress.
Мини‑методология восстановления после инцидента
- Снимаем состояние: backup базы и файлов сразу.
- Отключаем сайт (maintenance mode).
- Проверяем логи /var/log/nginx и wp-content/debug.log.
- Восстанавливаем последние чистые бэкапы.
- Меняем пароли и ключи в wp-config.php и базе.
- Проверяем сайт в тестовой среде, затем снимаем maintenance.
Быстрая таблица соответствий (ключевые пути и порты)
- Порт HTTP: 80
- Порт HTTPS: 443
- Путь сайта: /var/www/wordpress
- Пользователь веб-сервера: www-data
- Типичный PHP-FPM сокет: /var/run/php/php7.4-fpm.sock (или php8.1-fpm.sock)
- Путь конфигов NGINX: /etc/nginx/sites-available/
Краткий глоссарий (1 строка каждое)
- PHP-FPM — FastCGI-процесс-менеджер для выполнения PHP-кода.
- Certbot — клиент Let’s Encrypt для автоматического получения сертификатов.
- Child theme — дочерняя тема WordPress, наследующая стили и шаблоны родителя.
Итог
Вы развернули рабочий WordPress-сайт на Ubuntu с NGINX, настроили MySQL и PHP-FPM, обеспечили базовую безопасность и получили HTTPS-сертификат. Для продакшена дополнительно настройте мониторинг, регулярные бэкапы и политики обновлений.
Список действий для следующего шага:
- Настроить автоматические резервные копии;
- Проверить права и отключить редактор файлов в админке;
- Настроить 2FA для всех админов;
- Перенести конфигурацию в систему контроля версий, если вы вносите постоянные правки в тему.
Похожие материалы
Виртуальный фон в Zoom — как включить
Включить DNS over HTTPS в Windows 11
Секции в PowerPoint: организация презентаций
Сменить аккаунт Google по умолчанию на Android
Raw Accel: предсказуемое ускорение мыши