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