Перейти к содержимому
VPS и серверы · 7 мин

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, по запросу перенесём его на тариф побольше — обычно без переустановки.

WordPress на VPS: nginx, PHP, MariaDB и HTTPS · dedisrv