Свой хостинг на личном сервере: домен, DNS, порты 80/443, HTTPS и WordPress

Свой хостинг на личном сервере

26.01.2026

Что такое “свой хостинг” простыми словами

Обычный хостинг — это когда сайт живёт “у кого-то”. Свой хостинг — это когда сайт живёт на твоём сервере, и ты сам отвечаешь за настройки, обновления и безопасность.

Цель: сайт открывается по домену, есть HTTPS (замочек), HTTP сам перекидывает на HTTPS, бэкапы делаются, и всё не разваливается от первого обновления.

Сначала честно: дома или VPS

Новичку проще начать с VPS: там почти всегда есть публичный IP и нормальная доступность. Домашний сервер тоже можно, но часто всплывают две проблемы — динамический IP и ограничения провайдера.

Если ты сейчас в сомнениях: начни с VPS. Домой вернёшься позже, когда появится уверенность и привычка к бэкапам.

Минимум, который тебе нужен

Три вещи, без которых дальше бессмысленно:

Домен (и доступ к его DNS), сервер с Linux (и доступ по SSH), публичный IP (чтобы к серверу можно было зайти из интернета).

Короткий словарь новичка

DNS — это “телефонная книга интернета”. Она связывает домен (имя) и IP (адрес сервера).

HTTPS — защищённое соединение (замок). Без него современный сайт выглядит подозрительно и хуже ранжируется.

WordPress — движок сайта. Он хранит контент в базе, а файлы — на диске.

Шаг 1: узнать IP сервера

Если это VPS — IP обычно виден в панели провайдера. Если сервер уже доступен, можно быстро проверить из консоли:

curl -4 ifconfig.me

Важно: IP должен быть публичным. Если ты дома за роутером и у тебя “серый IP”, домен на него не заработает как нормальный хостинг.

Шаг 2: привязать домен через DNS

В панели домена добавь A-запись, которая укажет домен на IP сервера. Обычно это выглядит как “A → IP”.

Проверка: домен обязан показывать твой IP.

dig +short A chronivra.ru/ark

Если не совпадает — значит DNS ещё не обновился или запись сделана не там/не так.

Шаг 3: порты для сайта

Для обычного сайта нужны два порта: 80 и 443. Первый нужен в основном для редиректа на HTTPS, второй — для самого сайта.

Идея простая: 80 открываем “чтобы перекинуть”, 443 — “чтобы жить”.

На сервере можно посмотреть, кто слушает порты:

ss -tulpn | egrep ':80|:443' || true

Шаг 4: поставить WordPress

Самый дружелюбный путь для новичка — через панель (DirectAdmin/подобное) или готовый стек у хостера/VPS.

Логика: сначала поднять работающий сайт, потом — улучшать. Иначе ты застрянешь на “идеальном nginx” и так ничего не запустишь.

После установки проверь, что WordPress считает адрес сайта правильным (HTTPS):

wp option get home --path=/home/kuk/domains/chronivra.ru/ark/public_html
wp option get siteurl --path=/home/kuk/domains/chronivra.ru/ark/public_html

Шаг 5: включить HTTPS (замочек)

Обычно это Let’s Encrypt. Если есть панель — там почти всегда одна кнопка “Let’s Encrypt”.

Две проверки, которые закрывают 80% проблем:

curl -I /
curl -I /

Норма: HTTPS отдаёт 200, а HTTP отдаёт 301 и ведёт на https://…

Шаг 6: бэкап — это часть хостинга

У WordPress две “половины”: файлы и база. Нужно сохранять обе.

Минимальный здравый план: хотя бы раз в неделю бэкап базы и wp-content, и обязательно копия вне сервера (на ПК/в облако/на внешний диск).

Пример бэкапа базы:

mysqldump --single-transaction --quick DBNAME | gzip > backup-db-$(date +%F).sql.gz

Пример бэкапа файлов (самое ценное — wp-content):

tar -czf backup-files-$(date +%F).tar.gz wp-content

Шаг 7: минимальная защита

Без паранойи, просто базовые привычки.

Три правила, которые реально спасают:
1) обновления WordPress/плагинов,
2) сложные пароли и минимум админов,
3) не открывать лишние порты.

Если что-то не работает — куда смотреть

Домен не ведёт на сервер

Почти всегда это DNS. Проверяй через dig и жди обновления.

HTTPS не включается

Чаще всего домен ещё не указывает на IP или закрыт порт 80/443.

Сайт открывается и по http и по https

Нужен редирект http → https. Это обязательно.

Итоговый чек “готово”

Готово, если:
домен показывает IP сервера,
HTTPS работает и есть замок,
HTTP всегда 301 на HTTPS,
WordPress открывается и админка доступна,
у тебя есть бэкап базы и wp-content вне сервера.