Хостинг сайта WordPress на Linux VPS
Nginx, PHP-FPM, MariaDB, wp-config.php и резервные копии: что установить, чтобы разместить WordPress самостоятельно.
На VPS WordPress не установлен заранее: стек собираете вы. Достаточно веб-сервера, PHP и базы данных. Взамен вы сами контролируете настройки, версии и резервные копии.
- WordPress на VPS опирается на Nginx, PHP-FPM и MariaDB: все три устанавливаете и поддерживаете вы.
- Отдельная база на сайт и ограниченные права уменьшают последствия уязвимости.
- Сохраняйте файлы и базу вместе и копируйте резервные копии за пределы сервера.
Установить программный стек
WordPress нужны три компонента: веб-сервер (в примере Nginx), PHP с менеджером FPM и база MariaDB или MySQL. На VPS эти компоненты устанавливаете и обновляете вы.
- sudo apt update && sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip
- php -v покажет версию PHP, ls /run/php/ покажет сокет FPM, например php8.3-fpm.sock.
- sudo mysql_secure_installation удаляет анонимный доступ и задаёт пароль администратора базы.
Создать базу и скачать WordPress
Отдельная база с пользователем, которому доступна только она, ограничивает ущерб при уязвимости. Код скачивается с официального сайта WordPress и помещается в веб-папку.
- sudo mysql -e "CREATE DATABASE wp_exemple CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'длинный-пароль'; GRANT ALL ON wp_exemple.* TO 'wp_user'@'localhost';"
- cd /tmp && curl -O https://wordpress.org/latest.tar.gz && tar xzf latest.tar.gz
- sudo mv /tmp/wordpress /var/www/exemple.fr && sudo chown -R www-data:www-data /var/www/exemple.fr
Настроить Nginx и wp-config.php
Блок server сообщает Nginx, где лежит сайт, и передаёт файлы .php в PHP-FPM. В wp-config.php укажите данные базы, закройте файл для других и отключите редактор файлов.
- В /etc/nginx/sites-available/exemple.fr: root /var/www/exemple.fr; и блок location, который отправляет .php в сокет PHP-FPM.
- sudo ln -s /etc/nginx/sites-available/exemple.fr /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx
- В wp-config.php: define('DISALLOW_FILE_EDIT', true); и chmod 640, потому что файл содержит данные для входа в базу.
Делать копии и обновлять
Сайт WordPress состоит из двух частей: файлов и базы. Сохраняйте обе, потому что одна без другой сайт не восстановит. На VPS обновления ядра, плагинов и PHP лежат на вас.
- mysqldump wp_exemple > /root/wp_exemple-$(date +%F).sql: копия базы за сегодня.
- tar czf /root/site-$(date +%F).tar.gz /var/www/exemple.fr: архив файлов, который затем нужно скопировать за пределы VPS.
- Проверяйте обновления плагинов на копии сайта, прежде чем применять их в работе.
Часто задаваемые вопросы
Хватит ли тарифа за 4,99 € для WordPress?
Для небольшого сайта тариф Mini (8 Гб RAM, 2 vCPU, 4,99 €/мес.) даёт запас. Реальная потребность зависит от плагинов, трафика и кеша: измеряйте free -h и htop в течение нескольких дней.
Стоит ли ставить HTTPS до WordPress?
Это не обязательно, но так проще: как только домен указывает на VPS, certbot добавляет HTTPS в блок Nginx. Затем задайте адрес сайта в настройках WordPress.
Можно ли разместить несколько сайтов WordPress на одном VPS?
Да. Для каждого сайта достаточно блока server, папки и базы, со своим пользователем базы и своим сертификатом.