Причины, следствия и последствия
В каких случаях может возникнуть необходимость смены хостера?
Первая и самая логичная причина – деньги. Зачем тратить на услуги хостера больше, если конкуренты предлагают условия выгоднее?
Не менее популярная причина – плохое качество услуг. Сервера периодически недоступны, вы теряете посетителей, клиентов и, опять же, – деньги.
Недостаточная функциональность. Вам нужны большие лимиты на загрузку или, например, почта для домена, но у старого хостера их просто нет, а ради вас их никто добавлять не будет.
Банкротство или отключение ЦОД провайдера. Это кажется маловероятным, но на деле от этого никто не застрахован, даже крупный бизнес. В любой момент могут появиться тысячи недовольных клиентов, масса проблем и вовремя не сделанные бэкапы…
Вас попросил сам хостер. Это весьма вероятная причина смены шаред-хостинга. И дело не в запрещённом контенте или в жалобах пользователей. Ваш сайт может создавать повышенную нагрузку на сервер (упереться в потолок его возможностей), из-за чего другим клиентам, размещённым по соседству, будет доставаться меньше ресурсов.
Какой бы ни была причина, сайты регулярно мигрируют между хостингами, и это нормально.
Теперь непосредственно сам алгоритм.
Основные шаги по смене хостинга
Описанные пункты будут актуальны в первую очередь для шаред (shared, «общего» или виртуального) хостинга. Но многие из них можно использовать и при миграции с VPS/VDS, выделенных серверов, с облачного хостинга.
- Выбираем подходящего провайдера услуги.
- Создаём бэкап каталога с сайтом.
- Скачиваем архив на ПК или сразу на новый сервер, проверяем целостность.
- Распаковываем архив (если новый хостер не работает с архивами, а также не предоставляет доступа к SSH-протоколу, то придётся «заливать» все файлы по-отдельности при помощи FTP-клиента).
- Проверяем отсутствие проблем с файлами (названия, кодировка и т.п.).
- Создаём бэкап базы данных.
- Переносим БД на новый хостинг.
- Проверяем настройки доступа CMS к базе данных (нужно поменять имя БД, пользователя и его пароль на актуальные).
- Проверяем настройки PHP и файлов .htaccess (здесь тоже могут понадобиться правки).
- При наличии alias (часто шаред-провайдеры выдают для новых сайтов автоматические домены третьего уровня) проверяем работу сайта.
- Перенаправляем домен на новый хостинг.
- Выжидаем время перенаправления (обычно это не более 3 суток).
- При необходимости переносим контент и записи БД, которые успели появиться на старом хостинге.
- Еще раз убеждаемся в обновлении NS-записей.
- Теперь файлы, базу данных или даже весь аккаунт можно удалить у старого провайдера.
На каждом из этих шагов могут быть свои проблемы, поэтому лучше один раз увидеть, чем сто раз услышать. Приведём конкретный пример: перенесём сайт на базе WordPress с одного shared-хостинга на другой.
Предположим, нам повезло, наш старый провайдер не обанкротился (оставив без бэкапов или с бекапами годичной давности, которые случайно остались на ПК нетронутыми), он продолжает работать и готов предоставить доступ ко всем нужным функциям.
Выбор нового провайдера
Это огромный пласт информации, который невозможно раскрыть в одном-двух предложениях. Критерии выбора у каждого пользователя могут быть свои. Кому-то важно доступное место на жёстком диске, кому-то нужен проксирующий nginx перед apache, а кто-то ищет возможность тонкой настройки PHP или поддержку современной версии 7.4, вместо устаревшей ветки 5.4, и так далее.
Выбор хостинга для для российского сайта
Рекомендуем выбирать хостинг AdminVPS, почему именно так, разберемся, изучив его плюсы и минусы.
Для начала рассмотрим преимущества:
- Высокая производительность. Она достигается за счет развитой серверной инфраструктуры с дата-центрами в разных странах мира.
- Предоставляется виртуальный хостинг, выделенные сервера, доступен специальный тариф для WordPress.
- Сеть строится с использованием продвинутого, современного оборудования.
- Новые пользователи получают бесплатный доступ на протяжении недели. При этом удастся протестировать все возможности предоставляемые провайдером.
- Автоматические бэкапы с возможностью хранения в течение 1 месяца. Для обеспечения безопасности личных данных все сессии и операции фиксируются в «Журнале посещений».
- Пакетные услуги с понятными условиями.
- Доступна двухфакторная авторизация – это обеспечит дополнительную защиту данных.
- Активация после оплаты тарифа – моментальная.
- Низкий пинг, что гарантирует быстрый отклик веб-приложений на запросы пользователей. По показателю быстродействия хостинг входит в топ-10 лучших.
- Для управления представлена кастомизированная панель ISPmanager. Она имеет предельно простую структуру и встроенный поиск, что существенно упрощает переход к конкретным страницам. Потребности постоянно разворачивать меню нет. Для VPS и dedicated возможна установка любой панели управления. Это можно сделать самостоятельно или же через специалиста техподдержки. Такая услуга бесплатна.
- Возврат средств за неиспользованные услуги в случае смены хостинга.
- Техподдержка с квалифицированными специалистами, работает круглосуточно. Реализована она через тикеты, также есть связь по телефону и онлайн-чат.
- Доступен анти DDoS-хостинг, который отличается наличием продвинутых инструментов защиты. Есть отдельные предложения для онлайн-торговли.
- Предоставляется услуга регистрации доменов.
Есть ряд недостатков, среди них:
- Длительное ожидание ответа техподдержки. На моментальное решение проблемы ждать не приходится. Основная причина – использование системы тикетов. Онлайн-чат и телефонная связь подходят для решения общих вопросов.
- Есть вопросы к объемам дискового пространства, которое доступно на старших тарифах – 20-60 Гб, это с одной стороны неплохо, однако есть более выгодные предложения на рынке.
- Более сложная процедура регистрации в сравнении с другими провайдерами.
Выбор хостинга для международного сайта
Вы можете подойти к выбору хостинга изучив отзывы и экспертные обзоры, технические характеристики, или даже на практике проверить качество сервиса (напишите в поддержку и проверьте время реакции, правильность ответа). Повторимся, универсальных решений не бывает.
Стоимость хостинга важна, но это не решающий фактор, потому что часто за низкими ценами кроются проблемы (плохой аптайм, отсутствие поддержки, скудная документация, небольшой набор дополнительных услуг и т.д.).
Создание и скачивание бэкапов файлов сайта
Многие провайдеры shared-хостинга предоставляют web-панель для управления сайтами. Наиболее популярное решение – cPanel, но оно не единственное, поэтому алгоритм создания бэкапов может кардинально отличаться.
Даже если у вас нет доступа к web-панели, «достать» свои файлы с хостинга можно посредством SSH или FTP-подключения. Правда, SSH поддерживают не все или эта опция может быть платной.
FTP-доступ есть в 99% случаев. Поэтому достаточно установить любой FTP-клиент (например, FileZilla или WinSCP) на ПК и подключиться к своему аккаунту. Параметры доступа вам высылались на почту при заказе хостинга, их можно также найти в панели управления или получить от техподдержки.
Директория переносимого сайта может располагаться в разных каталогах старого хостера, но характерным признаком всегда можно назвать имя домена. Обратите внимание, для доменов, которые содержат символы, отличные от латинских, например, сайт.рф, каталог будет иметь вид xn--80aswg.xn--p1ai (это так называемая punycode-конвертация).
Если хостер предоставляет онлайн-файловый менеджер, проверьте, есть ли в нём возможность создания архивов: .zip, .tar или .tgz. Последние два наиболее удобны, так как не имеют проблем с кодированием названий файлов в кириллице, а их поддержка всегда присутствует на любом linux-сервере.
Почему бэкап лучше скачивать архивом? Дело в том, что скачивание каталога с большим количеством файлов через FTP может сильно растянуться по времени. А работа с архивами занимает намного меньше времени (вы скачиваете только 1 файл на максимальной скорости). А ещё созданный архив вы сможете скачать с сервера на сервер по FTP или SFTP-протоколу без использования жесткого диска ПК.
Перенос файлов к новому хостеру
Обратите внимание, что при регистрации аккаунта новый хостер может предложить зарегистрировать новый домен. От этой услуги вы всегда можете отказаться.
В панели управления нужно будет создать/добавить новый сайт, при этом в качестве имени указать ваш домен, тот, который планируете перенести. Будьте внимательны и не ошибитесь в символах. Создание сайта в панели управления пока не обязывает вас ни к чему (после этих операций он по-прежнему будет доступен на старом хостинге).
Как перенести файлы на примере AdminVPS
Порядок переноса файлов при переходе на хостинг AdminVPS будет отличаться в зависимости от того, решите это делать самостоятельно или же будете обращаться к специалистам провайдера. При самостоятельном переносе алгоритм следующий:
- добавить домен на хостинге AdminVPS;
- скопировать архив на хостинг;
- разместить файлы сайта в каталог добавленного домена.
Для сайтов, в которых используются базы данных, что актуально именно для WordPress, потребуется также создать БД на хостинге AdminVPS, импортировать дамп в созданную базу и изменить файлы конфигурации вашего сайта в соответствии с данными хостинга. Самостоятельный перенос для начинающих может стать серьезной проблемой, поэтому провайдер предлагает тематическую услугу, она бесплатная.
Чтобы ею воспользоваться, нужно приобрести один и тарифов провайдера и отправить заявку на перенос. Как только процедура будет завершена, придет уведомление на почту. Необходимо обязательно проверить корректность работы проектов после изменения DNS домена.
Обратите внимание, время переноса составляет около 24 часов, хотя в большей мере длительность зависит от скорости передачи данных со старого хостинга. Во время переноса сайта его нельзя редактировать, иначе не избежать ошибок – коррективы будут отсутствовать и в версии на старом и на новом хостинге.
Как перенести файлы:
- Открываете cPanel (авторизуетесь в аккаунте).
- Выбираете секцию «Файлы».
- В открывшемся окне файлового менеджера переходите в каталог сайта (/home/ВАШ_САЙТ/public_html).
- В меню выбираете пункт «Передать файлы».
- Загружаете ваш архив.
Метод может быть неэффективен при передаче/загрузке архива большого размера.
В этом случае лучше активировать SSH-доступ (по умолчанию он отключен). Сделать это можно в cPanel во вкладке «Безопасность» (Security). После активации опции вы уже можете подключаться к серверу с использованием пары «логин-пароль» от своего аккаунта. Для доступа по паре «пользователь-ключ» нужно будет сгенерировать RSA или DSA ключи (закрытый + открытый).
Закрытый должен храниться у вас и использоваться для авторизации, а открытый ключ нужно скопировать на сервер в каталог «/home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh/ и переименовать в authorized_keys. Если каталога .ssh (обязательно с точкой в начале) в папке пользователя нет, то его нужно создать самостоятельно. При этом в ключе не должно быть символов переката (переноса строк), при наличии их все нужно удалить.
Содержимое ключа должно выглядеть следующим образом:
ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIEAnjXf5VEuIfOHmbNGn7NZAYDjSp8mYK9sDF+ RZR75V4gyu3FeaXcAlwA/jwzzgpIvhK2why5t9DtokyInlocqP9SbNd9xOnrvXEV+ImvKiBf4+ tFk7uagZJ+CLrr0tK7M4lKskjfad38UF5cJ0+YU24V1sCDs6QTJC4kG3PO1eeE=
Теперь к серверу можно подключиться с использованием ключей.
Многие клиенты для SCP/SFTP позволяют работать с большими файлами. Скопируйте архив с бэкапом вашего сайта в корень папки нужного домена и распакуйте.
Распаковка архивов с помощью команд (при SSH-подключении, например, через терминал PuTTY):
- В терминале переходим в нужный каталог (туда, где лежит архив) – с помощью команды cd /home/ВАШ_САЙТ/public_html.
- Теперь распаковываем архив (правильно указывайте название файла):
- Для .tgz фалов, а также для .tar.gz: tar -zxvf ArchiveName.tgz
- Для .zip файлов: unzip ArchiveName.zip
- Для tar файлов: tar -xvf ArchiveName.tar
С помощью командной строки можно также скачать ваш архив со старого сервера, например:
wget -nH -r -l 0 ftp://user:password@адрес_сервера_FTP
Пару user:password нужно заменить на действующую вида «имя_пользователя_ftp:реальный_пароль», где двоеточие – разделитель.
Команда скачает архив в тот каталог, в котором вы сейчас находитесь, поэтому переключитесь в корень сайта. Дальше можно выполнить его распаковку.
Если ни один из методов не сработал – используйте проверенный FTP (с помощью любого клиента подключаетесь к серверу и выполняете загрузку каталога с сайтом, при этом он должен быть распакован из архива). Приготовьтесь, что это будет долго.
Перенос баз данных
Гарантированный способ переноса баз данных MySQL без проблем – создание дампа. Но этот функционал доступен только при работе с командной строкой из-под root-пользователя MySQL (актуально для VPS/VDS/выделенных серверов).
Пользователи shared-хостинга могут скачать бэкап базы данных из панели управления или выгрузить её самостоятельно через web-интерфейс скрипта phpMyAdmin. Открыть его можно из той же панели управления хостинга.
Для этого:
- Войдите в phpMyAdmin.
- Выберите нужную вам базу данных (в древовидной структуре слева).
- Нажмите на вкладку «Экспорт».
- В блоке настроек экспорта нажмите пункт «Выделить все».
- В блоке «Сохранить как файл» отметьте чекбокс «zip» или «gzip» (необязательный шаг).
- Дождитесь сохранения файла.
После этого вы можете импортировать базу данных в панели управления cPanel или также через интерфейс phpMyAdmin:
- Войдите в phpMyAdmin.
- Выделите вашу действующую базу данных в меню (она создалась автоматически при активации аккаунта).
- Переключитесь на вкладку «Импорт».
- В специальном поле выберите файл БД на вашем ПК (БД может быть в сжатом виде).
- Нажмите кнопку «ОК» и дождитесь окончания импорта (в выбранной базе данных должны появиться новые таблицы).
Изменение параметров доступа к БД
Если не выполнить этот шаг, то ваша CMS не сможет подключиться к новой базе данных.
Поэтому в WordPress вам нужно отредактировать файл wp-config.php. Он лежит в корне вашего сайта (/home/ВАШ_САЙТ/public_html/wp-config.php).
Правки можно внести через встроенный редактор в cPanel или с помощью SFTP/SCP/FTP (нужно скачать этот файл на ПК, изменить в любом текстовом редакторе и закачать обратно на сервер, проверив, что он изменился).
Вот здесь нужно прописать параметры нового пользователя для БД (не путать с пользователями FTP и т.п.):
/** Имя базы данных MySQL для WordPress у нового хостера*/
define('DB_NAME', 'имя_базы_данных');
/** Имя пользователя MySQL */
define('DB_USER', 'ваш_user_db');
А здесь новый пароль:
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'пароль_вашего_пользователя_БД')
Чтобы избежать ошибок, вносите правки только внутри одинарных кавычек, всё остальное трогать не нужно. И следите за кодировкой текста (при редактировании в стандартном блокноте Windows она может быть установлена как windows-1251, а должна быть utf-8).
Перенос SSL-сертификатов
Только для тех сайтов, которые уже используют HTTPS протокол.
Скачайте файлы сертификата и закрытого ключа для него в настройках своего старого хостинга (процедура будет зависеть от используемой панели управления). Это должны быть файлы с расширениями .crt и .pem.
В панели управления (cPanel):
- Перейдите на вкладку «Безопасность».
- Выберите пункт «SSL/TLS».
- В открывшемся окне выберите пункт «Установка и управление SSL для сайта…».
- Выберите свой домен.
- Вставьте содержимое файлов в специальные поля: из файла с расширением .crt в поле «Сертификат (CRT)», а из файла .pem в поле «Закрытый ключ» (файлы нужно открыть в любом текстовом редакторе).
- Поле «Пакет центра сертификации» можно оставить пустым.
- Нажмите кнопку «Установить…»
На данный момент купить или перевыпустить отдельные из популярных SSL-сертификатов невозможно для национальных доменов. Это недоступно для популярных DigiCert, Sectigo (бывший Comodo). К запрету присоединились поставщики многих бесплатных сертификатов, а также сертификаты с проверкой организации.
Поскольку все современные браузеры требуют работы сайта по HTTPS, отсутствие сертификата приведет к появлению ошибки «Подключение незащищено». Это прямо влияет на SEO и другие аспекты продвижения, интеграции и другой полезной работы с проектом. Выход – использовать не подсанкционные SSL, которые, пока еще есть, или же бесплатные.
Перенаправление домена
После того, как все файлы сайта и база данных перенесены к новому хостеру, вы можете перенаправить домен на NS-сервера нового хостинга.
Сделать это можно в панели управления регистратора. Если вы используете сторонний сервис, такой как Яндекс.Коннект, то перенаправление домена нужно выполнять через него.
После того, как данные в DNS-системе обновятся, и ваш домен начнёт ссылаться на новый хостинг, вы можете окончательно отказаться от услуг старого хостера. Процесс обновления может занять до 3-х суток.
Частые ошибки
Ошибка соединения с базой данных
Самая популярная ошибка при переносе сайта на WordPress. Обязательно нужно отредактировать файл wp-config.php, вписав туда актуальные логин и пароль нового пользователя для базы данных (их выдаёт новый хостер). Многие вебмастера забывают это сделать после переноса файлов и импорта базы данных. Плюс, нужно проверить требования нового провайдера к локальному хосту - чаще всего он определяется как
define('DB_HOST', 'localhost');
Но переменная localhost может иметь другой вид, например, 127.0.0.1, или это может быть конкретный IP-адрес.
Медиафайлы, в наименовании которых кириллица, не открываются после переноса
Используйте архивы tar и tar.gz. В zip-архивах могут возникать ошибки с не-ASCII символами (в том числе с кириллицей). При этом многие панели для хостинга делают бэкапы именно в zip-архивах. Чтобы такой ошибки никогда не возникало – просто используйте плагины для автоматической транслитерации кириллицы в URL и в именах файлов (но это уже превентивные меры). Если ваши изображения имеют в названиях кириллические символы, а возможности создания tar-архивов нет – скачайте каталог uploads через FTP или SFTP без сжатия.
После переноса настройки темы не сохраняются или сайт вообще не работает (белый экран)
В первую очередь, нужно проверить целостность всех файлов, в том числе файлов шаблона. Попробуйте перейти сразу в панель администратора. Если вход осуществляется, то проблема в переносе настроек шаблона. Дело в том, что некоторые разработчики WordPress-тем сохраняют настройки в многомерных массивах в базе данных. При импорте/экспорте базы часть спецсимволов, особенно в многомерных массивах, могут удалиться.
Чтобы исправить ситуацию, настройки темы из старой БД в новую можно перенести вручную (через интерфейс phpMyAdmin), но для этого нужно знать где и как хранятся настройки. Или можно временно переключиться на одну из стандартных тем, удалить и установить заново нужную, снова настроить её как требуется.
Если панель администратора недоступна, вы можете отключать текущую тему путём переименования каталога, в котором она хранится. Если манипуляции с темами не помогают – включите вывод ошибок для PHP (нужно поменять параметр define('WP_DEBUG', false); на define('WP_DEBUG', true); в файле wp-config.php).
Не открываются ссылки на отдельные записи и страницы, при этом главная страница работает
Чтобы обеспечить правильную работу ЧПУ, для WordPress нужен модуль mod_rewrite (для web-сервера Apache). Проверьте наличие этого модуля у хостера и правильность настроек в файле .htaccess в корне сайта (обратите внимание, файлы с точкой в начале на Linux-системах – скрытые). В нём обязательно должны быть следующие настройки:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Вместо русского текста отображаются знаки вопроса. Убедитесь, что в панели управления хостинга для вашего сайта выбрана кодировка UTF-8. Если вы меняли какие-либо файлы при переносе – проверьте, в какой кодировке они сохранились на сервере. Убедитесь, что база данных имеет кодировку utf8_general_ci (через phpMyAdmin вкладка «Операции»).
В панели администратора WordPress появляются уведомления о недостаточных лимитах или неправильных настройках PHP. Некоторые сервисы позволяют изменять настройки PHP, для этого необходимо создать файл php.ini в корне сайта и скопировать в него нужные пользовательские настройки, например:
memory_limit = 128M
upload_max_filesize = 16M
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
Итог
Как видно из описанного выше, при переносе сайта с хостинга на хостинг нет ничего страшного. Это под силу сделать самостоятельно даже начинающему вебмастеру. Остаётся только немного углубиться в детали и соблюдать правильную последовательность действий. Ну и главное, не паниковать.