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

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

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

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

Рассмотрим сложную ситуацию, когда сайт на Вордпресс нужно перенести на другой домен в рамках того же хостинга или другого.

Делаем бекап всего

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

Сначала деактивируем плагины кэширования, если они есть, и удаляем кэш

Скачиваем бекап к себе на локальную машину или в облако. Можно сразу из бекапа достать содержимое нашего сайта и сохранить в отдельную папку. Папка с директорией сайта обычно называется public_html, docs, web или аналогично, в зависимости от того, насколько богата фантазия вашего хостера.

Деактивируем плагины кэширования, если они есть, и удаляем кэш

Скачиваем дамп базы данных Вордпресс

Заходим в панель управления базами данных PhpMyAdmin. Обычно в панели управления хостингом есть ссылка на PhpMyAdmin. Может называться “Управление базами данных” или “Базы данных”. Например на моем сервере сначала нужно зайти в “Управление базами данных”, а оттуда будет ссылка на PhpMyAdmin.

В PhpMyAdmin находим раздел “Экспорт” и экспортируем дамп базы к себе на локальную машину.

Экспорт из базы данных

Открываем на просмотр наш файл конфигурации Вордпресс wp-config.php и извлекаем оттуда имя пользователя БД и пароль. Записываем их, они понадобятся еще, и с этими данными заходим в PhpMyAdmin.

Отлично! У нас есть все для начала переноса.

На новом сервере создаем новую пустую базу данных MySQL в кодировке UTF8

Точно так же как и на старом сервере создаем новую базу из панели управления хостинга или через PhpMyAdmin. Базу называем любым именем, но если удастся назвать новую базу тем же именем, что и на старом сервере (врядли), то следующий этап можно пропустить. Если у нас другое название БД делаем следующее:

Открываем файл дампа с расширением .sql программой Notepad++ или другим продвинутым текстовым редактором.

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

В самом начале файла вы увидите такие строки:

CREATE DATABASE IF NOT EXISTS `_старое_имя_базы_` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Меняем значения и вместо старого имени подставляем новое, которое мы создали на новом сервере, куда переносим сайт. Строки должны выглядеть так:

CREATE DATABASE IF NOT EXISTS `_новое_имя_базы_` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE `_новое_имя_базы_`;
USE `_старое_имя_базы_`;

И сохраняем файл дампа в кодировке UTF8 без BOM. Это важно, чтобы не испортить базу.

дамп базы
Исправляем дамп базы в Notepad++

Импортируем дамп в новую базу

Заходим в PhpMyAdmin на новом сервере в раздел “Импорт” и импортируем наш отредактированный дамп. Импорт должен пройти без ошибок.

импорт дампа
Импорт дампа базы данных

Чаще всего проблемы на этом этапе возникают из-за несоответствия названий БД или неверной кодировки.

Меняем название сайта в полях site_url и home_url

В панели PhpMyAdmin заходим в раздел “SQL” и вставляем туда следующую строку:

UPDATE wp_options SET option_value = REPLACE(option_value,'https://oldsite.com', 'https://newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Где newsite.com – новое имя сайта, а oldsite.com старое имя.

Выполняем запрос SQL
Выполняем запрос SQL

Жмем “Вперед”. Перезапись выполнена!

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

Заливаем статические файлы через фтп из директории public_html нашего бекапа из п.1.

Открываем наш файл конфигурации Вордпресс wp-config.php и пишем там новые данные в секциях

/** Имя базы данных для WordPress */
/** Имя пользователя MySQL */
/** Пароль к базе данных MySQL */

Если вы устанавливали Ворпресс, знаете как это сделать.

Заходим в админку Вордпресс newsite.com/wp-login.php

Если мы все сделали правильно, админка откроется по новому адресу. Если нет, операцию нужно повторить с п.2 и понять на каком этапе возникает ошибка.

В админке Вордпресс заходим в раздел “Плагины” -> “Добавить новый” и устанавливаем плагин Better Search Replace

Активируем его и переходим в раздел “Инструменты” -> Better Search Replace.

В поля для замены вводим oldsite.com и newsite.com, выделяем все таблицы и жмем “Запустить поиск и замену”.

Перезапись плагином Better Search Replace
Перезапись плагином Better Search Replace

Этим действием мы перезаписываем все URL со старого имени сайта на новый.

Все! И не так страшно, как казалось.

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

А если что-то пошло не так?
Тогда надо повторить все манипуляции, начиная с п.2.

Какие еще могут быть засады и подводные камни?

  1. Ошибки имен, синтаксиса, кодировок.
  2. Ошибки при копировании файлов, переданных по FTP в неверном формате.
  3. Иногда мешают куки и кэш. Перед бекапированием кэш следует удалить, а плагины, отвечающие за кэширование отключить.
  4. Слишком короткий таймаут работы PHP, когда прерывается выполнение скриптов.

Какие еще есть способы переноса сайта на Вордпресс на другой хостинг или домен?

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

Способ переноса сайта на Вордпресс с помощью встроенных инструментов.

  1. Заходим в раздел “Настройки” — > Экспорт и экспортируем xml файл.
  2. Устанавливаем новый экземпляр Вордпресс на новом сайте
  3. Заливаем папку /wp-content/uploads/ по адресу нового сайта
  4. На новом сайте заходим в “Настройки” — > Импорт и импортируем файл xml.
  5. Долго и мучительно производим все настройки, включая установку виджетов и плагинов, редакций темы, css и прочих «приятных» штук.
Перенос сайта с помощью экспорта xml
Перенос сайта с помощью экспорта xml

Минусы такого способа переноса Вордпресс, надеюсь, понятны. К этому добавляется возможность вообще не выполнить операции экспорта-импорта если сайт большой. Таймауты выполнения скриптов PHP не позволят этого сделать.

Перенос сайта на Вордпресс на другой хостинг или домен с помощью плагина.

Плагинов для переноса сайта на Вордпресс довольно много. Самый известный и удобный это Duplicator.

Теоретически создан для переноса сайтов на Вордпресс в одно движение. Практически имеет недостатки, хотя и неплох для переноса.

  1. Устанавливаем плагин Duplicator, активируем его.
  2. Переходим в раздел Duplicator на главной панели.
  3. Создаем новый пакет с базой данных и содержимым сайта.
  4. Скачиваем архив и файл installer.php
  5. Создаем новую базу данных и пользователя на новом сайте.
  6. Заливаем по FTP архив, созданный Дупликатором и файл installer.php
  7. Запускаем файл newsite.com/installer.php и следуем инструкциям мастера настроек.
Перенос сайта на Вордпресс с помощью Duplicator
Перенос сайта на Вордпресс с помощью Duplicator

Недостатки такого способа переноса:
1. Таймаут на выполнение скриптом архивации. В этом случае Duplicator предложит создать архив базы данных, а статическое содержимое перенести вручную.

2. Отсутствие функции перезаписи в момент установки. Бесплатная версия Дупликатора не умеет вносить изменения “на лету”, тем самым сводя на нет всю его работу, опция перезаписи доступна только в платной версии. Статические файлы и дамп базы можно перенести вручную, точно так же как и с помощью Дупликатора.

3. Критическая уязвимость сайта в момент переноса. Дупликатор создает архивы и файлы в папке wp-snapshots. В некоторых случаях, в зависимости от настроек сервера, эта папка может быть доступна для просмотра, а в архивах лежит ничем не защищенный файл конфигурации с логином и паролем к базе данных.

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

Перенос стайта на Вордпресс с помощью педальной тяги и Notepad++

  1. Скачиваем статические файлы по FTP
  2. Скачиваем дамп базы как это описано в п.2
  3. Открываем в текстовом редакторе Notepad++ файл дампа БД и производим перезапись: все старые имена сайта меняем на новые.
  4. Импортируем файл дампа базы как указано в п.5
  5. Заходим в админку Вордпресс и редактируем тонкие настройки, виджеты и меню.
Перезапись дампа бд с помощью Notepad++
Перезапись дампа бд с помощью Notepad++

Минусы такого способа:
1. Не сохраняются тонкие настройки виджетов и меню, их придется настраивать заново.

2. Можно испортить файл базы, некоторые плагины хранят данные в сериализованном виде, например Envira Gallery, и такие плагины будут работать некорректно при переносе.

Способ неплох для небольших сайтов без большого количества продвинутых плагинов.

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

  1. Скачать статические файлы в архиве через вебпанель или по FTP
  2. Скачать дамп базы
  3. Загрузить файлы по FTP в автоматическом режиме любым файловым менеджером.
  4. Импортировать дамп в новую базу и не забыть отредактировать wp-config.php

Инструментарий:
FTP клиенты Total Commander, да, не смейтесь, мне хватает Тотал Командера, в редком случае использую WinCP
Текстовый редактор Notepad++

Неплохой мануал по запросам к БД при переносе сайта на Вордпресс на другой хостинг или домен.

Удачи!

Comments on Как перенести сайт на Вордпресс на другой домен или хостинг