WordPress на VPS: nginx, PHP, MariaDB и HTTPS
Виртуальный хостинг устраивает, пока сайт соседа не съест процессор или не понадобится PHP-расширение, которое хостер ставить не хочет. На VPS весь стек ваш. В этой инструкции — WordPress на Ubuntu 24.04 с nginx, PHP 8.3, MariaDB и бесплатным сертификатом Let's Encrypt. Минут двадцать работы.
Какой тариф
Для одного сайта с умеренной посещаемостью комфортный минимум — Pulse (2 vCPU, 2 ГБ RAM, $10 в месяц). MariaDB и PHP-FPM вместе хотят 600–800 МБ, а WooCommerce с парой тысяч товаров — больше.
До начала направьте A-запись домена на IP сервера — без этого не получится выпустить сертификат.
1. Пакеты
apt update && 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 php-imagick
2. База данных
mysql -e "CREATE DATABASE wp DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'wp'@'localhost' IDENTIFIED BY 'смените-этот-пароль';
GRANT ALL ON wp.* TO 'wp'@'localhost'; FLUSH PRIVILEGES;"
3. Файлы WordPress
cd /var/www && curl -sO https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz && rm latest.tar.gz
chown -R www-data:www-data /var/www/wordpress
4. nginx
/etc/nginx/sites-available/wordpress (вместо example.com — ваш домен):
server {
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 ~ /\.(?!well-known) { deny all; }
}
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
5. HTTPS
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot сам поправит настройки nginx и будет продлевать сертификат. Теперь откройте https://example.com и пройдите установщик: база wp, пользователь wp, пароль из шага 2.
После установки
- Лимит загрузки файлов. Если грузите тяжёлые медиа, поднимите
upload_max_filesizeиpost_max_sizeв/etc/php/8.3/fpm/php.iniи выполнитеsystemctl restart php8.3-fpm. - Почта. Письма, отправленные напрямую с нового IP сервера, обычно попадают в спам. Отправляйте почту WordPress через SMTP-сервис плагином вроде WP Mail SMTP.
- Резервные копии — на вас. Делайте по расписанию дамп базы (
mysqldump wp > wp.sql) и копиюwp-contentкуда-нибудь за пределы сервера. Бэкап на том же сервере бэкапом не считается. - Обновления. Система — через
apt upgrade, ядро и плагины WordPress — в админке. Большинство взломов WordPress начинается с устаревшего плагина.
Если сайт перерастёт Pulse, по запросу перенесём его на тариф побольше — обычно без переустановки.