В этом руководстве мы развернём WordPress на виртуальной машине с Ubuntu 24.04. Рабочая конфигурация будет включать Nginx, PHP-FPM, MariaDB, Redis Object Cache, домен и SSL-сертификат Let’s Encrypt.
Итоговая архитектура выглядит так: пользователь → HTTPS → Nginx → PHP-FPM и WordPress → MariaDB → Redis. Чтобы было ещё нагляднее, подготовили скриншот:

Для установки потребуется VPS с публичным IP, Ubuntu 24.04 LTS и открытыми TCP-портами 22, 80 и 443. Для небольшой установки WordPress достаточно конфигурации с 2 vCPU, 4 ГБ оперативной памяти и 20 ГБ дискового пространства.
Конечно в наше время популярности контейнеров часто проще найти или подготовить docker-compose.yml, и, после установки докера, всё описанное ниже займёт ровно одну команду - docker-compose up -d, но мы разберём старый добрый механизм ручной установки, как минимум для понимания что же происходит "под капотом".
Сначала создадим виртуальную машину, подключим Floating IP и проверим сетевые правила. Затем установим Nginx, PHP-FPM, MariaDB и Redis, создадим отдельную базу данных и пользователя для WordPress, загрузим файлы CMS и настроим права доступа.
Nginx будет принимать HTTP- и HTTPS-запросы и передавать PHP-файлы в PHP-FPM. MariaDB будет хранить страницы, пользователей и настройки сайта. Redis будет использоваться для объектного кеширования и снижения количества повторных запросов к базе данных.
Для сайта будет использоваться поддомен: wordpress.deploy-test-lab.com
После создания DNS-записи выпустим SSL-сертификат Let’s Encrypt и настроим автоматический редирект с HTTP на HTTPS. Затем пройдём мастер установки WordPress, создадим администратора и подключим Redis Object Cache.
В результате получим рабочий WordPress-сайт, доступный по HTTPS, с отдельной базой MariaDB, кешированием Redis и автоматическим запуском всех необходимых сервисов после перезагрузки VPS.
Архитектура WordPress на VPS
Перед установкой полезно понять, какие компоненты будут работать на сервере и за что отвечает каждый из них. WordPress, как веб-приложение, не запускается сам по себе: он зависит от веб-сервера, PHP, базы данных и кеша.
Какие компоненты понадобятся
Для развёртывания WordPress установим несколько компонентов:
| Компонент | Назначение |
| Ubuntu 24.04 LTS | Операционная система виртуальной машины |
| Nginx | Принимает HTTP- и HTTPS-запросы, терминирует SSL |
| PHP-FPM | Выполняет PHP-код WordPress |
| MariaDB | Хранит страницы, пользователей и настройки сайта |
| WordPress | Система управления содержимым |
| Redis | Кеширует объекты и снижает количество повторных запросов к базе |
| Certbot | Выпускает и обновляет SSL-сертификат Let’s Encrypt |
Для небольшой установки достаточно VPS с 2 vCPU, 4 ГБ оперативной памяти и 20 ГБ диска. Серверу также понадобятся публичный IP и входящие TCP-порты 22, 80 и 443.
Как взаимодействуют Nginx, PHP-FPM, MariaDB и Redis
Когда пользователь открывает сайт, запрос сначала приходит в Nginx. Статические файлы — изображения, CSS и JavaScript — Nginx может отдавать напрямую.
Если запрашивается PHP-страница, Nginx передаёт её в PHP-FPM. PHP выполняет код WordPress, а WordPress обращается к MariaDB за содержимым страницы, настройками и данными пользователя.
Redis дополняет эту схему объектным кешем. WordPress может сохранять в нём часто используемые результаты запросов и получать их повторно без постоянного обращения к MariaDB.
В итоге каждый компонент выполняет отдельную задачу: Nginx принимает запросы, PHP-FPM запускает WordPress, MariaDB хранит постоянные данные, а Redis ускоряет повторные операции.
Подготовка виртуальной машины
Установку начнём с создания чистой виртуальной машины на Ubuntu 24.04 LTS. Затем подключим публичный IP, проверим сетевые правила и войдём на сервер по SSH.
Создание VM в облачной панели

