mysurik.ru

Как я переносил сайт с одного хостинга на другой и не потерял данные

CMS сравнение выбор платформы

Зачем я переезжал

Три года мой сайт жил на обычном shared-хостинге за 300 рублей в месяц. Всё было нормально, пока сайт не начал расти: база стала 500 MB, посещаемость пошла вверх. Хостинг начал тупить: страницы грузились по 5 секунд, MySQL падал, техподдержка разводила руками.

Решил переезжать на свой VPS. Выбрал тариф на 4 GB RAM, 100 GB NVMe. Было страшно — у меня не было опыта администрирования серверов, только базовая работа с Linux.

План переезда

Я выделил субботу и воскресенье. План был такой:

1. Заказать VPS, установить Ubuntu 24.04
2. Поднять nginx, PHP, MySQL
3. Установить WordPress, перенести файлы
4. Импортировать базу данных
5. Настроить DNS
6. Молиться

На деле всё заняло около 6 часов с учётом граблей.

Что пошло не так

Перенос базы. Дамп MySQL весил 500 MB. Команда mysqldump на старом хостинге отваливалась с таймаутом через 30 секунд. Пришлось делать дамп по таблицам:

for table in $(mysql -u user -p db -e "SHOW TABLES;" | tail -n+2); do mysqldump -u user -p db $table >> dump.sql; done

Заняло минут 20, но сделано.

Перенос файлов. Через scp тянул wp-content с картинками (6 GB) — висел 2 часа. Хостинг ограничивал скорость до 1 MB/s. Запустил вечером, лёг спать. Утром всё было на месте.

Права доступа. На новом сервере WordPress ругался «не могу создать папку uploads». Оказалось, папки принадлежат root. Исправил chown.

DNS. Поменял NS-записи у регистратора. Ждал 4 часа, пока распространится. Всё это время часть пользователей видела старый сайт, часть — новый.

Что я узнал

Делайте дамп базы и файлов ДО того, как трогать DNS. Проверьте, что новый сервер работает идеально, прежде чем переключать трафик. И оставьте запасной план на случай, если что-то пойдёт не так (у меня был — включить старый хостинг обратно).

Сейчас сайт летает: TTFB 0.03 секунды, страницы грузятся за 0.1 секунды. Переезд того стоил.

Выбор хостинга — тот ещё квест

Перед переездом я перерыл кучу форумов. Честно говоря, глаза разбегались. DigitalOcean, Hetzner, Timeweb, Selectel — у каждого свои плюсы и минусы. Я остановился на Hetzner CX42 за 8 евро: 4 vCPU, 8 GB RAM, 80 GB NVMe. Для моего проекта — с головой.

Установка заняла 15 минут. Выбрал Ubuntu 24.04 LTS, потому что на ней сижу уже года три и знаю все грабли. После установки первым делом отключил вход по паролю, настроил SSH по ключу. Если ты читаешь это и ещё не сделал — сделай прямо сейчас. Потом поблагодаришь.

Настройка сервера — тут я наступил на первые грабли

Думал, поставлю nginx, PHP, MySQL одной командой — и поплыло. Нет. Начал с установки Nginx — всё ок. PHP 8.3 — ок. MySQL 8 — ок. А потом понял, что забыл про PHP-FPM. Без него nginx не дружит с PHP. Ставил полчаса, читал доки, матерился.

Дальше — WordPress. Скачал, распаковал. Всё бы ничего, но права на папки — отдельная боль. На старом хостинге файлы были у пользователя www-data, а на новом я создал своего юзера. Пришлось разбираться с chown, chmod, umask. Два часа убил на эту херню.

Перенос базы — филиал ада

Я уже говорил про дамп по таблицам? Если нет — слушай. Старый хостинг обрубал mysqldump через 30 секунд. Пробовал увеличить timeout в конфиге — не дали. У них свой phpMyAdmin, но он тоже вис на 500-мегабайтном дампе. Пришлось городить скрипт на PHP, который по 10 таблиц за раз выгружал. На всё ушло минут 40.

Импорт на новом сервере прошёл за 5 минут. Тут повезло. После импорта проверил — все таблицы на месте, посты есть, комментарии есть. Выдохнул.

DNS — отдельная песня

Я переключил NS на Cloudflare, потому что хотел бесплатный CDN и защиту от DDoS. Настройка заняла 10 минут, но вот TTL… Я оставил 24 часа, думая «потом изменю». Не менял. И когда пришло время переключать — ждал почти сутки, пока DNS обновился. В итоге часть трафика шла на старый хостинг, часть — на новый. Кто-то писал, что сайт тормозит, кто-то — что летает. Советую ставить TTL 300 секунд за сутки до переезда.

Совет тем, кто только собирается переезжать

Не делайте это на продыхающих глазах. Выделите выходной, заварите чаю, подготовьте план Б. У меня вот план Б был — оставить старый хостинг включённым на неделю. И правильно сделал, потому что первый день после переезда я лазил по серверу и правил ошибки: то кеш не работает, то картинки не грузятся, то права не те.

Через неделю всё устаканилось. Я отключил старый хостинг, сэкономил 300 рублей в месяц и забыл про тормоза. Если у тебя сайт начал тупить — не терпи, переезжай. Это не страшно, если подготовиться.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *