WordPress на VPS с нуля: nginx + PHP + MariaDB
Свой VPS под WordPress — это полный контроль, скорость и никаких лимитов shared-хостинга. Соберём боевой стек LEMP, поставим движок, выпустим бесплатный SSL и закроем базовую безопасность. Всё командами, которые можно копировать.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Устанавливаем nginx, PHP и MariaDB
Обновляемся и ставим веб-сервер, PHP-FPM с нужными расширениями и базу данных.
apt update && apt upgrade -y
apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-imagick -y
Запускаем сервисы в автозагрузку:
systemctl enable --now nginx mariadb php8.2-fpm
Для WordPress на тарифах MAATRIX хватает базового плана: AMD EPYC + NVMe тянут блог и небольшой магазин без тормозов даже при десятках плагинов.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для WordPressСоздаём базу данных
Сначала защищаем MariaDB интерактивным скриптом (задайте root-пароль, удалите тестовую базу):
mysql_secure_installation
Создаём базу и пользователя под WordPress:
mysql -u root -p
CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'СложныйПароль123';
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Скачиваем и распаковываем WordPress
Забираем последнюю версию движка прямо в корень сайта:
cd /var/www
curl -O https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
chown -R www-data:www-data /var/www/wordpress
chmod -R 755 /var/www/wordpress
Конфиг nginx для WordPress
Создаём /etc/nginx/sites-available/wordpress с обработкой PHP и постоянных ссылок:
server {
listen 80;
server_name ваш-домен.ru www.ваш-домен.ru;
root /var/www/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Активируем сайт и перезагружаем nginx:
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Бесплатный SSL и завершение установки
Ставим certbot и выпускаем сертификат Let's Encrypt — он же настроит редирект на HTTPS:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d ваш-домен.ru -d www.ваш-домен.ru
Теперь открываем сайт в браузере и проходим мастер установки: язык, название, логин администратора и данные базы (wp_db, wp_user).
- Совет: не используйте логин admin — это первое, что перебирают боты.
- Проверьте автопродление сертификата:
certbot renew --dry-run. - Ежедневные бэкапы MAATRIX страхуют на случай неудачного обновления плагина.
Оптимизация и базовая защита
Свежий WordPress работает быстро, но пара штрихов делает его заметно отзывчивее. Включите OPcache — он кэширует скомпилированный PHP и снимает нагрузку с процессора. В файле /etc/php/8.2/fpm/conf.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=192
opcache.max_accelerated_files=15000
opcache.revalidate_freq=2
systemctl restart php8.2-fpm
Дальше — безопасность. Запретите выполнение PHP в каталоге загрузок, куда чаще всего пытаются залить бэкдор через уязвимый плагин. Добавьте в server-блок nginx:
location ~* /wp-content/uploads/.*\.php$ {
deny all;
}
И ограничьте доступ к панели входа, если админитесь с одного адреса — так брутфорс просто не достучится до wp-login.php. Плюс поставьте лимит попыток входа плагином или через fail2ban. Эти три меры закрывают большинство типовых атак на WordPress.
- Регулярно обновляйте ядро, темы и плагины — устаревший плагин самая частая дыра.
- Ежедневные бэкапы MAATRIX дают точку отката, если обновление всё же что-то сломает.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для WordPressОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Nginx или Apache для WordPress?
Для скорости и экономии памяти лучше nginx + PHP-FPM: он держит больше одновременных посетителей на том же железе. Apache проще из-за .htaccess, но тяжелее.
Сколько ресурсов нужно?
Блог или визитка комфортно живут на 1-2 ГБ RAM. Для магазина на WooCommerce берите от 2-4 ГБ и NVMe-диск, чтобы каталог и корзина не тормозили.
Как перенести существующий сайт?
Скопируйте каталог wp-content и дамп базы через mysqldump, затем поправьте URL в базе. Мы разбираем это в отдельной статье по миграции.