В панели облака создайте новую виртуальную машину. Для демонстрационного WordPress-сайта используем следующую конфигурацию:
- Имя VM — wordpress-guide;
- Образ — Ubuntu 24.04 LTS;
- 2 vCPU;
- 4 ГБ оперативной памяти;
- Системный диск 20 ГБ;
- Приватная сеть проекта;
- Авторизация по SSH key pair.
Приватный SSH-ключ нужно сохранить при создании key pair. Он потребуется для подключения к серверу и повторно обычно не выдаётся.
После подтверждения дождитесь статуса Active.
Подключение публичного IP и настройка firewall
Виртуальная машина получает приватный адрес внутри облачной сети. Чтобы подключаться к ней из интернета и открыть WordPress по домену, нужно привязать Floating IP.
В нашем примере VM получила:
Private IP: 172.30.16.104
Floating IP: 203.0.113.10
Для работы понадобятся входящие TCP-порты:
| Порт | Назначение |
| 22 | Подключение по SSH |
| 80 | HTTP и выпуск сертификата Let’s Encrypt |
| 443 | HTTPS |
Эти правила можно настроить в security group облачной панели.
Подключение к серверу по SSH
Мы будем использовать командную строку, например на Windows можно использовать PowerShell или Windows Terminal. Перейдите в каталог, где сохранён приватный SSH-ключ, и выполните команду: ssh -i .\wordpress-guide.pem ubuntu@<FLOATING_IP>
Стоит отметить, что ssh доступен по-умолчанию в современных версиях Windows, в старых его можно поставить отдельно или использовать альтернативные клиенты.
Вместо <FLOATING_IP> укажите публичный IP своей виртуальной машины. Его можно посмотреть в списке instances или в разделе Floating IPs облачной панели.
В нашем случае серверу назначен адрес 203.0.113.10, поэтому команда выглядит так: ssh -i .\wordpress-guide.pem ubuntu@203.0.113.10
Имя файла ключа у читателя также может отличаться. Вместо wordpress-guide.pem нужно указать путь к своему приватному ключу.
Имя пользователя зависит от выбранного образа. Для Ubuntu cloud images обычно используется пользователь ubuntu.
При первом подключении SSH предложит подтвердить fingerprint сервера. Введите: yes
После успешной авторизации откроется терминал виртуальной машины. Все дальнейшие команды выполняются уже непосредственно на VPS.
Обновление Ubuntu
Перед установкой WordPress-стека обновите список пакетов и установленные компоненты:
sudo apt update
sudo apt upgrade -y
Затем установите базовые утилиты: sudo apt install -y curl wget unzip ca-certificates ufw
Проверьте версию системы: lsb_release -a
После обновления можно переходить к установке Nginx, PHP-FPM, MariaDB и Redis.
Установка Nginx, PHP, MariaDB и Redis
Установка системных пакетов
После обновления Ubuntu установите веб-сервер Nginx, MariaDB, Redis, PHP-FPM и расширения PHP, необходимые для работы WordPress:
sudo apt install -y nginx mariadb-server redis-server \
php-fpm php-mysql php-curl php-gd php-intl php-mbstring \
php-xml php-zip php-redis
Пакет php-fpm устанавливает PHP FastCGI Process Manager, через который Nginx будет выполнять PHP-код. Остальные расширения обеспечивают подключение к MariaDB, обработку изображений, архивов, XML, многобайтовых строк и сетевых запросов.
Актуальная версия WordPress рекомендует использовать PHP 8.3 или новее и MariaDB 10.11 или новее. В стандартных репозиториях Ubuntu 24.04 доступны подходящие версии этих компонентов.
После установки включите автоматический запуск сервисов:
sudo systemctl enable nginx
sudo systemctl enable mariadb
sudo systemctl enable php8.3-fpm
sudo systemctl enable redis-server
Запустите их, если они ещё не были запущены автоматически: sudo systemctl start nginx mariadb php8.3-fpm redis-server
Проверка запущенных сервисов

Проверьте состояние всех четырёх сервисов одной командой:
for service in nginx mariadb php8.3-fpm redis-server; do
printf "%-15s " "$service:"
systemctl is-active "$service"
done
При исправной установке напротив каждого сервиса появится статус active:
nginx: active
mariadb: active
php8.3-fpm: active
redis-server: active
Отдельный сервис можно проверить подробнее. Например, для Nginx используется команда: sudo systemctl status nginx --no-pager
Если все компоненты работают, можно переходить к подготовке базы данных.
Настройка MariaDB
Запустите встроенный сценарий первоначальной защиты MariaDB: sudo mariadb-secure-installation
Сценарий последовательно предложит изменить параметры безопасности. Набор вопросов может зависеть от версии MariaDB. Для отдельного WordPress-сервера рекомендуется:
- Оставить вход администратора базы через Unix socket;
- Удалить анонимных пользователей;
- Запретить удалённый вход для пользователя root;
- Удалить тестовую базу данных;
- Обновить таблицы привилегий.
Удалённый доступ к MariaDB для этой конфигурации не нужен: WordPress и база данных работают на одной виртуальной машине.
После завершения откройте консоль MariaDB: sudo mariadb
Если появилось приглашение вида MariaDB [(none)]>, подключение выполнено успешно.
Создание базы данных и пользователя WordPress
Создайте отдельную базу данных:
CREATE DATABASE wordpress
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Затем создайте пользователя, от имени которого WordPress будет подключаться к MariaDB:
CREATE USER 'wordpress_user'@'localhost'
IDENTIFIED BY 'STRONG_DATABASE_PASSWORD';
Вместо STRONG_DATABASE_PASSWORD укажите собственный сложный пароль. Он понадобится позднее при заполнении файла wp-config.php.
Выдайте пользователю права только на базу WordPress:
GRANT ALL PRIVILEGES ON wordpress.*
TO 'wordpress_user'@'localhost';
Примените изменения: FLUSH PRIVILEGES;
Проверьте созданную базу: SHOW DATABASES;
В списке должна присутствовать строка wordpress. После проверки выйдите из MariaDB: EXIT;
Использование отдельного пользователя ограничивает его доступ одной базой вместо предоставления WordPress административных прав на весь сервер MariaDB. Официальное руководство WordPress также предусматривает предварительное создание базы данных и пользователя с правами на неё.
Проверка Redis
Убедитесь, что Redis отвечает на локальные запросы: redis-cli ping
Исправный сервер вернёт: PONG
Redis устанавливается на той же VM и не должен быть доступен напрямую из интернета. WordPress будет обращаться к нему локально через PHP-расширение php-redis. Проверка командой redis-cli ping рекомендована в официальной документации Redis.
На этом серверная часть стека подготовлена: Nginx принимает веб-запросы, PHP-FPM выполняет PHP-код, MariaDB готова хранить данные сайта, а Redis — обслуживать объектный кеш.
Установка WordPress
Загрузка и размещение файлов
Перейдите во временный каталог и загрузите последнюю стабильную версию WordPress с официального сайта:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
Распакуйте архив: tar -xzf latest.tar.gz
Переместите полученный каталог в /var/www: sudo mv wordpress /var/www/wordpress
Проверьте содержимое: ls -la /var/www/wordpress
В каталоге должны находиться файлы и папки WordPress, включая:
index.php
wp-admin
wp-content
wp-includes
wp-config-sample.php
После успешного переноса загруженный архив можно удалить: rm /tmp/latest.tar.gz
Официальная ручная установка WordPress также предполагает загрузку дистрибутива, создание базы данных и последующий запуск установочного сценария через браузер.
Настройка владельца и прав
Назначьте владельцем файлов системного пользователя www-data, от имени которого PHP-FPM и Nginx работают с содержимым сайта: sudo chown -R www-data:www-data /var/www/wordpress
Для каталогов установите права 755: sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
Для файлов установите права 644: sudo find /var/www/wordpress -type f -exec chmod 644 {} \;
Такая конфигурация позволяет владельцу изменять файлы, а остальным пользователям — только читать их и переходить по каталогам. Выдавать каталогу WordPress права 777 не требуется.
Создание wp-config.php
Создайте рабочий конфигурационный файл на основе шаблона:
sudo cp /var/www/wordpress/wp-config-sample.php \
/var/www/wordpress/wp-config.php
Откройте его в редакторе: sudo nano /var/www/wordpress/wp-config.php
Найдите блок параметров базы данных:
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
Замените значения на данные, созданные в MariaDB:
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress_user' );
define( 'DB_PASSWORD', 'STRONG_DATABASE_PASSWORD' );
define( 'DB_HOST', 'localhost' );
Значение STRONG_DATABASE_PASSWORD нужно заменить тем же паролем, который был указан при создании пользователя MariaDB.
Далее откройте в браузере официальный генератор уникальных ключей WordPress: https://api.wordpress.org/secret-key/1.1/salt/
Скопируйте сгенерированный блок и замените им строки с AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY и соответствующими значениями SALT в файле wp-config.php.
Сохраните изменения сочетанием Ctrl+O, подтвердите имя файла клавишей Enter и закройте Nano сочетанием Ctrl+X.
После редактирования дополнительно ограничьте доступ к конфигурационному файлу: sudo chmod 640 /var/www/wordpress/wp-config.php
Подключение WordPress к MariaDB
Проверить данные базы можно до настройки Nginx. Выполните вход от имени созданного пользователя: mariadb -u wordpress_user -p wordpress
Введите пароль базы данных. После успешного подключения появится приглашение: MariaDB [wordpress]>
Проверьте текущую базу: SELECT DATABASE();
Ожидаемый результат: wordpress
Завершите сеанс: EXIT;
Это подтверждает, что база существует, пользователь авторизуется и имеет к ней доступ. Сам WordPress создаст необходимые таблицы позднее, во время запуска веб-мастера установки.
Файлы CMS и параметры базы теперь подготовлены. Следующим этапом станет создание server block Nginx и передача PHP-запросов в PHP-FPM.
Настройка Nginx
Создание server block
Создайте отдельный конфигурационный файл Nginx для WordPress: sudo nano /etc/nginx/sites-available/wordpress
Добавьте в него следующую конфигурацию:
server {
listen 80;
listen [::]:80;
server_name wordpress.deploy-test-lab.com;
root /var/www/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress_access.log;
error_log /var/log/nginx/wordpress_error.log;
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;
}
}
Директива server_name должна содержать домен или поддомен, который будет использоваться для сайта. В нашем случае это: wordpress.deploy-test-lab.com
Если используется другой домен, его необходимо заменить как в конфигурации Nginx, так и в последующих командах Certbot.
Параметр root указывает на каталог с файлами WordPress. Конструкция try_files сначала проверяет наличие запрошенного файла или каталога, а затем направляет запрос в index.php. Благодаря этому WordPress сможет обрабатывать постоянные ссылки на страницы и записи.
Сохраните файл сочетанием Ctrl+O, нажмите Enter и закройте Nano сочетанием Ctrl+X.
Активируйте конфигурацию, создав символическую ссылку в каталоге sites-enabled:
sudo ln -s /etc/nginx/sites-available/wordpress \
/etc/nginx/sites-enabled/wordpress
Стандартную конфигурацию Nginx можно отключить, чтобы она не перехватывала запросы к серверу: sudo rm -f /etc/nginx/sites-enabled/default
Отдельные server blocks позволяют обслуживать на одном VPS несколько сайтов с разными доменами и каталогами. Nginx выбирает подходящий блок по адресу и значению server_name.
Подключение PHP-FPM
Nginx не выполняет PHP-код самостоятельно. Запросы к файлам с расширением .php передаются сервису PHP-FPM через Unix-сокет:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
Проверьте, что сокет PHP-FPM существует: ls -l /run/php/
В выводе должен присутствовать файл: php8.3-fpm.sock
Также можно проверить установленную версию PHP: php -v
И состояние PHP-FPM: systemctl is-active php8.3-fpm
При исправной работе команда вернёт: active
Если на сервере установлена другая версия PHP, имя сокета в конфигурации Nginx необходимо изменить. Например, для PHP 8.4 путь может выглядеть как /run/php/php8.4-fpm.sock.
Проверка конфигурации Nginx

Перед применением изменений проверьте синтаксис всех конфигурационных файлов: sudo nginx -t
При отсутствии ошибок Nginx выведет сообщения:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Параметр -t проверяет синтаксис конфигурации и доступность указанных в ней файлов.
После успешной проверки перезагрузите конфигурацию без остановки веб-сервера: sudo systemctl reload nginx
Проверьте ответ сервера по локальному адресу: curl -I -H "Host: wordpress.deploy-test-lab.com" http://127.0.0.1
На этом этапе в ответе может отображаться код 200, 301 или 302 — результат зависит от состояния установки WordPress. Главное, чтобы запрос обрабатывался созданным server block, а Nginx не возвращал ошибку конфигурации.
Домен и SSL
Создание DNS-записи
Чтобы сайт открывался по доменному имени, создайте в DNS-зоне запись типа A.
Для используемого в руководстве поддомена параметры выглядят так:
| Параметр | Значение |
| Тип | A |
| Имя | wordpress |
| IPv4-адрес | 203.0.113.10 |
| TTL | Auto или значение по умолчанию |
В данном случае 203.0.113.10 — Floating IP нашей виртуальной машины. В своей конфигурации необходимо указать публичный IP, назначенный вашему VPS.
Если DNS-зона обслуживается через Cloudflare, на время первоначальной настройки можно установить для записи режим DNS only. В этом режиме DNS возвращает реальный IP сервера и не направляет запрос через прокси Cloudflare.
После сохранения записи проверьте, на какой адрес указывает поддомен: getent hosts wordpress.deploy-test-lab.com
Либо выполните проверку с локального компьютера: nslookup wordpress.deploy-test-lab.com
В результате должен отображаться публичный IP VPS: 203.0.113.10
Обновление DNS может занять некоторое время. Выпускать сертификат следует только после того, как домен начнёт указывать на нужный сервер.
Дополнительно проверьте доступность сайта по HTTP: curl -I http://wordpress.deploy-test-lab.com
Для проверки домена через HTTP сервер должен быть доступен снаружи по TCP-порту 80. Let’s Encrypt использует его при проверке HTTP-01, поэтому полностью закрывать порт 80 после настройки HTTPS также не рекомендуется.
Выпуск сертификата Let’s Encrypt
Для автоматического получения сертификата и настройки Nginx установите Certbot. Официальная инструкция Certbot для Nginx рекомендует установку через Snap:
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
Проверьте установленную версию: /snap/bin/certbot --version
Запросите сертификат для поддомена:
sudo /snap/bin/certbot --nginx \
-d wordpress.deploy-test-lab.com
Certbot попросит указать адрес электронной почты, принять условия использования и выбрать, нужно ли делиться адресом с партнёрами проекта.
После подтверждения Certbot:
- Проверит, что домен указывает на этот сервер;
- Выпустит сертификат Let’s Encrypt;
- Добавит SSL-параметры в конфигурацию Nginx;
- Настроит перенаправление с HTTP на HTTPS.
Плагин --nginx может автоматически изменить конфигурацию веб-сервера и включить HTTPS для уже работающего HTTP-сайта. Перед запуском Certbot сайт должен быть доступен через Nginx по своему доменному имени.
После выпуска сертификата повторно проверьте конфигурацию: sudo nginx -t
Затем убедитесь, что автоматическое обновление сертификатов работает: sudo /snap/bin/certbot renew --dry-run
Команда выполняет тестовое обновление без замены действующего сертификата.
Проверка HTTPS и автоматического редиректа

