HELPER VPS

Установка WordPress на VPS: способы для образов WordPress, LEMP и Docker

Если установить WordPress на собственный сервер, вы сами решаете всё: плагины, темы и даже настройки сервера. Выберите способ установки, который лучше всего подходит к образу, выбранному при создании сервера, и следуйте шагам.

Выберите один из трёх способов

В HELPER VPS подготовка к WordPress заметно сокращается уже тем, что вы выбираете образ при создании сервера. Выберите один способ под свою ситуацию.

  • Образ WordPress: на Ubuntu 24.04 устанавливаются Nginx, MySQL, PHP и WordPress. Достаточно пройти экран установки в браузере, поэтому это самый быстрый способ открыть блог.
  • Образ LEMP: вы сами ставите WordPress на сервер с готовыми Nginx, MySQL и PHP. Удобно, если нужно держать несколько сайтов на одном сервере или самостоятельно задать структуру папок и настройки.
  • Образ Docker: WordPress и база данных запускаются в контейнерах. Удобно для переноса сайта на другой сервер или многократного создания одинакового окружения.

Небольшому блогу для начала хватит самого маленького общего тарифа на 12 ГБ, а интернет-магазины или популярные сайты быстрее открывают страницы на высокопроизводительном сервере NVMe с быстрым диском. Рекомендации по размерам есть на странице WordPress VPS.

Сначала подключите домен

Если вы планируете использовать домен, подключите его до установки, и сертификат HTTPS можно будет получить сразу. Создайте две записи ниже в панели управления DNS у регистратора домена.

  • Запись A: имя @ (и www), значение IPv4 адрес сервера
  • Запись AAAA: имя @ (и www), значение IPv6 адрес сервера

Распространение записей обычно занимает от нескольких минут до нескольких часов. Если на сервере команда ping -c 3 example.com показывает IP вашего сервера, всё готово. В командах ниже замените example.com на свой домен.

Способ 1. Быстрый старт с образа WordPress

  • На экране создания сервера выберите регион и размер, а в списке образов WordPress.
  • Когда сервер перейдёт в статус «Работает», откройте в браузере http://YOUR_SERVER_IP.
  • Выберите язык, задайте название сайта, логин администратора, пароль и e-mail, и установка завершена.
  • Войдите в панель администратора по адресу http://YOUR_SERVER_IP/wp-admin.

Задайте длинный и сложный пароль администратора, а вместо логина admin выберите имя, известное только вам, и попытки входа будут не страшны. Для подключения домена и HTTPS просто выполните шаги из раздела про HTTPS ниже.

Способ 2. Ручная установка на сервер LEMP

В образе LEMP уже установлены Nginx, MySQL и PHP-FPM. Остаётся добавить нужные WordPress расширения PHP, базу данных и настройки сайта. Инструкция для Ubuntu 24.04, в других версиях Ubuntu и в Debian порядок тот же.

Шаг 1. Установите расширения PHP

Терминал
apt update
apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-imagick
php -v
ls /run/php/

php -v показывает версию PHP, а ls /run/php/ имя сокета PHP-FPM. В Ubuntu 24.04 стоит PHP 8.3, поэтому вы увидите php8.3-fpm.sock, в Debian 13 PHP 8.4 и php8.4-fpm.sock. Используйте это имя в настройках Nginx ниже.

Шаг 2. Создайте базу данных и пользователя

Если вы подключены под root, команда mysql открывает MySQL без пароля. Четыре строки ниже создают отдельную базу данных и пользователя для WordPress. Замените пароль на длинный и запишите его.

mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'change_this_long_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Шаг 3. Скачайте WordPress

Терминал
cd /var/www
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz && rm latest.tar.gz
chown -R www-data:www-data /var/www/wordpress

Если сделать владельцем папки пользователя веб-сервера (www-data), установщик в браузере сам создаст файл настроек, а плагины и темы можно будет ставить прямо из панели администратора.

