WordPress, хостинг, лучший хостинг в Украине, HostPro

Переносимо сайт на 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.
  • Якщо ви бачите білий екран (також званий “білим екраном смерті”), перевірте правильність копіювання файлів тем і активуйте правильну тему.

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