Откройте в браузере: https://wordpress.deploy-test-lab.com
Соединение должно быть защищено действующим сертификатом, а браузер не должен показывать предупреждения о безопасности.
Проверьте перенаправление с HTTP: curl -I http://wordpress.deploy-test-lab.com
В ответе должен присутствовать код перенаправления и HTTPS-адрес:
HTTP/1.1 301 Moved Permanently
Location: https://wordpress.deploy-test-lab.com/
После этого проверьте ответ защищённой версии: curl -I https://wordpress.deploy-test-lab.com
В зависимости от текущего этапа установки WordPress сервер должен вернуть успешный ответ или перенаправление на мастер настройки: HTTP/2 200 или HTTP/2 302
Таким образом, запросы к сайту принимаются Nginx, незашифрованные подключения перенаправляются на HTTPS, а сертификат Let’s Encrypt используется для защиты трафика.
Первичная настройка WordPress

Запуск мастера установки
После настройки домена, Nginx и SSL откройте сайт в браузере. У нас это будет: https://wordpress.deploy-test-lab.com
Поскольку таблицы WordPress ещё не созданы, вместо готового сайта откроется мастер первоначальной настройки. Сначала выберите язык интерфейса и нажмите Continue.
Если мастер не открывается автоматически, перейдите по адресу: https://wordpress.deploy-test-lab.com/wp-admin/install.php
WordPress использует параметры из файла wp-config.php, подключается к ранее созданной базе MariaDB и во время установки создаёт в ней необходимые таблицы.
Создание администратора и параметров сайта
На следующем экране заполните основные параметры сайта:
- Название сайта — например, Deploy Test Lab;
- Имя пользователя — логин администратора;
- Пароль — сложный уникальный пароль;
- Ваш email — адрес администратора;
- Видимость для поисковых систем — для временного стенда можно попросить поисковые системы не индексировать сайт.
Отдельно отметим, что не рекомендуется использовать в качестве логина стандартное имя admin. Для рабочего проекта лучше выбрать отдельное имя, которое сложно угадать.
Параметр видимости не блокирует доступ к сайту, а только передаёт поисковым системам просьбу не индексировать его. Для демонстрационного стенда эту настройку можно включить, а перед публикацией полноценного сайта — отключить в разделе Настройки → Чтение.
Нажмите Установить WordPress. После завершения появится сообщение об успешной установке и кнопка входа.
Авторизуйтесь с помощью созданной учётной записи: https://wordpress.deploy-test-lab.com/wp-login.php
Название сайта, email и некоторые другие параметры позднее можно изменить через административную панель.
Проверка панели управления