Шаг 4. Настройте сайт в Nginx

/etc/nginx/sites-available/wordpress
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/wordpress;
    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 ~ /\.ht {
        deny all;
    }
}
Терминал
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Если nginx -t выводит syntax is ok, test is successful, настройки верны. Если домена пока нет, укажите _ в server_name и удалите ссылку на сайт по умолчанию (/etc/nginx/sites-enabled/default), и сайт откроется по IP адресу.

Шаг 5. Завершите установку в браузере

Откройте http://example.com, и появится экран установки. Укажите имя базы данных wordpress, пользователя wpuser, пароль из шага 2 и хост localhost, задайте название сайта и учётную запись администратора, и всё готово.

Способ 3. Установка через Docker Compose

На сервере из образа Docker или на сервере, где вы установили Docker вручную, один файл запускает WordPress вместе с MariaDB. Замените оба пароля на длинные.

Терминал
mkdir -p /opt/wordpress && cd /opt/wordpress
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wpuser
      MARIADB_PASSWORD: change_this_long_password
      MARIADB_ROOT_PASSWORD: change_this_other_password
    volumes:
      - db:/var/lib/mysql
  wordpress:
    image: wordpress:latest
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: change_this_long_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp:/var/www/html
volumes:
  db:
  wp:
EOF
docker compose up -d

Откройте http://YOUR_SERVER_IP, и появится экран установки. Данные базы уже прописаны в файле, поэтому остаётся задать название сайта и учётную запись администратора. Записи и загруженные файлы хранятся в томе wp, база данных в томе db, и при обновлении контейнеров до новой версии всё сохраняется.

Для HTTPS на сайте в Docker удобнее всего поставить перед ним обратный прокси. Ещё проще использовать образ Coolify или Dokploy: достаточно ввести домен в интерфейсе, и сертификат подключится автоматически.

Подключение сертификата HTTPS

На образе WordPress и сервере LEMP бесплатный сертификат Let's Encrypt получается через Certbot и сразу подключается к Nginx. Домен должен указывать на IP сервера.

Терминал
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

Введите e-mail и примите условия, и сертификат будет выпущен, а в настройки Nginx добавится HTTPS. Certbot продлевает сертификат автоматически. Затем в панели WordPress в разделе «Настройки > Общие» поменяйте адрес WordPress и адрес сайта на https. Если вы используете файрвол, откройте оба порта командой ufw allow 80,443/tcp.

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

  • Постоянные ссылки: выберите в разделе «Настройки > Постоянные ссылки» вариант с названием записи, и адреса станут понятнее. Строка try_files в настройках Nginx выше обрабатывает такие адреса.
  • Размер загрузки: чтобы загружать большие изображения или файлы тем, увеличьте до одного размера client_max_body_size в Nginx и upload_max_filesize, post_max_size в /etc/php/8.3/fpm/php.ini, затем выполните systemctl restart php8.3-fpm.
  • Отправка почты: письма о регистрации, восстановлении пароля и заказах отправляйте через SMTP плагин, подключённый к порту 587 или 465 сервиса отправки почты. Подробнее в руководстве по отправке почты.
  • Обновления: регулярно обновляйте ядро WordPress, плагины и темы из панели администратора, а сервер командой apt update && apt upgrade -y.
  • Резервные копии: записи и база данных это ценности, которые не восстановить заново. Включите автоматическое резервное копирование при создании сервера или сохраняйте копии способами из руководства по резервным копиям и снимкам.

Чтобы установить всё заново, снова выберите образ WordPress в разделе переустановки на странице сервера, и сервер вернётся в чистое состояние. Диск будет установлен заново, поэтому сначала скачайте нужные записи через «Инструменты > Экспорт», а порядок действий смотрите в руководстве по переустановке.

Полезные руководства по теме

Настройки, которые стоит сделать вслед за этим руководством.

Все руководства