Установка WordPress на VPS — это способ получить полный контроль над сайтом: свои версии PHP, свой кеш, свои лимиты, никаких соседей по виртуальному хостингу. В этом руководстве мы установим WordPress на чистый сервер с Ubuntu 24.04 LTS: поднимем Nginx, MySQL и PHP 8.3, создадим базу данных, настроим права доступа и выпустим бесплатный SSL-сертификат. Все команды рабочие — просто копируйте их по порядку. На весь процесс уйдёт 30–40 минут, даже если вы делаете это впервые.
Что понадобится перед началом
- VPS с Ubuntu 24.04 LTS и root-доступом. Для WordPress хватит 2 ГБ RAM, но с запасом под кеш и рост трафика комфортнее 4–8 ГБ. Например, тариф Start у Cheap-Host — 6 vCPU, 8 ГБ RAM и 96 ГБ NVMe за 450 ₽/мес; сервер выдаётся за 45–60 секунд вместе с IP и SSH-доступом.
- Домен, A-запись которого указывает на IP сервера. Как это настроить — в статье о привязке домена к VPS.
- SSH-клиент: терминал в macOS/Linux или Windows Terminal.
Далее в примерах используется домен example.com — замените его на свой.
Шаг 1. Подготовка сервера
Подключаемся по SSH и обновляем систему:
ssh root@IP_СЕРВЕРА
apt update && apt upgrade -y
Открываем в файрволе только нужные порты — SSH, HTTP и HTTPS:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Это минимум. Полный чек-лист базовой защиты — от SSH-ключей до fail2ban — мы разобрали в статье «Первые 10 шагов после покупки VPS».
Шаг 2. Установка Nginx, MySQL и PHP 8.3 (LEMP)
В Ubuntu 24.04 PHP 8.3 идёт из коробки — сторонние репозитории не нужны. Ставим весь стек и расширения PHP, которые требует WordPress:
apt install -y nginx mysql-server php8.3-fpm php8.3-mysql \
php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml \
php8.3-zip php8.3-intl php-imagick
Проверяем, что сервисы запущены:
systemctl status nginx php8.3-fpm mysql --no-pager
Все три должны быть в состоянии active (running). Если хотите разобраться в каждом компоненте глубже, у нас есть отдельный разбор установки LEMP-стека на Ubuntu.
Шаг 3. База данных для WordPress
Сначала запускаем мастер первичной защиты MySQL (отключает анонимных пользователей и тестовую базу):
mysql_secure_installation
Затем создаём базу и отдельного пользователя. Не используйте root для сайта — если сайт взломают, злоумышленник получит доступ только к одной базе:
mysql -u root -p
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Кодировка utf8mb4 обязательна: без неё в комментариях и записях не будут работать эмодзи и часть спецсимволов.
Шаг 4. Скачиваем и размещаем WordPress
Берём свежую русскую сборку с официального сайта и раскладываем файлы:
cd /tmp
wget https://ru.wordpress.org/latest-ru_RU.tar.gz
tar -xzf latest-ru_RU.tar.gz
mkdir -p /var/www/example.com
cp -a /tmp/wordpress/. /var/www/example.com/
chown -R www-data:www-data /var/www/example.com
find /var/www/example.com -type d -exec chmod 755 {} \;
find /var/www/example.com -type f -exec chmod 644 {} \;
Права 755 на каталоги и 644 на файлы — стандарт безопасности WordPress: веб-сервер может читать и записывать своё, а посторонние процессы — нет.
Шаг 5. Настройка Nginx
Создаём server-блок /etc/nginx/sites-available/example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php;
client_max_body_size 64m;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~* \.(css|js|jpg|jpeg|png|gif|webp|svg|ico|woff2)$ {
expires 30d;
add_header Cache-Control "public";
}
location = /xmlrpc.php { deny all; }
}
Здесь try_files обеспечивает работу «красивых» ссылок WordPress, кеш статики на 30 дней снижает нагрузку, а закрытый xmlrpc.php отсекает популярный вектор брутфорс-атак. Включаем сайт и перезагружаем Nginx:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Шаг 6. SSL-сертификат Let's Encrypt
В Ubuntu 24.04 certbot ставится через snap — это официальный рекомендованный способ:
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
certbot --nginx -d example.com -d www.example.com
Certbot сам выпустит сертификат, пропишет HTTPS в конфиг Nginx и настроит редирект с HTTP. Продление тоже автоматическое. Подробнее о нюансах — wildcard-сертификаты, проверка таймера продления, хуки — в статье про SSL-сертификат Let's Encrypt.
Шаг 7. Завершение установки в браузере
Открываем https://example.com — WordPress встретит мастером установки:
- Выбираем язык и нажимаем «Вперёд».
- Вводим имя базы
wordpress, пользователяwpuser, пароль из шага 3; сервер БД —localhost, префикс таблиц можно сменить сwp_на произвольный (небольшой плюс к безопасности). - Задаём название сайта и создаём администратора. Логин
adminне используйте — его перебирают боты в первую очередь.
После входа в консоль сразу зайдите в «Настройки → Постоянные ссылки» и выберите формат «Название записи» — это лучший вариант и для SEO, и для читателей.
Минимальная оптимизация после установки
Свежий WordPress работает быстро, но пара штрихов не помешает. В файле /etc/php/8.3/fpm/php.ini поднимите лимиты под загрузку медиафайлов:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
И перезапустите PHP-FPM: systemctl restart php8.3-fpm.
Что ещё стоит сделать:
- Установить кеширующий плагин (WP Super Cache или W3 Total Cache) — он отдаёт готовый HTML вместо генерации страницы на каждый запрос.
- Настроить автоматический бэкап базы и
wp-contentхотя бы раз в сутки. - Удалить неиспользуемые темы и плагины — каждый лишний плагин это потенциальная дыра.
- Если трафик растёт — донастроить пулы PHP-FPM и подключить объектный кеш; о выжимании максимума из WordPress читайте в статье «Как ускорить WordPress».
Сколько ресурсов нужно WordPress на практике
| Проект | Посещаемость, сутки | Рекомендация |
|---|---|---|
| Блог, визитка | до 5 000 | 2 vCPU, 2–4 ГБ RAM |
| Контент-сайт, новостник | 5 000–30 000 | 4–6 vCPU, 8 ГБ RAM |
| WooCommerce-магазин | до 20 000 | 6–12 vCPU, 8–16 ГБ RAM |
Важный момент — диск. WordPress с базой MySQL очень чувствителен к скорости случайного чтения, поэтому NVMe заметно ускоряет и админку, и генерацию страниц. У Cheap-Host NVMe стоит во всех тарифах, а при росте проекта CPU, RAM и диск можно апгрейдить без потери данных — сайт переносить не придётся.
FAQ
Сколько ресурсов VPS нужно для WordPress?
Для сайта до 10–20 тысяч посетителей в сутки достаточно 2–4 ГБ RAM и 2+ vCPU. Тариф Start у Cheap-Host (6 vCPU, 8 ГБ RAM, 96 ГБ NVMe за 450 ₽/мес) покрывает такие проекты с запасом, включая WooCommerce.
Почему Nginx, а не Apache?
Nginx экономнее расходует память и быстрее отдаёт статику — картинки, CSS и JS, из которых на 80–90% состоит страница WordPress. Apache удобен .htaccess-файлами, но для нового сайта на VPS Nginx — стандарт де-факто.
Можно ли перенести уже работающий сайт WordPress на VPS?
Да: настройте окружение по этой инструкции, перенесите файлы wp-content и дамп базы, затем переключите DNS. При правильной последовательности простой равен нулю.
Обязателен ли SSL-сертификат?
Да. Без HTTPS браузеры помечают сайт как небезопасный, а поисковики понижают его в выдаче. Сертификат Let's Encrypt бесплатен и выпускается одной командой certbot.
Как обновлять WordPress на VPS?
Через админ-панель или WP-CLI (wp core update). Перед обновлением делайте бэкап файлов и базы — на VPS это одна команда tar плюс mysqldump.
Вывод
Установить WordPress на сервер — задача на полчаса: LEMP-стек, база данных, конфиг Nginx, SSL — и сайт в сети. Взамен вы получаете скорость NVMe, полный root-доступ и свободу настройки, которой нет ни на одном виртуальном хостинге. Если для этой задачи вам нужен сервер — у Cheap-Host тариф Start от 450 ₽/мес: 6 vCPU, 8 ГБ RAM, NVMe, KVM, безлимитный трафик и выдача сервера за минуту.