После входа откроется панель управления WordPress: https://wordpress.deploy-test-lab.com/wp-admin/
На главной странице Dashboard отображаются сведения о состоянии сайта, публикациях, комментариях и текущей конфигурации WordPress. Через боковое меню можно управлять страницами, записями, пользователями, темами, плагинами и общими настройками.
Проверьте, что:
- Административная панель открывается по HTTPS;
- Имя сайта отображается без ошибок;
- Страницы панели загружаются корректно;
- В браузере отсутствуют предупреждения о сертификате.
После этого базовую установку WordPress можно считать завершённой. Далее подключим постоянный объектный кеш Redis.
Подключение Redis
Установка и активация Redis Object Cache
Redis уже установлен на VPS, а расширение php-redis обеспечивает взаимодействие между PHP и сервером Redis. Теперь необходимо подключить WordPress к Redis с помощью плагина Redis Object Cache.
В панели управления откройте: Плагины → Добавить плагин
В строке поиска введите: Redis Object Cache
Выберите плагин Redis Object Cache, установите его и нажмите Активировать.
Плагин добавляет в WordPress постоянный объектный кеш. Часто используемые результаты запросов могут сохраняться в Redis и повторно извлекаться без нового обращения к MariaDB. Redis при этом не заменяет базу данных: постоянные данные сайта по-прежнему хранятся в MariaDB.
Для текущей конфигурации Redis работает локально со стандартными параметрами:
Host: 127.0.0.1
Port: 6379
Database: 0
Обычно плагин обнаруживает локальный Redis автоматически. Чтобы явно закрепить параметры подключения, откройте файл: sudo nano /var/www/wordpress/wp-config.php
Перед строкой: /* That's all, stop editing! Happy publishing. */
добавьте:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_REDIS_PREFIX', 'wordpress:' );
Префикс помогает отделить ключи этого WordPress-сайта от данных других приложений, если один сервер Redis в дальнейшем будет использоваться несколькими проектами.
Сохраните файл и перезапустите PHP-FPM: sudo systemctl restart php8.3-fpm
Проверьте, что Redis и PHP-FPM работают: systemctl is-active redis-server php8.3-fpm
Если всё ок, то ожидаемый результат: active
Проверка подключения к Redis

