29 июня 2017     8

Чистый переезд WordPress сайта на новый хостинг

Предпочитаю знать, что все что пишу в интернете принадлежит мне, что ни одна буква, ни одна картинка не пропадет со смертью или изменением правил работы какого либо сервиса. Не люблю баннеры, всплывающие окна, медленно работающие, корявые сайты. Стараюсь, чтобы в моём цифровом пространстве ничего этого не было.

Выражаю огромную благодарность создателям WordPress, авторам тем, плагинов. Если бы ни они, возможность простыми действиями изменить внешний вид, структуру всего сайта, то скорее всего у меня бы просто опустились руки и я сказал бы — к черту блогинг. Т.к. в какой-то момент под влиянием новых интерфейсов, возможностей просто не хочется работать, писать в старой среде. Так было у меня уже несколько раз. Сейчас выбираюсь из этой дыры, навожу порядок на хостинге, в организации статей, функционале блога и снова вперед.

Решение о смене хостинга

Все ниже написанное не означает, что вам надо менять хостинг. Основные причины по котором это делаю я — стоимость и желание установить свой WordPress c нуля, знать каждую папку, файлик. Коммерческие сайты физически должны находится в стране оказания услуг, у меня сайт (блог) информационный и как следствие могу позволить его разместить как в России так и в Беларуси, Украине, Германии…

Украинским хостингом пользовался несколько лет, теперь несколько лет уже пользуюсь белорусским от Hoster.by. Сайт работает, но как оказалось каждый день для него ограничивались ресурсы процессора, физической памяти, ресурсы I/O.

Ограничение ресурсов процессора

Не являясь спецом по Apache, MySQL, WordPress обратился в поддержку к хостеру. Предполагал, возможные косяки связанные с WordPress, плагинами… Ответ поддержки:

Сервер работает в штатном режиме, сайт у нас открылся с первого раза в данный момент. Видим по логам, что аккаунт периодически достигает лимитов по ресурсам, поэтому сайт иногда может быть недоступен. Подробную статистику по достижению этих лимитов Вы можете просмотреть в панели управления хостингом cPanel в разделе «Использование CPU и одновременных соединений». Если увидите неработоспособный сайт, то, пожалуйста, позвоните нам сразу, чтобы мы смогли в режиме реального времени проанализировать ситуацию.

Как следствие проблемы или с сайтом или с возможностями сервера. Услуги хостера обходятся в 18 рублей (9,6$ по текущему курсу) в месяц. Можно перейти на более дорогой тариф с большими ресурсами, а можно сменить хостера с более дешевыми тарифами и более мощными серверами, установить WordPress c нуля и посмотреть, что получится. В статье опыт именно такого переезда.

Хостинг от Fornex.com

Выбор остановил на Fornex.com. Плюс — больше ресурсов для сайта за меньшие деньги (например, был один CPU — стало 4).

Хостинг от Fornex.com

Тарифный план при необходимости можно повысить в несколько кликов. Для начала оплатил тариф аналогичный по возможностям текущему. Месяц здесь обходится в 2,28$. Если ресурсов опять не будет хватать, то «старший» тариф будет обходится в 5,6$, что дешевле текущих 9,6$.

Для того, чтобы полностью исключить проблемы с базой данных, плагинами делаю чистый переезд сайта на новый хостинг.

Последовательность действий по переезду:

  1. Установка WordPress на новом хостинге;
  2. Установка темы, плагинов и их настройка на WordPress;
  3. Экспорт записей, меток, рубрик со старого хостинга;
  4. Импорт статей на новый хостинг;
  5. Установка SSL-сертификата на новом хостинге;
  6. Устранение ошибок переезда.

Результат переезда, итоги проделанной работы в конце статьи, перейти.

Установка WordPress на новом хостинге

