Перейти к содержимому
хостинг-вордпресс.рф Просмотреть сайт
Сохранено в 23:47
Опубликовать
хостинг-вордпресс.рф
обновлено 01.09.2026
01 Как установить WordPress на VPS: от голого сервера до работающего сайта
Блок: Обложка статьи
установка wordpress на vps

Как установить WordPress на VPS: от голого сервера до работающего сайта

Редакция хостинг-вордпресс.рф · Команда тестирования 3 минут чтения
Блок: Сводка · TL;DR
Блок: Тело статьи

Установка WordPress на VPS отличается от установки на виртуальный хостинг тем, что кнопки «установить» здесь нет. Вы получаете голую операционную систему и root-доступ, дальше всё руками. Кнопочный вариант за пять минут описан в отдельном гайде, а эта страница про то, как установить WordPress на сервер целиком самому: от первого входа по SSH до работающего сайта с SSL. Взамен потраченного часа вы получаете контроль над версиями PHP, конфигурацией веб-сервера и лимитами, которых на виртуальном хостинге не бывает.

Кому нужен WordPress на VPS

Короткая проверка, прежде чем тратить вечер:

  • VPS оправдан, если сайт упёрся в лимиты виртуального хостинга (процессы, память, соседи по серверу), нужен нестандартный стек вроде Redis или своих модулей PHP, или вы размещаете несколько сайтов и хотите платить за один сервер.
  • VPS не оправдан, если сайт представляет собой визитку или блог на пару тысяч посетителей в день. Виртуальный хостинг дешевле, а главное, обновлять систему, следить за безопасностью сервера и чинить упавший MySQL в три часа ночи будет хостер, а не вы.

Развёрнутое сравнение форматов — на странице VPS для WordPress. Здесь дальше — чистая практика.

Где взять VPS

Гайд написан на чистой Ubuntu 24.04 и сработает у любого провайдера из нашего каталога VPS. Если сервера ещё нет, вот три варианта, на которых мы проверяли шаги.

  • Timeweb Cloud — наш основной выбор для этого сценария. Заказ занимает пару минут: раздел «Облачные серверы», кнопка «Создать», образ Ubuntu 24.04 LTS, конфигурация от 1 ГБ RAM. Сервер поднимается меньше чем за минуту, IP выдаётся сразу. Оплата почасовая: можно пройти гайд, снести сервер и заплатить рубли вместо месяца. По промокоду flutterflow первое пополнение счёта удваивается: закинули 500 ₽, получили на баланс 1000 ₽. Этого хватает на несколько недель работы сервера. Подробный разбор провайдера есть в обзоре Timeweb.
  • REG.RU — VPS заказывается из того же кабинета, где у многих уже куплен домен: раздел «VPS и серверы», шаблон «Чистая ОС», Ubuntu 24.04. Удобно, когда домен и сервер хочется держать в одном личном кабинете. Детали в обзоре REG.RU.
  • Beget — VPS с посуточным списанием и понятной панелью. При заказе можно сразу выбрать образ с готовым LEMP и пропустить шаг 2 этого гайда. Что ещё умеет панель, написано в обзоре Beget.

Дальше все команды одинаковы для любого из трёх, различается только кнопка «создать сервер».

Что понадобится

  • VPS с Ubuntu 24.04 LTS, минимум 1 ГБ RAM (комфортно 2 ГБ), чистая ОС без панели управления.
  • Домен, у которого A-запись уже указывает на IP сервера: без этого не выпустится SSL-сертификат.
  • SSH-клиент: терминал на macOS и Linux, на Windows — встроенный OpenSSH или PuTTY.

Шаг 1. Подготовка сервера

Первым делом на новом сервере нужны обновления, отдельный пользователь вместо root и файрвол.

apt update && apt upgrade -y
adduser deploy
usermod -aG sudo deploy

Работать под root — плохая привычка: одна опечатка в команде с rm стоит сервера. Дальше всё делаем под пользователем deploy через sudo.

Файрвол — встроенный ufw. Открываем SSH и веб-порты, всё остальное закрыто:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Если провайдер выдал доступ по паролю, сразу переключитесь на SSH-ключи и запретите вход по паролю в /etc/ssh/sshd_config (PasswordAuthentication no). Боты начинают перебирать пароли к свежему IP в первые же часы после создания сервера, это видно в journalctl -u ssh уже на следующий день.

Шаг 2. Установка стека: Nginx, PHP и MariaDB

Классический LEMP. В репозиториях Ubuntu 24.04 лежит PHP 8.3 — этого достаточно, отдельные PPA не нужны:

sudo apt install -y nginx mariadb-server \
  php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-intl \
  php8.3-mbstring php8.3-xml php8.3-zip php8.3-imagick

Набор модулей не случайный: это ровно то, что WordPress проверяет в «Здоровье сайта». Без mbstring и xml установщик просто не запустится, без gd и imagick не будут создаваться миниатюры, без intl часть плагинов жалуется в логи.

Сразу поднимите лимиты PHP под WordPress в /etc/php/8.3/fpm/php.ini:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120

И перезапустите FPM: sudo systemctl restart php8.3-fpm.

Шаг 3. База данных

MariaDB после установки стоит прогнать через sudo mariadb-secure-installation (убирает тестовую базу и анонимных пользователей), затем создать базу и пользователя для сайта:

CREATE DATABASE wp_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

Кодировка utf8mb4_unicode_ci обязательна: она корректно хранит кириллицу и эмодзи. Права выдаём только на одну базу — если на сервере появится второй сайт, у него будет свой пользователь, и взлом одного сайта не отдаст злоумышленнику базу соседнего.

Шаг 4. Конфиг Nginx

Создаём /etc/nginx/sites-available/site.ru:

server {
    listen 80;
    server_name site.ru www.site.ru;
    root /var/www/site.ru;
    index index.php;

    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 ~* \.(jpg|jpeg|png|webp|gif|svg|css|js|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    location = /xmlrpc.php { deny all; }
}

Строка try_files … /index.php?$args — то, что заставляет работать «красивые» постоянные ссылки WordPress; без неё все страницы, кроме главной, отдадут 404. Блокировка xmlrpc.php закрывает самый шумный вектор автоматических атак — если вы не публикуете записи из мобильного приложения WordPress, файл вам не нужен.

Включаем сайт и проверяем конфиг перед перезагрузкой:

sudo ln -s /etc/nginx/sites-available/site.ru /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Шаг 5. Установка WordPress через WP-CLI

Можно скачать архив и распаковать вручную, но WP-CLI быстрее и пригодится потом: для обновлений, бэкапов и поиска-замены в базе.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp

sudo mkdir -p /var/www/site.ru && sudo chown deploy:www-data /var/www/site.ru
cd /var/www/site.ru
wp core download --locale=ru_RU
wp config create --dbname=wp_site --dbuser=wp_user --dbpass=СЛОЖНЫЙ_ПАРОЛЬ
wp core install --url=https://site.ru --title="Мой сайт" \
  --admin_user=НЕ_admin --admin_email=you@example.com --prompt=admin_password

Четыре команды, и сайт работает. Логин admin не используйте: половина ботов перебирает пароли именно к нему, подробнее в гайде по безопасности WordPress.

Осталось выставить права: файлы принадлежат вашему пользователю, а группе www-data хватает чтения плюс записи в wp-content:

sudo chown -R deploy:www-data /var/www/site.ru
sudo find /var/www/site.ru -type d -exec chmod 755 {} \;
sudo find /var/www/site.ru -type f -exec chmod 644 {} \;
sudo chmod -R g+w /var/www/site.ru/wp-content

Шаг 6. SSL через certbot

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d site.ru -d www.site.ru

Certbot сам поправит конфиг Nginx, включит редирект на HTTPS и заведёт таймер автопродления. Если команда падает с ошибкой валидации, почти всегда дело в DNS: A-запись ещё не обновилась или указывает не на этот сервер.

Что настроить после установки

Минимальный чек-лист тот же, что и на обычном хостинге, плюс серверная специфика:

  • Постоянные ссылки → /%postname%/ (Настройки → Постоянные ссылки).
  • Заменить wp-cron на системный: в wp-config.php добавить define('DISABLE_WP_CRON', true); и повесить в crontab строку */5 * * * * wp cron event run --due-now --path=/var/www/site.ru.
  • Включить автообновления безопасности Ubuntu: sudo apt install unattended-upgrades.
  • Настроить бэкапы вне сервера: снапшоты VPS у провайдера плюс выгрузка базы (wp db export) куда-то ещё. Сервер, на котором лежат и сайт, и его единственный бэкап, — это не бэкап.
  • Поставить кэширование. С чего начать, разобрано в гайде почему WordPress тормозит.

Альтернатива: VPS с панелью

Всё описанное выше можно не делать руками: большинство VPS-провайдеров при заказе сервера предлагают образ с панелью управления (ISPmanager, aaPanel, FastPanel) или готовый шаблон «LEMP + WordPress». У Timeweb Cloud и Beget такой образ выбирается прямо на экране заказа сервера. Панель сама разворачивает стек, выпускает SSL и обновляет пакеты, по сути превращая VPS в виртуальный хостинг, где root всё же остаётся у вас.

WordPress без панели управления, как в этом гайде, выигрывает там, где важен каждый мегабайт памяти на минимальном тарифе: панель сама по себе съедает 200–400 МБ. А если и панель кажется лишней работой, посмотрите на managed-хостинг, где серверами занимается провайдер целиком.

Блок: Детали

Частые вопросы

Сколько времени занимает установка WordPress на VPS?
С этим гайдом — 40–60 минут, включая SSL. Опытный админ укладывается в пятнадцать. Через панель типа ISPmanager — около десяти минут, из которых восемь занимает установка самой панели.
Какой VPS взять именно под этот гайд?
Любой с чистой Ubuntu 24.04 и 1–2 ГБ памяти. Мы проверяли шаги на Timeweb Cloud — там почасовая оплата, а по промокоду flutterflow первое пополнение счёта удваивается, так что обкатка гайда выходит по цене чашки кофе. Альтернативы — Beget с посуточным списанием и REG.RU, если домен уже куплен там.
Хватит ли VPS с 1 ГБ памяти?
Для одного сайта на связке Nginx + PHP-FPM + MariaDB — да, с запасом. Впритык станет, когда добавите Redis, почтовый сервер или второй-третий сайт. Панель управления на 1 ГБ ставить уже не стоит.
Почему Nginx, а не Apache?
Nginx экономнее по памяти и быстрее раздаёт статику, а именно память — главный дефицит дешёвого VPS. Минус один — .htaccess не работает, правила плагинов безопасности придётся переносить в конфиг руками.
Можно ли поставить несколько сайтов на один VPS?
Да, каждому — свой server-блок Nginx, своя база и свой пользователь БД. Ограничитель — память: считайте примерно по 512 МБ на активный WordPress-сайт.
Кто отвечает за безопасность сервера?
Вы. Провайдер отвечает за железо и сеть, всё выше гипервизора — обновления, файрвол, SSH — ваша зона ответственности. Если это пугает, посмотрите на managed-хостинг: там серверную часть берёт на себя провайдер.
Блок: Кнопки

Перейти к делу?
Каталог хостингов уже здесь.

Сортировка по композитной оценке, фильтры по WooCommerce, ДЦ в РФ и WP-CLI.

К рейтингу 2026
Многоразовый блок — изменения применятся ко всем страницам