В панели WordPress откройте: Настройки → Redis
Если сервер Redis доступен, на странице плагина появится информация о подключении. Нажмите Enable Object Cache, чтобы установить drop-in-файл object-cache.php и включить постоянное объектное кеширование.
После активации проверьте основные показатели:
Status: Connected
Drop-in: Valid
Redis: Reachable
Названия отдельных полей могут немного отличаться в зависимости от версии плагина, но основной статус должен показывать успешное подключение.
Дополнительно убедитесь, что WordPress создал drop-in-файл: ls -l /var/www/wordpress/wp-content/object-cache.php
Проверьте Redis через терминал: redis-cli ping
Ответ должен остаться прежним: PONG
Посмотреть количество сохранённых ключей можно командой: redis-cli DBSIZE
Сразу после подключения значение может быть небольшим. Откройте несколько страниц сайта и административной панели, а затем повторите команду. Количество ключей должно увеличиться.
После появления статуса Connected WordPress начинает использовать Redis как постоянный объектный кеш. При этом очистка кеша не удаляет записи, страницы или настройки из MariaDB — она удаляет только временные данные, которые WordPress при необходимости создаст заново.
Проверка после установки
Статус сервисов
После завершения настройки проверьте состояние всех компонентов стека:
for service in nginx mariadb php8.3-fpm redis-server; do
printf "%-15s " "$service:"
systemctl is-active "$service"
done
Ожидаемый результат:
nginx: active
mariadb: active
php8.3-fpm: active
redis-server: active
Если один из сервисов не запущен, посмотрите его подробный статус. Например: sudo systemctl status nginx --no-pager
По аналогии можно проверить mariadb, php8.3-fpm и redis-server.
Проверка сайта и HTTPS
Откройте сайт в браузере. В нашем случае это будет: https://wordpress.deploy-test-lab.com
Убедитесь, что главная страница загружается без ошибок, а браузер не показывает предупреждение о сертификате.
Проверьте перенаправление с HTTP: curl -I http://wordpress.deploy-test-lab.com
В ответе должен присутствовать код 301 или 308 и заголовок Location с HTTPS-адресом:
Location: https://wordpress.deploy-test-lab.com/
Затем проверьте защищённую версию: curl -I https://wordpress.deploy-test-lab.com
Сервер должен вернуть успешный ответ или перенаправление на другую страницу WordPress.
Проверка базы данных и Redis
Проверьте доступ к базе данных от имени пользователя WordPress: mariadb -u wordpress_user -p wordpress
После ввода пароля выполните: SHOW TABLES;
После завершения установки в базе должны присутствовать таблицы WordPress, включая wp_posts, wp_users, wp_options и другие.
Завершите сеанс: EXIT;
Проверьте ответ Redis: redis-cli ping
Ожидаемый результат: PONG
Затем посмотрите количество ключей: redis-cli DBSIZE
Если Redis Object Cache включён и сайт уже открывался несколько раз, значение должно быть больше нуля.
Дополнительно можно проверить наличие drop-in-файла: ls -l /var/www/wordpress/wp-content/object-cache.php
Проверка автозапуска после reboot
Убедитесь, что все сервисы включены в автозагрузку:
for service in nginx mariadb php8.3-fpm redis-server; do
printf "%-15s " "$service:"
systemctl is-enabled "$service"
done
Для каждого компонента должен отображаться статус enabled.
Перезагрузите VPS: sudo reboot
SSH-соединение будет разорвано. Подождите около минуты и подключитесь к серверу повторно: ssh -i .\wordpress-guide.pem ubuntu@203.0.113.10
В своей команде необходимо использовать имя собственного приватного ключа и публичный IP своей виртуальной машины.
После повторного входа снова проверьте сервисы:
for service in nginx mariadb php8.3-fpm redis-server; do
printf "%-15s " "$service:"
systemctl is-active "$service"
done
Также откройте сайт в браузере и убедитесь, что WordPress по-прежнему доступен по HTTPS, а Redis Object Cache сохраняет статус Connected.
После этой проверки можно считать, что виртуальная машина, веб-сервер, PHP, база данных, Redis и SSL корректно работают и запускаются автоматически.
Заключение

