Ручная установка WordPress на чистый сервер
Хочу себе такие же кнопкиВведение
Вы уже получили свой 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
- Выберите язык (русский).
- Введите данные базы:
| Поле | Значение |
|---|---|
| Имя базы данных | wp_db |
| Имя пользователя | wp_user |
| Пароль | StrongPassword123! |
| Сервер базы данных | localhost |
| Префикс таблиц | wp_ (по умолчанию) |
- Нажмите «Отправить», затем «Запустить установку».
- Укажите название сайта, логин и пароль администратора, ваш 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.
Практика для закрепления
- Создайте отдельную базу и пользователя для тестового сайта, используя другой префикс таблиц (например,
test_). Проверьте, что WordPress корректно подключается к новой базе. - Измените права на директорию
wp-content/uploadsтак, чтобы толькоwww-dataмог писать, а остальные пользователи – только читать. Какой командой это делается? - Настройте редирект с
http://mysite.example.comнаhttps://mysite.example.comбез использования плагина. Какие правила Apache нужны? - Отключите функцию
file_editвwp-config.php(параметрDISALLOW_FILE_EDIT). Объясните, почему это улучшает безопасность. - Проверьте работу
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 год
Весь экран под циферблат