До основного вмісту

Встановлення WordPress на VPS без хостингу з нуля

WordPress · 18.03.2026 · 5 хв читання
Ілюстрація до статті «Встановлення WordPress на VPS без хостингу з нуля»

Власний VPS дає повний контроль над WordPress: вибір версії PHP, Redis-кеш, HTTP/2, без обмежень на плагіни та ресурси.

Крок 1: LEMP-стек (Nginx + MySQL + PHP)

sudo apt update
sudo apt install -y nginx mysql-server php8.2-fpm   php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl   php8.2-gd php8.2-zip php8.2-imagick php8.2-redis

Крок 2: База даних

sudo mysql -u root -p
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'СкладнийПароль';
GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

Крок 3: Завантажити WordPress

cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress yourdomain.com
sudo chown -R www-data:www-data yourdomain.com

Крок 4: Конфіг Nginx

sudo nano /etc/nginx/sites-available/yourdomain.com
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;
    index index.php;

    location / { try_files $uri $uri/ /index.php?$args; }
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Крок 5: SSL Let's Encrypt

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
💡 Після встановлення додайте Redis Object Cache для прискорення WordPress. Детальніше в статті Redis на VPS.

Часті помилки під час встановлення WordPress на VPS

Error establishing a database connection

502 Bad Gateway

connect() to unix:/run/php/php8.2-fpm.sock failed (13: Permission denied)

The uploaded file exceeds the upload_max_filesize directive
ПовідомленняПричинаРішення
Error establishing a database connectionНевірні дані у wp-config.php або MySQL не запущеноПеревірити systemctl status mysql і звірити DB_USER/DB_PASSWORD із тим, що створювали у кроці 2
502 Bad GatewayNginx не може достукатися до PHP-FPM — сокет не збігається або демон не запущенийПеревірити systemctl status php8.2-fpm і шлях до сокета у fastcgi_pass
connect() to unix:/run/php/php8.2-fpm.sock failed (13: Permission denied)Nginx працює від користувача www-data, а сокет PHP-FPM створений з іншими правамиУ пулі PHP-FPM виставити listen.owner = www-data і listen.group = www-data
The uploaded file exceeds the upload_max_filesize directiveЛіміт завантаження в php.ini менший за розмір файлу теми, плагіна чи медіаПідняти upload_max_filesize і post_max_size у конфігу PHP-FPM, перезапустити сервіс

Готовий хостинг проти власного VPS

ПараметрVPS з ручним встановленнямГотовий хостинг WordPress
Вибір версії PHPБудь-яка, встановлюється вручнуОбмежений тим, що доступно на тарифі
Налаштування Redis і кешуПовний контроль, власні параметриЧасто вже вбудовано, але без тонкого налаштування
Час до першого запуску сайту30–60 хвилин за цією інструкцією5–10 хвилин через автовстановлювач
Відповідальність за оновлення ОС і PHPПовністю на адміністраторіБере на себе хостинг-провайдер

Якщо ручне налаштування надмірне для задачі, встановлення через панель хостингу описано у статті WordPress у cPanel.

Коли ставити WordPress на голий VPS не варто

  • Немає досвіду адміністрування Linux і немає часу його отримати — при поломці php-fpm або Nginx сайт впаде повністю, і відновити його без панелі складніше
  • Сайт простий (візитка, блог) без навантаження — переплата за адміністрування VPS не окупиться, звичайний shared-хостинг впорається не гірше
  • Потрібні автоматичні оновлення системи безпеки без ручного втручання — на VPS оновлення PHP і ядра потрібно відстежувати самостійно
  • Команда звикла до інтерфейсу cPanel чи ISPmanager для щоденних задач (пошта, бекапи, домени) — на голому VPS усе це доведеться робити через консоль

Перевірка результату встановлення

# Nginx і PHP-FPM підняті та активні
systemctl is-active nginx php8.2-fpm mysql

# Конфігурація Nginx синтаксично вірна
sudo nginx -t

# Сайт відповідає кодом 200, а не 502/500
curl -o /dev/null -s -w '%{http_code}\n' http://yourdomain.com/
  1. Відкрийте http://yourdomain.com — має з'явитися майстер встановлення WordPress на п'ять кроків, а не помилка PHP
  2. Пройдіть майстер, вкажіть назву сайту та дані адміністратора, потім увійдіть у /wp-admin/
  3. Перевірте, що SSL справді працює: curl -I https://yourdomain.com/ має повернути 200, а не помилку сертифіката
  4. Переконайтеся, що фонові завдання WordPress (wp-cron) виконуються — опублікуйте відкладений допис і перевірте, що він вийшов вчасно

Після встановлення налаштуйте регулярні бекапи — вони не створюються автоматично на голому VPS на відміну від хостинг-панелей, див. статтю бекап WordPress. Захист від брутфорсу та базові правила безпеки розглядає матеріал безпека WordPress.

Часті питання

Чи варто переносити вже наявний сайт WordPress на VPS тим самим способом, що описаний у статті?

Інструкція описує встановлення з нуля, а перенесення готового сайту — окреме завдання: потрібно скопіювати файли теми, плагінів і медіа, вивантажити та імпортувати базу даних, а потім оновити адресу сайту в налаштуваннях. Підготовлений тут LEMP-стек і сертифікат стануть основою, але саму процедуру перенесення контенту стаття не розглядає, для неї потрібні додаткові кроки.

Чи запустяться Nginx, MySQL та PHP-FPM автоматично після перезавантаження сервера?

Пакетні менеджери зазвичай увімкнули автозапуск цих служб ще під час встановлення, тому після перезавантаження сайт здебільшого продовжує працювати без ручних дій адміністратора. Після першого перезавантаження варто один раз перевірити статус кожної служби і за потреби окремо увімкнути автозапуск — інакше після збою живлення сайт залишиться недоступним до втручання людини.

Чи варто одразу змінювати дані адміністратора, задані в майстрі встановлення WordPress?

Так, логін і пароль адміністратора краще одразу задати надійними і несхожими на стандартні на зразок admin, оскільки саме сторінка входу в панель найчастіше стає ціллю автоматичного підбору паролів ботами. Додатково варто обмежити доступ до сторінки входу і підключити захист від перебору, а не чекати на першу підозрілу активність у журналах сервера.

Як додати на той самий VPS другий сайт — чи потрібен окремий користувач MySQL і власна конфігурація Nginx?

Так, для кожного нового сайту варто створити окрему базу даних і окремого користувача MySQL із правами лише на неї, а також власний серверний блок конфігурації Nginx зі своїми шляхами і сертифікатом. Один і той самий PHP-FPM можна залишити спільним пулом для легких сайтів або розділити на окремі пули, якщо сайти помітно різняться навантаженням на процесор.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці