Перейти до вмісту
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