Ручная установка WordPress: полный гид по настройке на VDS
Установка WordPress на VDS без панели управления. Apache/Nginx, PHP, MySQL, права на файлы и шаги безопасности.
Хотите установить WordPress на VDS с нуля без Plesk/cPanel? Этот гид охватывает подготовку LAMP/LEMP стека на Ubuntu 22.04, размещение файлов WordPress, создание MySQL-БД и шаги безопасности.
Требования
- 2 vCPU + 2 ГБ RAM VDS (начальный уровень)
- Ubuntu 22.04 / Debian 12
- Root-доступ (
sudo) - DNS A-запись домена указывает на IP VDS
1. Обновить систему
sudo apt update && sudo apt upgrade -y
2. Установить LAMP (Apache + MySQL + PHP)
Для LEMP (Nginx) см. пост по Nginx.
sudo apt install apache2 mysql-server -y
# PHP 8.3 + модули WordPress
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd \
php8.3-mbstring php8.3-xml php8.3-zip php8.3-imagick libapache2-mod-php8.3 -y
sudo systemctl enable --now apache2 mysql
3. Защитить MySQL
sudo mysql_secure_installation
- Установить root-пароль
- Anonymous users → Yes (удалить)
- Remote root login → Yes (запретить)
- Test database → Yes (удалить)
Подробное управление MySQL — пост MariaDB/MySQL.
4. Создать БД для WordPress
sudo mysql -u root -p
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'СИЛЬНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. Скачать WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mv wordpress /var/www/ваш-сайт.com
Для мульти-сайтов отдельные папки на каждый сайт.
6. Права
sudo chown -R www-data:www-data /var/www/ваш-сайт.com
sudo find /var/www/ваш-сайт.com -type d -exec chmod 755 {} \;
sudo find /var/www/ваш-сайт.com -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/ваш-сайт.com/wp-content
7. Apache vhost
sudo nano /etc/apache2/sites-available/ваш-сайт.com.conf
<VirtualHost *:80>
ServerName ваш-сайт.com
ServerAlias www.ваш-сайт.com
DocumentRoot /var/www/ваш-сайт.com
<Directory /var/www/ваш-сайт.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/ваш-сайт.com_error.log
CustomLog ${APACHE_LOG_DIR}/ваш-сайт.com_access.log combined
</VirtualHost>
sudo a2enmod rewrite
sudo a2ensite ваш-сайт.com.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
8. wp-config.php
cd /var/www/ваш-сайт.com
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'СИЛЬНЫЙ_ПАРОЛЬ' );
define( 'DB_HOST', 'localhost' );
Authentication keys: https://api.wordpress.org/secret-key/1.1/salt/ → скопируйте и вставьте в wp-config.php.
9. SSL
Обязательно — см. пост Let’s Encrypt:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d ваш-сайт.com -d www.ваш-сайт.com
10. Завершить в браузере
Открыть https://ваш-сайт.com:
- Язык → Continue
- Site Title, admin Username, Password, Email → Install WordPress
Готово за 5 секунд.
Безопасность после установки
- Не использовать “admin” как имя (популярная цель брутфорса)
- wp-admin за firewall — только ваш IP (пост UFW)
- Отключить XML-RPC — WP становится средством DDoS
- Плагин 2FA: Wordfence Login Security
- Авто-обновления:
wp-config.php→define('WP_AUTO_UPDATE_CORE', 'minor'); - Cron-бэкапы: без Plesk — свой cron (пост cron)
Производительность
- OPcache:
php.ini→opcache.enable=1 - Object cache: Redis установить
- Кэш-плагин: WP Rocket / LiteSpeed Cache
- CDN: пост Cloudflare
Подробно — пост WordPress-хостинга.
Частые ошибки
- “Error establishing database connection”: неверные данные DB или MySQL не запущен
- 404 (permalinks):
mod_rewriteне активен →sudo a2enmod rewrite - White screen of death: ошибка PHP →
tail -f /var/log/apache2/error.log - “Allowed memory size exhausted”: в
wp-config.php→define('WP_MEMORY_LIMIT', '256M'); - Сбой загрузки изображений: права
wp-content/uploadsневерные
Итог
Ручная установка — 20-минутная задача, но полный контроль. Plesk требует доп. лицензии, ручная — бесплатна. Production WordPress: ручной + nginx-proxy + Let’s Encrypt + Cloudflare = самый быстрый стек.
Тарифы VDS KavesNET на NVMe SSD оптимизированы под WordPress.
По теме: Руководство по WordPress-хостингу · Управление MySQL/MariaDB
Похожие статьи
Возможно, вас также заинтересует.
Правило 3-2-1: как никогда не терять данные сервера
Правило резервного копирования 3-2-1 — золотой стандарт стратегии бэкапа сервера. Разбираем правило, автоматизацию и инфраструктуру KavesNET.
Читать далее
Как мигрировать сайт с Plesk на Plesk: гид по Migrator
Перенос сайтов, почты, БД и DNS за один раз с Plesk Migrator. Настройка, тест-миграция и cutover.
Читать далее
FileZilla: миграция файлов между двумя VDS
Перенос сайта со старого на новый VDS: FileZilla по FTP/SFTP, советы по скорости, права и обработка ошибок.
Читать далее