Ручная установка WordPress на чистый сервер
Дата публикации: 18.05.2026

Ручная установка WordPress на чистый сервер

Хочу себе такие же кнопки
ccb9a536

Введение

Вы уже получили свой VDS от 🏰 VDSina и готовы превратить чистый сервер в мощный сайт‑блог. В этом уроке мы пошагово разберём, как вручную установить WordPress на «голый» сервер без готовых панелей. Вы научитесь:

  • подготовить ОС к работе с веб‑приложениями;
  • установить и настроить стек LAMP (Linux + Apache + MySQL + PHP);
  • создать базу данных и пользователя для WordPress;
  • загрузить, распаковать и «запустить» WordPress;
  • правильно задать права доступа и настроить виртуальный хост.

После выполнения всех шагов ваш сайт будет готов к работе уже через несколько минут, а вы получите уверенность в том, как управлять сервером без «чёрных ящиков».


1. Подключение к серверу и базовая подготовка

Шаг Команда Что делает
1 ssh root@YOUR_IP Подключаемся к серверу по SSH (защищённый терминал).
2 apt update && apt upgrade -y Обновляем список пакетов и ставим последние версии.
3 hostnamectl set-hostname mysite.example.com Устанавливаем читаемое имя хоста (по желанию).

Аналогия: обновление пакетов – это как проверка и замена старых деталей в машине перед долгой поездкой.


2. Установка веб‑сервера Apache

apt install apache2 -y
systemctl enable apache2
systemctl start apache2
  • Apache – популярный HTTP‑сервер, который будет принимать запросы от браузеров.
  • systemctl enable гарантирует, что сервер запустится автоматически после перезагрузки.

Проверка: откройте в браузере http://YOUR_IP/. Должна появиться стандартная страница Apache «It works!».


3. Установка и настройка базы данных MariaDB

apt install mariadb-server mariadb-client -y
systemctl enable mariadb
systemctl start mariadb

3.1 Защита MariaDB

mysql_secure_installation
  • Установите root‑пароль (запомните!).
  • Отключите анонимные пользователи и удалённый вход root.

3.2 Создание базы и пользователя для WordPress

CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Термин**:

  • DATABASE – место, где хранятся все таблицы сайта.
  • USER – «ключ» к базе, который WordPress будет использовать.

4. Установка PHP и нужных расширений

apt install php php-mysql php-gd php-xml php-mbstring php-curl php-zip php-imagick -y
systemctl restart apache2
  • PHP – язык, на котором написан WordPress.
  • Расширения (php-mysql, php-gd, …) необходимы для работы с базой, изображениями и безопаской.

Проверка: создайте файл /var/www/html/info.php со содержимым:

<?php phpinfo(); ?>

Откройте http://YOUR_IP/info.php – увидите страницу с информацией о PHP. После проверки удалите файл: rm /var/www/html/info.php.


5. Скачивание и подготовка файлов WordPress

cd /tmp
wget https://ru.wordpress.org/latest-ru_RU.tar.gz
tar -xzf latest-ru_RU.tar.gz
mv wordpress /var/www/html/mysite
chown -R www-data:www-data /var/www/html/mysite
chmod -R 755 /var/www/html/mysite
  • www-data – системный пользователь, от которого работает Apache.
  • Права 755 позволяют серверу читать и исполнять файлы, а владельцу – их изменять.

6. Настройка виртуального хоста Apache

Создайте файл /etc/apache2/sites-available/mysite.conf:

<VirtualHost *:80>
    ServerName mysite.example.com
    DocumentRoot /var/www/html/mysite

    <Directory /var/www/html/mysite>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/mysite_error.log
    CustomLog ${APACHE_LOG_DIR}/mysite_access.log combined
</VirtualHost>
  • AllowOverride All – разрешаем WordPress использовать файл .htaccess для «чП‑правил».

Активируем конфиг и перезапускаем Apache:

a2ensite mysite.conf
a2enmod rewrite
systemctl reload apache2

Проверка: в файле /etc/hosts на локальном компьютере добавьте строку

YOUR_IP   mysite.example.com

и откройте http://mysite.example.com/. Должна появиться стартовая страница установки WordPress.


7. Запуск мастера установки WordPress

  1. Выберите язык (русский).
  2. Введите данные базы:
Поле Значение
Имя базы данных wp_db
Имя пользователя wp_user
Пароль StrongPassword123!
Сервер базы данных localhost
Префикс таблиц wp_ (по умолчанию)
  1. Нажмите «Отправить», затем «Запустить установку».
  2. Укажите название сайта, логин и пароль администратора, ваш e‑mail.

После завершения вы попадёте в панель управления WordPress.


8. Минимальная безопасность после установки

Действие Команда / Шаг
Отключить доступ к xmlrpc.php Добавьте в .htaccess строку RedirectMatch 403 ^/xmlrpc\.php$
Установить SSL (Let’s Encrypt) apt install certbot python3-certbot-apache -y && certbot --apache -d mysite.example.com
Ограничить доступ к wp-admin по IP В .htaccess добавить Require ip 123.45.67.89 (замените на ваш IP)

Эти простые меры снижают риск автоматических атак.


9. Где взять готовый VDS с VDSina

Если нужен быстрый старт, закажите сервер на VDSina: https://vdsina.ru/?partner=5095. В описании укажите нужный тариф, а после получения доступа сразу переходите к шагу 1.


