Как установить WordPress на Linux VPS с Nginx
Это руководство настраивает WordPress на VPS с Ubuntu 22.04 или 24.04 с использованием стека LEMP: Linux, Nginx, MariaDB и PHP-FPM. Для комфортного старта подойдёт сервер с 2 vCPU и 2 ГБ RAM; подробнее см. как выбрать характеристики VPS. Вы можете развернуть облачный VPS за несколько минут и повторить все шаги. Сначала замените example.com на свой домен и укажите A-запись DNS на IP-адрес сервера.
1. Обновите сервер и настройте файрвол
sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableЕсли SSH ещё не защищён, сделайте это сначала по руководству по усилению SSH.
2. Установите Nginx, MariaDB и PHP
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip curl
sudo mysql_secure_installation3. Создайте базу данных
sudo mysqlCREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'USE_A_LONG_RANDOM_PASSWORD';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;4. Загрузите WordPress
cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
cd /var/www/example.com && sudo -u www-data cp wp-config-sample.php wp-config.phpОтредактируйте wp-config.php: укажите в DB_NAME, DB_USER и DB_PASSWORD значения из предыдущего шага и замените ключи аутентификации на новые, сгенерированные официальным генератором по адресу https://api.wordpress.org/secret-key/1.1/salt/.
5. Настройте Nginx
Создайте файл /etc/nginx/sites-available/example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php;
location / { try_files $uri $uri/ /index.php?$args; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ /\.ht { deny all; }
}sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxЕсли /run/php/php-fpm.sock не существует, используйте сокет с номером версии, например /run/php/php8.3-fpm.sock.
6. Добавьте бесплатный HTTPS-сертификат
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.comCertbot устанавливает таймер, который автоматически продлевает сертификат. Проверить его работу можно командой sudo certbot renew --dry-run.
7. Завершите установку в браузере и усильте защиту
Откройте https://example.com и пройдите установщик. Затем:
- Регулярно обновляйте WordPress, темы и плагины, а неиспользуемые удаляйте.
- Используйте надёжные уникальные пароли администратора и включите двухфакторную аутентификацию при входе.
- Создайте снимок или резервную копию перед каждым крупным обновлением.
- Установите плагин кеширования, чтобы снизить нагрузку на небольшой VPS.
Часто задаваемые вопросы
Какую версию PHP использовать?
Используйте версию, которая входит в состав вашего релиза Ubuntu, если её поддерживают WordPress и ваши плагины. Актуальные требования проверьте на официальной странице.
Можно ли разместить несколько сайтов на одном VPS?
Да. Создайте отдельный блок server в Nginx, отдельную базу данных и отдельный каталог для каждого сайта, а также выделите серверу достаточно RAM для всех них.
Почему я вижу ошибку 502 Bad Gateway?
Nginx не может подключиться к PHP-FPM. Проверьте, что PHP-FPM запущен и что путь к сокету в файле Nginx совпадает с существующим сокетом.