Як швидко встановити WordPress на VPS-сервер

Скрипт встановлення CMS WordPress на VPS-сервер (Nginx + PHP-FPM)

WordPress – це справжня “робоча конячка”, яку можна використовувати для різних задач, наприклад тестування веб-додатків, а тому її корисно мати під  рукою. Нижче подається готовий скрипт як швидко, майже за 5 хвилин, встановити CMS WordPress на чистий VPS на базі OS Ubuntu 24.04 з конфігурацією веб-сервера Nginx + PHP-FPM.


Архітектура Nginx + PHP-FPM – добра тим, що економить ресурси (RAM і CPU). Nginx – обробляє статику краще ніж Apache, а PHP-FPM – динамічні запити, зберігаючи оперативну пам’ять.

В якості хмарної платформи можна обрати будь-якого провайдера, наприклад Akamai Linode (простий, дешевий, стабільний).

Реєструємося, входимо в обліковий запис, створюємо новий інстанс з мінімальними характеристиками (Shared CPU, 1Gb) на базі OS Ubuntu 24.04. Обираємо будь-яку європейську локацію, додаємо SSH-ключі доступу і запускаємо створення VPS.

Коли VPS готовий – копіюємо його IP-адресу і направляємо на неї свій домен. Це треба зробити в панелі керування DNS (у реєстратора або в Сloudflare), додавши A-записи для @ та www. Проксування через Cloudflare можна не включати – ми використовуватимемо Certbot.

Файєрволи поки що не вмикаємо, доступ до портів 80 і 443 має бути відкритим.

Логінимося через SSH і виконуємо наступні команди:

  • sudo apt update && sudo apt upgrade -y – оновлюємо систему;
  • sudo apt install nginx -y – встановлюємо веб-сервер NGINX;
  • sudo apt install mariadb-server -y – встановлюємо сервер бази даних MariaDB;
  • sudo apt install php php-fpm php-mysql php-xml php-mbstring php-curl php-gd unzip -y – встановлюємо необхідні PHP компоненти і модулі;
  • sudo systemctl disable --now apache2 – вимикаємо Apache2;
  • sudo systemctl enable --now php8.3-fpm – вмикаємо PHP-FPM;
  • sudo systemctl reload nginx – перезавантажуємо Nginx;
  • systemctl status php8.3-fpm – перевіряємо роботу PHP-FPM;
  • sudo mysql_secure_installation – інсталюємо базу даних MySQL;
  • sudo mkdir -p /var/www/mysite && cd /var/www – створюємо директорію для WordPress і переходимо в неї;
  • sudo wget https://wordpress.org/latest.zip – завантажуємо архів з WordPress;
  • sudo apt install -y unzip – встановлюємо розархіватор;
  • sudo unzip latest.zip – розархівовуємо WordPress;
  • sudo rsync -a wordpress/ mysite/ – синхронізація директорії WordPress;
  • sudo chown -R www-data:www-data /var/www/mysite – виставляємо власника на всі файли та папки;
  • sudo find /var/www/mysite -type d -exec chmod 755 {} \; – виставляємо права доступу для файлів;
  • sudo find /var/www/mysite -type f -exec chmod 644 {} \; – виставляємо права доступу для папок;
  • sudo mysql
  • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'ДУЖЕ_СИЛЬНИЙ_ПАРОЛЬ';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT; – створюємо базу даних і користувача до неї;
  • nano /etc/nginx/sites-available/mysite.conf – створюємо файл конфігурації Nginx, щоб з’єднати сайт з доменом;
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/mysite;
    index index.php index.html;

    # WordPress front-controller
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP через PHP-FPM 8.3
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;  # перевір, що існує саме цей сокет
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Захист прихованих файлів
    location ~* /\. { deny all; }

    # Збільшення ліміту завантажень (медіа у WP)
    client_max_body_size 64m;
}
  • sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/ – закріплюємо файл конфігурації;
  • sudo nginx -t – тестуємо конфігурацію Nginx;
  • sudo systemctl reload nginx – перезавантажуємо Nginx;
ЧИТАЙТЕ ТАКОЖ:  Як встановити Jekyll на Debian та створити статичний сайт?

Відкриваємо в браузері сайт https://example.com і завершуємо інсталяцію WordPress, вказавши дані для доступу до бази даних:

  • База: wordpress
  • Користувач: wpuser
  • Пароль: (свій)
  • Хост: localhost
  • Префікс: wp_ (або інший)

Налагоджуємо HTTPS:

  • sudo apt install -y certbot python3-certbot-nginx – встановлюємо Certbot для отримання SSL-сертифікату LetsEncrypt;
  • sudo certbot --nginx -d example.com -d www.example.com --redirect – отримуємо сертифікат для роботи WordPress на HTTPS.

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Цей інструмент фактично відкриває нову еру кібербезпеки - повністю автоматизовану…