В результате на VPS с Ubuntu 24.04 LTS развёрнут полноценный WordPress-стек на базе Nginx, PHP-FPM, MariaDB и Redis. Сайт доступен по доменному имени через HTTPS, а сертификат Let’s Encrypt обновляется автоматически.
Nginx принимает входящие запросы и передаёт PHP-файлы в PHP-FPM. MariaDB хранит постоянные данные сайта, а Redis Object Cache снижает количество повторных запросов к базе данных. Все основные сервисы включены в автозагрузку и продолжают работать после перезагрузки виртуальной машины.
Такая конфигурация подходит для небольшого сайта, блога, корпоративной страницы или тестового проекта. При росте нагрузки её можно расширить: увеличить ресурсы VPS, подключить резервное копирование, вынести базу данных на отдельный сервер или добавить CDN.
FAQ
Какая конфигурация VPS нужна для WordPress?
Для небольшого сайта или тестового стенда подойдёт виртуальная машина с 2 vCPU, 4 ГБ оперативной памяти и диском от 20 ГБ. Этого достаточно для Ubuntu, Nginx, PHP-FPM, MariaDB, Redis и самого WordPress.
При росте посещаемости, увеличении количества плагинов или использовании тяжёлой темы ресурсы VPS можно увеличить без изменения общей архитектуры.
Можно ли установить WordPress без Redis?
Да. Redis не является обязательным компонентом WordPress. Сайт продолжит работать с Nginx, PHP-FPM и MariaDB.
Redis Object Cache используется для ускорения повторных операций и уменьшения количества обращений к базе данных. Для небольшого сайта эффект может быть умеренным, но при росте нагрузки объектный кеш становится полезнее.
Почему используется MariaDB, а не MySQL?
WordPress поддерживает обе системы. В этой инструкции используется MariaDB, поскольку она доступна в стандартных репозиториях Ubuntu и совместима с WordPress.
На момент подготовки руководства WordPress рекомендует PHP 8.3 или новее и MariaDB 10.11 или новее.
Зачем нужен PHP-FPM?
Nginx не выполняет PHP-код самостоятельно. Он передаёт PHP-запросы в PHP-FPM, который запускает WordPress и возвращает результат веб-серверу.
Если PHP-FPM остановлен или в server block указан неправильный путь к сокету, PHP-страницы не будут обрабатываться.
Можно ли открыть WordPress только по IP-адресу?
До настройки домена сервер можно проверить по публичному IP, но для постоянной работы лучше использовать доменное имя.
Домен необходим для удобного доступа к сайту и выпуска полноценного SSL-сертификата Let’s Encrypt. Кроме того, Nginx выбирает нужный server block по значению server_name и заголовку Host.
Нужно ли оставлять порт 80 открытым после настройки HTTPS?
Да. Порт 80 используется для перенаправления пользователей с HTTP на HTTPS и может потребоваться для проверки домена при выпуске или обновлении сертификата через HTTP-01.
Основной трафик сайта при этом передаётся через HTTPS по порту 443.
Где хранятся файлы и данные WordPress?
В этой конфигурации файлы WordPress находятся в каталоге: /var/www/wordpress
Страницы, настройки, пользователи и другие постоянные данные хранятся в базе MariaDB wordpress. Redis содержит только временный объектный кеш и не заменяет основную базу данных.
Что произойдёт после перезагрузки VPS?
Если Nginx, MariaDB, PHP-FPM и Redis включены через systemctl enable, они запустятся автоматически вместе с Ubuntu.
После перезагрузки рекомендуется проверить статус сервисов, доступность сайта по HTTPS и состояние Redis Object Cache.
Список источников
- WordPress.org. Requirements
- WordPress Developer Resources. How to install WordPress
- WordPress Developer Resources. Before You Install
- Nginx Documentation. How nginx processes a request
- Nginx Documentation. Module ngx_http_core_module
- Nginx Documentation. Server names
- Certbot. Nginx instructions
- Redis Documentation. Install Redis Open Source on Linux
- Redis Documentation. Install Redis



