// DevOps
Переезд или восстановление сайта для начинающих: не бойтесь, всё проще, чем кажется
Опубликовано 06.10.2025
Переезд сайта на новый сервер или восстановление после сбоя может звучать как страшная задача, особенно если вы новичок в веб-разработке или администрировании. Но не паникуйте. С правильным подходом и пошаговым планом вы справитесь без стресса. Ниже — разбор всего процесса: от резервного копирования до проверки работоспособности, включая панели ISPmanager и FreePanel и локальное тестирование через hosts без изменения публичного DNS.
Что такое переезд и восстановление сайта
Переезд сайта — перенос всех файлов, баз данных и настроек с одного сервера (или хостинга) на другой. Это нужно, если вы:
- меняете хостинг-провайдера (цена, производительность, ограничения),
- переходите с локального сервера на продакшен,
- обновляете сервер (устаревшее ПО/железо).
Восстановление сайта — возврат сайта в рабочее состояние после сбоя, взлома или случайного удаления. Обычно выполняется из резервной копии.
Цель — понять процесс и избежать типичных ошибок. Примеры ниже ориентированы на WordPress и статические сайты, но принципы универсальны.
Почему это не страшно
Страх «всё сломать» уходит, если вы:
- делаете бэкап перед началом,
- следуете чёткому плану,
- проверяете каждый шаг.
Шаг 1. Подготовка и резервное копирование
Почему важно. Без бэкапа рискуете потерять данные навсегда. Даже если всё работает — сделайте копию.
Что сохранить
- Файлы сайта: HTML, PHP, CSS, JS, изображения. На серверах часто:
/var/www/htmlили~/www/public_html. - База данных: MySQL/MariaDB (часто для WordPress).
- Конфигурации:
.htaccess(Apache), виртуальные хосты Nginx, PHP-настройки. - DNS-настройки: A, CNAME и другие записи у регистратора/в DNS-провайдере.
Как сделать бэкап
Файлы:
- через FTP/SFTP (например, FileZilla) — скачать папку сайта;
- через SSH — создать архив и потом скачать:
tar -czvf site-backup.tar.gz /var/www/html
База данных (MySQL/MariaDB):
mysqldump -u username -p database_name > backup.sql
Хостинг-панели: в ISPmanager и FreePanel есть экспорт БД из интерфейса.
WordPress: плагины UpdraftPlus или Duplicator создают полный бэкап (файлы + БД).
Совет. Храните копию вне исходного сервера: внешний диск, облако (Google Drive, Dropbox), другой сервер.
Шаг 2. Подготовка нового сервера
Если переезд — готовим новый сервер. Если восстановление — приводим текущий сервер в порядок.
Установите ПО (Ubuntu пример):
sudo apt update
sudo apt install apache2 php libapache2-mod-php mysql-server
Альтернатива: Nginx + PHP-FPM.
Доступ и сети
sudo apt install openssh-server
sudo ufw allow 80
sudo ufw allow 443
Создайте БД и пользователя (MySQL):
CREATE DATABASE new_database;
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON new_database.* TO 'new_user'@'localhost';
FLUSH PRIVILEGES;
Шаг 3. Перенос или восстановление данных
Перенос файлов
Через SFTP/FTP — загрузите содержимое в корень сайта на новом сервере (часто /var/www/html).
Через SSH:
scp site-backup.tar.gz user@new-server-ip:/var/www
ssh user@new-server-ip
sudo tar -xzvf /var/www/site-backup.tar.gz -C /var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
Восстановление базы
mysql -u new_user -p new_database < backup.sql
WordPress: обновите wp-config.php (имя БД, пользователь, пароль, хост).
Конфигурация веб-сервера
Apache
Проверьте .htaccess. Базовый для WordPress:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Nginx Пример виртуального хоста:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # проверьте версию PHP-FPM
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
}
Перезапуск:
sudo systemctl restart apache2
# или
sudo systemctl restart nginx
Шаг 4. Обновление DNS при переезде
- В панели у регистратора/в DNS-провайдере измените A-запись на новый IP.
- За день до миграции уменьшите TTL записи, чтобы ускорить применение.
- Ожидайте 1–24 часа на распространение.
Шаг 5. Локальное тестирование через hosts
Тест до смены публичного DNS. Пользователи изменений не видят.
Редактирование hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts - Linux/macOS:
/etc/hosts
Добавьте строку:
192.168.1.100 yourdomain.com www.yourdomain.com
Где 192.168.1.100 — IP нового или локального сервера.
Сброс кэша DNS
- Windows:
ipconfig /flushdns
- macOS:
sudo dscacheutil -flushcache
- Linux (systemd):
sudo systemd-resolve --flush-caches
Откройте http://yourdomain.com — запросы пойдут на указанный IP. После теста удалите строку из hosts и снова сбросьте кэш.
Локально на сервере
Добавьте в /etc/hosts:
127.0.0.1 yourdomain.com
Проверьте:
curl -I http://yourdomain.com
Если используете ISPmanager/FreePanel — добавьте домен в панели и укажите корневую папку сайта.
Шаг 6. Проверка сайта
Доступ и функциональность
- Откройте сайт по домену/по IP.
- Пройдите страницы, формы, медиа.
- WordPress: вход в
/wp-admin.
Логи
# Apache
tail -f /var/log/apache2/error.log
# Nginx
tail -f /var/log/nginx/error.log
База Проверьте, что контент отображается корректно.
HTTPS
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
# или для Nginx:
# sudo apt install certbot python3-certbot-nginx
# sudo certbot --nginx
Переезд с использованием ISPmanager
Бэкап
- Вход в панель (
https://<ip>:1500). - «Файловый менеджер»/«Резервное копирование»: архивируйте и скачайте папку сайта (
/var/www/<user>/data/www/yourdomain.com). - «Базы данных»: экспорт
.sql. - Зафиксируйте параметры домена и PHP-версию.
Перенос
- На новом сервере загрузите архив и распакуйте в целевую папку.
- Создайте БД и пользователя, импортируйте
.sql. - В «Домены» добавьте домен, укажите корень сайта, версию PHP.
- В «SSL-сертификаты» подключите Let’s Encrypt или загрузите свой.
Примечание. ISPmanager автоматом пишет конфиги Apache/Nginx, но проверьте владельца/права (обычно 755 для папок, 644 для файлов).
Переезд с использованием FreePanel
Бэкап
- Вход (часто
http://<ip>:8080). - «File Manager»: скачайте папку сайта или сделайте архив:
tar -czvf site-backup.tar.gz /var/www/html/yourdomain
- «Databases»: экспорт
.sqlили через SSHmysqldump.
Перенос
- На новом сервере в «File Manager» загрузите архив и распакуйте:
tar -xzvf site-backup.tar.gz -C /var/www/html/yourdomain
- Создайте БД и пользователя, импорт:
mysql -u new_user -p new_database < backup.sql
- «Domains»: добавьте домен, корневую папку, PHP-версию.
SSL Если авто-Let’s Encrypt недоступен:
sudo certbot --apache
# или:
# sudo certbot --nginx
Замечание. В FreePanel больше ручной работы. При проблемах проверьте конфиги в /etc/apache2 или /etc/nginx и права.
Типичные проблемы и быстрые решения
- Database connection error — проверьте
wp-config.php(DB_NAME/DB_USER/DB_PASSWORD/DB_HOST). - 404 на WordPress — перепроверьте
.htaccess(Apache) илиtry_filesв Nginx. - Белый экран — включите отладку:
define('WP_DEBUG', true);
и смотрите логи веб-сервера.
Медленная загрузка — проверьте, что DNS уже указывает на новый IP и нет смешанной статики со старого сервера.
Не хватает файлов — сравните содержимое архива и целевой папки.
Проблемы в панелях
- ISPmanager: домен привязан к корректной папке, PHP-версия совпадает.
- FreePanel: права/владельцы и корректность конфигов вручную.
Локальное тестирование не работает — убедитесь в верном IP в
hostsи сбросьте кэш DNS.
Полезные советы
- Тестируйте на поддомене
test.yourdomain.com. - Для WordPress используйте миграционные плагины (Duplicator, UpdraftPlus).
- Настройте регулярные бэкапы (cron или инструменты панели).
- Документируйте шаги, логины и изменения конфигов.
Заключение
Переезд или восстановление сайта — задача выполнимая. При наличии бэкапа и понятного плана риск низкий. Панели ISPmanager и FreePanel упрощают рутину, а тестирование через hosts позволяет проверить всё без изменения публичного DNS. Делайте шаги последовательно, проверяйте логи и не храните единственную копию на исходном сервере. Со временем вы будете выполнять такие операции уверенно.
// Reviews
Отзывы по теме
Спасибо Михаилу за отзывчивость. Созвонились, объяснил как сделать самому. Обращаюсь уже второй раз, все супер и оперативно.
Спасибо Михаилу за отзывчивость. Созвонились, объяснил как сделать самому. Обращаюсь уже второй раз, все супер и оперативно.
Хочу выразить огромную благодарность специалисту, который настроил мне ЧПУ на OpenCart. Настроить ЧПУ оказалось легко и просто, и я рад, что наконец нашел профессионала, который сделал всё качественно и без лишних сложностей. До этого я сменил четырёх специалистов, и каждый раз возникали проблемы с настройкой, но этот человек справился с задачей идеально.
Хочу выразить огромную благодарность специалисту, который настроил мне ЧПУ на OpenCart. Настроить ЧПУ оказалось легко и просто, и я рад, что наконец нашел профессионала, который сделал всё качественно и без лишних …
Отличная работа, обращаюсь не первый раз, находит решения к сложным задачам. Рекомендую.
Отличная работа, обращаюсь не первый раз, находит решения к сложным задачам. Рекомендую.
Отличная работа! Выполнил поставленную задачу в срок и без ошибок. Было приятно сотрудничать, рекомендую.
Отличная работа! Выполнил поставленную задачу в срок и без ошибок. Было приятно сотрудничать, рекомендую.
Отличный специалист, вник в проблему, разобрался, исправил. Рекомендую.
Отличный специалист, вник в проблему, разобрался, исправил. Рекомендую.
Нужно было решить проблему с SSL сертификатом на сервере, который был выпущен через Ngnix Proxy manager. Михаил уточнил все детали, как у меня все устроено, попросил доступы чтобы оценить реальность решения задачи, т. к. до этого не сталкивался с подобным сервисом. Быстро разобрался и решил мою проблему. Идеальное сотрудничество)
Нужно было решить проблему с SSL сертификатом на сервере, который был выпущен через Ngnix Proxy manager. Михаил уточнил все детали, как у меня все устроено, попросил доступы чтобы оценить реальность решения задачи, т. …
Диагностика Nginx Proxy Manager в docker контейнере и решение проблемы
15.03.2024 · ★ 5/5
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
// Related