Практика для закрепления

  1. Создайте отдельную базу и пользователя для тестового сайта, используя другой префикс таблиц (например, test_). Проверьте, что WordPress корректно подключается к новой базе.
  2. Измените права на директорию wp-content/uploads так, чтобы только www-data мог писать, а остальные пользователи – только читать. Какой командой это делается?
  3. Настройте редирект с http://mysite.example.com на https://mysite.example.com без использования плагина. Какие правила Apache нужны?
  4. Отключите функцию file_edit в wp-config.php (параметр DISALLOW_FILE_EDIT). Объясните, почему это улучшает безопасность.
  5. Проверьте работу cron в WordPress, создав задачу, которая будет отправлять письмо каждые 5 минут. Какой плагин или встроенный механизм можно использовать?

Ответы запишите в личный блокнот, а затем сравните с рекомендациями в официальной документации WordPress.


Поздравляем! Вы прошли весь путь от «чистого» сервера до полностью работающего сайта на WordPress. Теперь вы знаете, как управлять сервером, настраивать окружение и защищать свой проект. Удачной публикации!


Введение: чем VDS отличается от шаред-хостинга и зачем это веб-мастеру
Как правильно выбрать тариф: CPU, RAM, NVMe или SSD, канал
Выбор операционной системы: почему Ubuntu 22.04/24.04 — стандарт индустрии
Регистрация домена и первичная настройка DNS-записей (A, AAAA, CNAME)
Генерация SSH-ключей на локальном компьютере (Windows/Mac/Linux)
Добавление публичного ключа на сервер и первый вход по SSH
Отключение входа по паролю и запрет авторизации для root
Смена стандартного порта SSH для снижения шума в логах
Создание основного рабочего пользователя с правами sudo
Базовое обновление системы и установка необходимых утилит (curl, wget, git, htop)
Настройка часового пояса и синхронизация времени (NTP)
Установка и базовая настройка фаервола UFW
Разрешение только необходимых портов (SSH, HTTP, HTTPS)
Установка Fail2Ban для защиты от перебора паролей
Настройка правил Fail2Ban для SSH и веб-сервера
Знакомство с Docker: установка движка и CLI
Установка Docker Compose для управления мульти-контейнерными приложениями
Основы изоляции: почему каждый проект должен быть в своем контейнере
Подготовка файловой структуры сервера для удобного хранения проектов
Развертывание Nginx как обратного прокси-сервера через Docker
Настройка конфигурации Nginx для статических сайтов
Установка PHP-FPM в отдельном контейнере
Связка Nginx и PHP-FPM через внутреннюю Docker-сеть
Оптимизация настроек PHP-FPM (pm.max_children, memory_limit) под нагрузку
Установка MariaDB/MySQL в изолированном контейнере
Безопасное хранение паролей от БД через переменные окружения (.env)
Подключение к базе данных из внешнего клиента (DBeaver/Navicat) через туннель
Установка Redis для кэширования запросов и сессий
Интеграция Redis с PHP-приложением для ускорения работы
Автоматическая выдача SSL-сертификатов через Certbot (Let's Encrypt)
Настройка автопродления SSL-сертификатов по крону
Принудительный редирект с HTTP на HTTPS в Nginx
Включение gzip и brotli сжатия для ускорения загрузки страниц
Настройка кэширования статики (browser caching) в заголовках Nginx
Защита от простых DDoS и ботов: модуль limit_req в Nginx
Настройка резервного копирования баз данных (mysqldump) по расписанию
Настройка резервного копирования файлов проектов (tar)
Отправка бэкапов на удаленное хранилище (S3-compatible storage или другой сервер)
Ротация и очистка старых логов, чтобы не забить диск
Мониторинг нагрузки: установка и настройка htop и iotop
Просмотр логов в реальном времени: tail, grep и journalctl
Установка простого мониторинга доступности (Uptime Kuma или скрипт в Telegram)
Изоляция арбитражных инструментов: запуск ботов в отдельных контейнерах
Установка SOCKS5/HTTP прокси (3proxy) внутри Docker для мультиаккаунтинга
Настройка аутентификации и ограничения доступа к прокси по IP
Проверка анонимности и работы прокси-сервера
Оптимизация ядра Linux (sysctl.conf) для высоких нагрузок и сетевых соединений
Настройка swap-файла: когда он нужен, а когда вредит
Чек-лист финальной проверки безопасности перед запуском проекта
План действий при взломе или падении сервера: восстановление из бэкапа
АПТЕЧКА ДЛЯ ЖИВОТНЫХ
Автомобили Германии — FORD, MERSEDES, VW, IVECO
Чат рулетка 2026: чаты, где каждый момент — шанс
Чат рулетка онлайн
Чат с Аней: психологический разговор
Чатрулетка: новый способ общения
Чай и кофе: сила вкуса
Детские игрушки из безопасных материалов
Эксплуатация шин: Рекомендации по использованию
Фототехника для пейзажей
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать Vdsina вечный хостинг для своего проекта
Компоненты безопасности IP
Конкуренция на российском автомобильном рынке
Онлайн генератор паролей для Windows
Оптимизация обработки форм GEO проекта
Сервер для социальных сетей: Безопасность, Скорость, Изоляция
Смешные моменты
Сравнение Arsys хостинг сервисов для блогеров с WordPress на 2023 год
Весь экран под циферблат
рейтинг хостингов 2026 Быстрые VDS серверы