Перед установкой был создан новый домен markevich.by, прописан IP в настройках сети Firefox (для обеспечения доступа к сайту через созданный домен.

Как понял у каждого хостера процесс установки WordPress может несколько отличаться. В случае с Fornex.com идти надо в Панель управления хостингом (ссылка в личном кабинете), потом в Программное обеспечение сайта.

Установка WordPress

В результате блог доступен из предварительно настроенного Firefox. По умолчанию установлен английский язык, меняю на русский. Потом настраиваю отображение дат, обязательно меняю структуру постоянных ссылок.

Установлен голый WordPress. Переношу папку с темой со старого хостинга, устанавливаю минимум плагинов. Все, что связано с удобством редактирования текста теперь установлено на локальном сервере (к моменту переезда процесс протестировал при «переезде» на локальном сервер).

Установка темы, плагинов и их настройка на WordPress

Установка темы, плагинов и их настройка на WordPress нудный процесс, но недолгий. Установленная любимая тема и минимум плагинов:

  • RusToLat;
  • Yoast SEO;
  • Dagon Design Sitemap Generator;
  • WP-PageNavi;
  • bwp-Shortcodes;
  • NIX Gravatar Cache;

Копирую предварительно заархивировав папку с изображениям Uploads которая в архиве весит у меня 731 мегабайт. Мусора в ней хватает, но пока как в автомате удалить лишнее не знаю. Переношу  Uploads с одного сервера на другой именно в архиве.

Передача файлов на хостинг

Извлекаю файлы из архива. Удаляю ненужный архив. Перенос изображений на этом завершен. Теперь перехожу к экспорту статей из WordPress.

Экспорт записей, меток, рубрик со старого хостинга

Можно переносить всю базу данных со старого хостинга, но т.к. моя цель убрать все лишнее, а за годы от установки и теста разных плагинов в базе накопилось много не понятного для меня, то в настоящий момент использую стандартную возможность WordPress по экспорту статей, меток и рубрик — Инструменты — Экспорт — Всё содержимое.

Экспорт записей, меток, рубрик

На следующем шаге, в полученном файле все ссылки на https://markevich.by/ переименовываю на http://markevich.by/ (убираю S), верну после установки сертификата на новом сервере.

Замена http на https

Импорт статей на новый хостинг. Вариант 1

Импортирую все статьи на новый хостинг. Здесь, как правило, у хостингов стоят ограничений не дающие загружать файлы более определенного размера. Обходится добавлением в файл PHP.ini для конкретного домена двух параметров:

  • upload_max_filesize = 50M
  • post_max_size = 50M

Проблема с ограничением на загрузку файла снимается. При импорте всех имеющихся авторов заменяю одним.

Импорт из WordPress

Галочку напротив импорта вложений ставлю, но ожидаю сообщений о том, что файлы уже загружены (uploads скопировал, https заменил на http ранее). Если галочку не поставить, то изображения не появятся в медиотеке WordPress на новом хостинге.

Процесс импорта был начат в 15.42, а закончен в 16.11. К сожалению с косяками — комментарии отображаются, но при этом их количество указывается равным нулю. Сообщения кстати об окончании импорта не было. Жду еще.

В самом деле страница вроде мертвая, но процесс идет, заметно при открытии страниц сайта, там где раньше не было изображения через какое-то время оно всё-таки появляется.

В 16.20 у самой последней статьи появилось и количество комментариев. Всё в целом выглядит приемлемо, но хотелось бы увидеть финальное сообщение о завершении процесса и возникших в процессе ошибках.

В итоге получил внешне рабочий сайт, но по непонятным мне причинам вместо картинок ко многим статьям появились ссылки на изображения.

Повторный импорт. Вариант 2

Удалил весь сайт. Снова создал пустой, установил, тему, поменял тип постоянных ссылок, размеры миниатюр, добавил нового пользователя (в дополнение к админу), попросил поисковые системы не индексировать сайт, отредактировал PHP.ini, дополнил functions.php темы строкой исключающую из URL адреса статьи category (заметил, что при экспорте оно появилось),

add_filter(‘category_link’, create_function(‘$a’, ‘return str_replace(«category/», «», $a);’), 9999);

Отличие Вариант 2 от предыдущего варианта — не ставлю галку рядом со строкой Скачать и импортировать файлы вложений. Папка Uploads на новый сайт снова скопирована (перемещение произведено на самом сервере). В следствии её размера появилось сильное желание и её оптимизировать. Вариант найденный на текущий момент плагин — Force Regenerate Thumbnails.

Импорт в WordPress миниатюр

На http://localhost/markevich попробовал, результат не совсем понятен. Скорее просто удалю изображения с размерами которые в блоге уже не используются.

Возвращаюсь к импорту, с указанными настройками всё прошло как положено. Почти. Импорт на сервер начат в 17.36. Закончен в 17.37. Выдан список из 3565 строк содержащих информацию о файлах которые не удалось импортировать, но это нормально, т.к. картинки не импортировались.

Единственный косяк выдали сами миниатюры, которые отображаются у меня в шапке статьи — они не прикрепились. Вместо картинки серый фон.

Миниатюр в блоге нет

Решение проблемы — плагин Export Featured Images, который позволяет со старого хостинга экспортировать миниатюры, а потом также как и статьи импортировать в новый блог. Результат импорта будет выглядеть так.

Результат импорта миниатюр

У каждой записи теперь есть своя миниатюра. Так и должно быть.

Миниатюр в блоге есть

Теперь импорт полностью завершен. Перехожу к установке SSL-сертификата. Смысл его — обеспечение шифрованного соединения между блогом и вами. Результат — зеленый замок в адресной строке и метка — надежный.

Https в адресной строке

Установка SSL-сертификата на новом хостинге

В настоящий момент сайт на новом хостинге доступен по протоколу http, но нужен https. Про установку https писал ранее в статье — Переезд сайта на https. Пошаговая инструкция. Сейчас по сути надо частично повторить процесс переезда или воспользоваться установкой SSL сертификата из личного кабинета Fornex.

Установка SSL-сертификата Fornex.com

К сожалению не прокатило.

Ошибка выполнения запроса

Собрал файлы имеющие отношение к SSL в одной папке. Вот эти файлы:

  • markevich.by.key
  • markevich_by.ca-bundle
  • markevich_by (сертификат безопасности)
  • markevich_by.csr

Последовательность действия представляю, но не лишним будет спросить у поддержки Fornex.

Запрос поддержки у Fornex.com

В отличии от Hoster.by здесь весь процесс общения с техподдержкой собран в одном месте. Ответ был таким:

Здравствуйте. Вы можете установить сертификат для сайта через Cpanel меню SSL.
В качестве альтернативного варианта мы можем установить бесплатный сертификат от Letsencrypt.

Инструкция по установке ssl — сертификата https://fornex.com/wiki/hosting_ssl_setup/ . Если понадобится помощь, загрузите все файлы сертификата на хостинг, мы выполним установку.

По ощущениям уровень поддержки выше чем Hoster.by. Есть готовые инструкции по типовым вопросам.

Выполняю установку SSL своими силами. Передаю ключ на сервер.

Передача ключа на сервер

Передаю сертификат.

Передача сертификата

В результате сертификат установлен.

Сертификат успешно установлен

Теперь в базе данных сайта надо все ссылки содержащие http://markevich.by поменять на https://markevich.by. Результат запроса к базе данных.

Замена ссылок в базе данных

После выполнения данных запросов в админ-панель сайта войти больше не получается. Меняю IP адрес сервера для домена, копирую robots.txt, дополняю редиректами htaccess.

Меняю A-запись для домена markevich.by в 16.40 18.06.2017. Жду пока сайт на новом хостинге станет доступен из интернета (сегодня воскресенье). Процесс занял меньше часа.

Устранение ошибок переезда

Теперь смотрю на переехавший сайт, устанавливаю и настраиваю еще несколько плагинов:

  • Akismet Anti-Spam;
  • W3 Total Cache;
  • All In One WP Security.

Вижу недостаток второго варианта импорта — теперь изображения отсутствуют в библиотеке медиафайлов WordPress, но т.к. повторно в новых статьях картинки не использую меня это не волнует.

Заметил, что не перебросил на новый сервер в корень домена файлы подтверждения домена и т.п. (яндекс, google). Проверил видят ли сайт Яндекс.Метрика, Google Analytics, Яндекс.Вебмастер, Google Search Console. Все хорошо.

Третье — после того как все работает прогоняю весь сайт на предмет наличия битых ссылок. Использую программу NetpeakSpider.

Работа в NetpeakSpider

NetpeakSpider удобен всем, что есть возможность посмотреть где в блоге располагаются ссылки ведущие на несуществующие страницы. Шикарная программа.

Результат работы NetpeakSpider

Найдены три ошибки, одна связана с тем, что удалил одну страницу, вторая — битая ссылка, третья — ссылка в комментариях на несуществующее изображение. Все исправил.

На следующий день были проблемы с панелью управления WordPress — можно было только войти в неё, но нельзя войти на сайт. Очистил кэш браузера, удалил из файла Host упоминания блога.

Изменение файла Host

В этот же день выяснил, что от WordPress не приходят уведомления о новых комментариях, письма о смене пароля. Первое, что попробовал сделать — добавил на хостинг почтовый адрес wordpress@mydomen.by. Не помогло.

Общался с поддержкой Fornex.com. Отвечают оперативно и по делу.

Ответ поддержки Fornex.com

Все проблемы связанные с переездом решены, осталось внести правки в несколько статей связанные с отказом от использования плагина по красивому выводу изображения (типа как на tut.by, onliner.by).

Итог проделанной работы

Стал вопрос — как оценить итог установки WordPress с нуля на новом хостинге. Оптимальным способом является мониторинг нагрузки на сайт, но как это сделать? Решение оказалось простым — CPanel — Метрики — Использование CPU и одновременных соединений.

В этой метрике хорошо заметно когда выделенные для сайта ресурсы достигают своих лимитов. Каждый день блог достигал лимитов по нескольким выделенным для него ресурсам.

Hoster.by. Нагрузка на сайт

Hoster.by. Нагрузка на сайт в период с 12.06.17 по 19.06.17

С вечера 18.06.17 блог расположен на новом хостинге. Метрика от Fornex.com в период с 21.06.17 по 28.06.17 выглядит следующим образом.

Fornex.com. Нагрузка на сайт

Fornex.com. Нагрузка на сайт в период с 21.06.17 по 28.06.17

Красота! Чистый переезд WordPress на хостинг Fornex.com считаю удачно завершенным. По итогу скажу, что переезд — это трудозатратно. С радостью поручил бы ответственному исполнителю, но где такого найти? Где человек который не просто, что-то сделает но и объяснит, что он для тебя сделал. Опыт работы подсказывает, что для того, чтобы задача была выполнена она должна быть максимально точно описана, но для того, чтобы это сделать нужно самому со всем разобраться. Но тогда уже проще решить свою задачу самому.

В итоге теперь плачу за хостинг 2,28$ вместо 9,6$. Количество ограничений стремится к нулю, посещаемость осталась без изменений. Если понадобится больше ресурсов, то обходится они мне будут в 5,71$, т.е. дешевле.

Тариф VH-SSD-2 VH-SSD-10 VH-SSD-20 VH-SSD-100
Место 1000 МБ 4000 МБ 10 000 МБ 30 000 МБ
Сайты 2 10 20 100
Количество БД 2 10 20 100
Ядра CPU 1 2 4 8
Цена 1,14$ 2,28$ 5,71$ 11,42$
Обсуждение: 8 комментариев
  1. Виталик:

    Поздравляю, Денис, с переездом! Ты проделал непростую работу. Теперь ждем новых частых материалов!

    Ответить
    1. Денис Маркевич:

      Спасибо Виталик за поддержку. Начну со статьи каждую неделю.

      Ответить
  2. Озеров Евгений:

    Поздравляю Денис!
    Тоже хочется навести порядок в своем блоге, дизайн уже поднадоел, но у меня посещаемость маленькая и проблем вроде пока не наблюдал. Жаль не получилось встретится на прошлой неделе, но думаю ещё встретимся. Как ещё себя мотивировать каждую неделю писать новую статью пока не знаю ))

    Ответить
    1. Денис Маркевич:

      Свои проблемы на сайте совершенно случайно заметил. Теперь знаю как мониторить нагрузку. По встрече — теперь знаю, что такое московские пробки. В тот день заселились поздно. Встретимся в другой раз.

      Ответить
  3. Владимир:

    Молодец , рад за тебя . Ждем новых статей .

    Ответить
    1. Денис Маркевич:

      Спасибо.

      Ответить
  4. Марат:

    Денис, поздравляю с переездом! Тоже иногда подумываю о переезде. Присматриваюсь к fastvps.ru

    Ответить
    1. Денис Маркевич:

      Спасибо. Выбирая посмотрел где хостится Letyshops, посмотрел цены, сравнил. Перешел. Теперь наведя порядок, в случае необходимости быстро могу переехать к другому хостеру воспользовавшись услугой по переносу сайта. Здесь не пользовался ей, т.к. как хотел навести порядок.

      Ответить

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

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

© 2017 Денис Маркевич · Копирование материалов сайта без разрешения запрещено
Дизайн и поддержка: GoodwinPress.ru