Переносим сайт на WordPress при помощи бесплатного плагина WP Migrate DB

Миграция сайта между серверами или доменами довольно часто необходима в процессе разработки. Множество установленных плагинов и большое число различных реализаций WordPress усложняют процесс. Для упрощения этого процесса, существуют плагины которые могут выполнить эту работу за вас, такие как WP Migrate DB.

В этой статье мы рассмотрим все необходимые шаги для копирования или переноса WordPress сайта с одного сервера на другой с помощью бесплатного и чрезвычайно надежного плагина WP Migrate DB от Delicious Brains.

Наша цель — рассказать вам о существующих решениях и провести через нюансы миграции сайтов на WordPress. При выборе правильного модуля миграции следует учитывать много факторов. Независимо от того, решите ли вы использовать WP Migrate DB или другие инструменты, понимание, как работают подобные плагины, значительно упростит ваш выбор.

Что из себя представляет миграция WordPress?

WordPress — это система управления контентом. По сути, весь контент и настройки сайта находятся в базе данных WordPress. База данных управляет всеми темами, плагинами и мультимедийными объектами. Перенести файлы вашего сайта из одного места в другое относительно просто, однако, это не относится к базе данных. URL-адреса в базе данных связаны со структурой каталогов на сервере. Таким образом, при миграции требуется замена всех записей в базе данных на те, которые связаны с целевым сервером и его файловой структурой.

Ядро WordPress и многие плагины используют сериализованные массивы, объекты и JSON-кодирование данных для хранения информации в БД. Сериализация данных используется широко, поскольку она помогает сократить записи в базе данных, что приводит к меньшему количеству запросов в базу и повышению производительности.

Однако такой ход влияет на мобильность WordPress, так как нельзя просто заменить URL-адреса в сериализованных данных. Информация должна быть десериализована, заменена и сериализована снова. С вложенными сериализованными данными этот процесс становится еще более сложным. В этом случае плагин WP Migrate DB и ему подобные занимается обработкой информации самостоятельно, облегчая жизнь разработчика.

Четыре сценария миграции

Миграция WordPress может проходить по одному из следующих сценариев:

  1. С одного хостинга на другой (оба сайта рабочие).
  2. С хостинга на локальный тестовый сервер (на вашем ПК).
  3. Между двумя локальными серверами.
  4. С локального тестового сервера (на вашем ПК) на хостинг.

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

Подготовка к миграции

Минимальные права доступа, которые потребуется для переноса сайта на WordPress с помощью плагина WP Migrate DB:

В исходной копии WordPress:

  • Доступ к админ-панели WordPress;
  • Доступ к темам, плагинам и медиа-файлам в каталоге wp-content по FTP или через диспетчер файлов панели управления вашего хостинга, например cPanel, Plesk и т. д.

В целевой копии WordPress:

  • Доступ к целевому серверу по FTP и в панель управления хостинга для установки WordPress и копирования необходимых файлов;
  • Доступ к phpMyAdmin или инструменту управления базами данных, которые доступны для вашего сервера хостинга.

Настройка миграции

Если сайт, который нужно мигрировать, имеет большое количество пользовательских настроек, таких, как модифицированная тема, много плагинов и виджетов, настроенных под данный конкретный сайт, то возникнет проблема неудобства настройки всего заново после миграции. В случае использования плагина WP Migrate DB максимум, что нужно будет сделать — это изменить настройки подключения базы данных в wp-config.php на новом сервере и отредактировать правила в .htaccess.

Два важных момента, которые нужно учесть перед миграцией

Перед началом процесса миграции есть пара ключевых моментов о которых нужно помнить: каталог установки WordPress и префикс таблиц базы данных.

Каталог установки WordPress

Вам нужно знать, куда установлен WordPress на исходном сервере — в корневом каталоге сайта (по умолчанию) или в подкаталоге. Это имеет решающее значение, поскольку на целевом сервере каталог WordPress необходимо настроить аналогичным образом. Если на исходном сервере WordPress установлен в подкаталоге, то на целевом WordPress также должен быть установлен в подкаталоге.

Кроме того, имя подкаталога WordPress должно совпадать на обоих серверах. Например, если вы используете каталог sandbox для установки WordPress, обе установки WordPress должны использовать одно и то же имя каталога, то есть sandbox.

В нашем случае WordPress установлен в корневую директорию сайта на хостинге, то есть в public_html

Префикс таблиц

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

Чтобы найти префикс таблицы, используемый вашим исходным WordPress, просмотрите значение константы $table_prefix в файле wp-config.php.

В нашей установке исходный WordPress использует префикс таблицы по умолчанию wp_

И последнее, но не менее важное замечание — убедитесь, что вы создали резервную копию сайта.

Шаг 1. Настройка WordPress на целевом сервере

После того, как были выполнены все подготовительные действия, первое, что вам нужно сделать, это установить WordPress на целевой сервер. В нашем примере мы установили WordPress с помощью утилиты Softaculous, которая доступна в cPanel хостингового сервера.

Мы будем выполнять миграцию для получения тестовой копии сайта на поддомене dev.testhostpro.com.ua. В процессе установки изменяем поле каталога, в который будет установлен WordPress на пустое (в нашем примере WordPress установлен в корневую папку сайта) и префикс таблиц на стандартный.

Другие параметры WordPress, такие как имя сайта, описание, пользователи и т. д., не будут иметь значения в данный момент, поскольку они будут перезаписаны из исходного WordPress на более позднем этапе миграции. Пользователь админ-панели, созданный во время процесса установки, необходим только для возможности входа в настройки плагина WP Migrate DB.

Примечание. Если вы выполняете установку WordPress вручную через FTP,  можете установить префикс таблицы с помощью файла в wp-config.php или в течении стандартного процесса установки. Если запустить настройки по умолчанию, то установится префикс таблицы wp_

Шаг 2. Экспорт исходной базы данных с помощью WP Migrate DB

Для миграции базы данных необходимо, чтобы плагин WP Migrate DB был установлен и активирован как на исходном, так и на целевом сайте. Это связано с тем, что плагину должен быть известен путь к папке сайта и URL-адреса на новом сервере, чтобы правильно их заменить в исходной базе данных.

После этого перейдите в Инструменты → WP Migrate DB в обоих WordPress:

Затем вам необходимо сделать следующее.

На целевом WordPress:

Отметьте «Экспортировать файл» и скопируйте записи, которые вы увидите ниже в полях «Найти»

На исходном WordPress:

Вставьте скопированные записи в пустые поля «Заменить»

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

Далее нажимаем «Экспорт» и ждем завершения. В результате будет создана копия базы данных с измененными ссылками в виде архива и загружена на ваш компьютер.

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

Шаг 3. Копирование необходимых файлов

Следующий шаг — это копирование папок themes, plugins и uploads , расположенных в папке wp-content с исходного сервера на целевой с использованием FTP или другого удобного вам способа.

Убедитесь, что во время копирования не было ошибок. Передача данных между серверами может занять некоторое время, в зависимости от количества файлов. Создание zip-архива через cPanel, а затем миграция папок через FTP могут ускорить процесс.

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

Шаг 4. Импорт базы данных через phpMyAdmin

На следующем шаге требуется, чтобы вы импортировали дамп базы данных, сгенерированный на шаге 2, в базу данных WordPress на конечном сервере.

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

Убедитесь, что вы выбрали правильную базу данных WordPress. Это та же самая база данных, которая была создана при установке WordPress на шаге 1. В нашем случае имя базы данных, указанное для целевого WordPress, было wp35. Однако, большинство серверов также добавляют префикс из имени пользователя к этому имени, например, у нас hostpro_wp35.

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

Чтобы быть уверенными в выборе базы, рекомендуем следующий чеклист:

  • проверьте имя базы данных в файле wp-config.php на целевом сервере, оно будет включать полное имя, включая какой-либо префикс;
  • убедитесь, что префикс таблиц базы данных в phpMyAdmin совпадает с указанным в wp-config.php;
  • проверьте поля ‘siteurl’ и ‘home’ в таблице someprefixwp_options — в них должно быть указано имя целевого домена;

Теперь, когда вы уверенны, что выбрали правильную базу, можно импортировать в нее созданный ранее дамп в формате sql.zip

Когда процесс импорта завершится, целевой WordPress будет иметь все настройки, контент, пользователей и т. д. из исходного WordPress. Таким образом, миграция будет завершена.

Завершающие шаги

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

Единственное, что можем посоветовать после миграции, это пересохранить постоянные ссылки. То есть перейдите в Настройки → Постоянные ссылки и просто нажмите «Сохранить изменения»

Последнее, но не менее важное — убедитесь, что после миграции все страницы, виджеты, формы связи работают корректно и нет «битых» ссылок.

Устранение неполадок

Существует много причин, которые могут привести к сбою миграции. Вот несколько решений, которые помогут вам устранить эти редкие случаи:

  • Если вы получаете ошибку при импорте базы данных на целевой сервер, попробуйте на шаге 2 создать дамп без опции «Сжать файл с помощью gzip»
  • Если вы не можете попасть в админ-панель сайта после миграции, попробуйте добавить такие строки в ваш файл wp-config.php:
define( 'WP_SITEURL', 'http://example.com/subdir_if_any' );
define( 'WP_HOME', 'http://example.com/subdir_if_any' );

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

  • Отсутствующие медиафайлы будут указывать на ошибки во время процесса копирования папки uploads на шаге 3.
  • Если вы видите белый экран (также называемый «белым экраном смерти»), проверьте правильность копирования файлов тем и активируйте правильную тему.

Если в процессе миграции сайта у вас возникнут вопросы или будет нужна наша помощь, смело обращайтесь, мы с радостью поможем!