Перенос сайта WordPress на другой хостинг в виде памятки. Особенности переноса сайта, работающего по протоколу https с бесплатным SSL-сертификатом.
Хостинг-компании, с которыми я работаю (Beget, Timeweb и Евробайт), предоставляют бесплатную услугу по переносу сайтов на их сервера. Но это можно сделать и самостоятельно.
Перенос WordPress-сайта на другой хостинг
В памятке содержатся этапы переноса незащищенных и защищенных сайтов, работающих по протоколу https. Для смены хостинга незащищенного сайта требуется выполнить меньше действий. Пункты, относящиеся только к https-сайтам отмечены аббревиатурой SSL в скобках.
Сложность переноса защищенного WordPress-сайта заключается в том, что без действительного SSL-сертификата его невозможно будет открыть для проверки работоспособности на новом хостинге. А бесплатный сертификат Let’s Encrypt можно получить только после того, как применятся новые DNS-записи. Отсюда возникает необходимость дополнительных действий.
Популярный сайт следует переносить на другой хостинг в то время суток, когда посещаемость самая низкая. Обычно это происходит ночью.
Памятка по переносу WordPress-сайта на другой хостинг:
- Скачиваем каталог с файлами, почту (если использовалась) и базу данных переносимого сайта со старого хостинга.
- Добавляем доменное имя сайта и создаем новую базу данных на новом хостинге.
- Загружаем файлы, почту на новый хостинг и импортируем базу данных.
- Редактируем файл wp-config.php.
- (SSL) Меняем в базе данных на новом хостинге у опций «siteurl» и «home» https на http.
- (SSL) Отключаем плагин, подменяющий в ссылках http на https, переименованием папки с ним. Если вместо плагина используется перенаправление в файле .htaccess, удаляем код перенаправления из него.
- Проверяем работоспособность сайта на локальном компьютере.
- Заменяем DNS-записи у регистратора доменного имени.
- (SSL) Ожидаем применение новых DNS-записей.
- (SSL) Заказываем или генерируем самостоятельно SSL-сертификат.
- (SSL) Ожидаем выпуск бесплатного SSL-сертификата.
- (SSL) Входим в админ-панель WordPress (через ссылку с http) и меняем у опций «Адрес WordPress (URL)» и «Адрес сайта (URL)» http на https.
- (SSL) Возвращаем папке с плагином первоначальное имя или добавляем удаленный код в файл .htaccess.
- (SSL) Активируем плагин, подменяющий в ссылках http на https, через админ-панель.
Пояснения к отдельным этапам переноса сайта
Пункт 1
Работать лучше с архивами файлов, так как они скачиваются и загружаются быстрее. На локальном компьютере скачанный со старого хостинга архив необходимо распаковать и перейти в каталог с папками и файлами WordPress.
Далее следует выделить все папки и файлы и снова запаковать их в ZIP-архив. Это необходимо для того, чтобы при распаковке архива на новом хостинге все файлы и папки оказались в том же каталоге, что и загруженный архив.
Пункт 3
Загружаем созданный нами ZIP-архив в каталог с названием сайта (Евробайт) или в папку public_html (Beget и Timeweb), которая расположена внутри каталога с названием сайта.
Пункт 4
Копируем через FTP клиент FileZilla с нового хостинга файл wp-config.php на локальный компьютер. Открываем его с помощью Notepad++ и находим следующие строки:
1 2 3 4 5 6 |
/** Имя базы данных для WordPress */ define('DB_NAME', 'имя_базы_данных'); /** Имя пользователя MySQL */ define('DB_USER', 'имя_пользователя'); /** Пароль к базе данных MySQL */ define('DB_PASSWORD', 'пароль'); |
Заменяем в файле wp-config.php параметры, которые обозначены в примере выражениями: имя_базы_данных, имя_пользователя и пароль, новыми значениями. Сохраняем изменения и загружаем файл обратно на сервер с перезаписью исходного.
Имя базы данных для WordPress и имя пользователя MySQL могут как отличаться друг от друга, так и быть одинаковыми.
Пункт 5
Теперь нужно сделать, чтобы сайт открывался по протоколу http. Для этого необходимо заменить https на http в опциях общих настроек админ-панели: «Адрес WordPress (URL)» и «Адрес сайта (URL)». Просто так войти в админ-панель https-сайта без действующего SSL-сертификата уже не получится, поэтому воспользуемся базой данных.
Через phpMyAdmin открываем таблицу wp_options базы данных переносимого сайта на новом хостинге и у опций «siteurl» и «home» меняем https на http. Эти записи базы данных соответствуют вышеназванным опциям админ-панели.
Пункт 6
Для той же цели, что указана в пункте 5, необходимо отменить перенаправление ссылок с http на https. Обычно для этого в WordPress используется плагин. Чтобы его деактивировать, надо войти в каталог с плагинами и изменить название папки перенаправляющего плагина, например, добавив к нему цифру или букву.
Пункт 7
Чтобы проверить работоспособность сайта на локальном компьютере следует в конце файла hosts, путь к которому C:\Windows\System32\drivers\etc\hosts, добавить строку:
xx.xx.xx.xx example.ru
где вместо xx.xx.xx.xx следует указать IP-адрес сервера, а вместо example.ru домен проверяемого сайта. Маска IP-адреса может быть разной (в примере маска IP-адресов Евробайта).
Найти IP-адрес сервера можно:
- Beget – в разделе «DNS» (запись А домена).
- Timeweb – на главной странице панели управления.
- Евробайт – в разделе «WWW домены» панели управления ISPmanager.
Я проверяю работоспособность главной страницы перенесенного сайта в браузере Google Chrome в режиме инкогнито, что позволяет не удалять куки. Изображения с https в адресе не будут отображаться, переходы по внутренним ссылкам с https будут вызывать сообщения о незащищенном сайте.
Если есть желание проверить, как открываются другие страницы сайта, можно поменять в адресах ссылок https на http с помощью плагина Velvet Blues Update URLs. Для этого следует войти в админ-панель WordPress, которая уже доступна по ссылке с http на локальном компьютере.
После проверки работоспособности перенесенного на другой хостинг сайта не забываем удалить или закомментировать, сохранив для будущего использования, сделанную запись в файле hosts.
Пункт 9
Держим главную страницу сайта открытой в браузере и периодически обновляем ее. Как только она станет недоступна по https, проверяем доступность по http и переходим к заказу бесплатного SSL-сертификата.
Пункт 10
Заказываем бесплатный сертификат Let’s Encrypt.