Як перенести субіт із розробленого мультисайта на виробничий мультисайт


12

Я шукаю найкращий і найбезпечніший спосіб розробити локально кількість підземних приміщень за допомогою багатосайтових сайтів і перемістити їх у виробниче середовище, коли вони будуть готові.

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

Я шукав рішення, але все, що я знайшов, - це переміщення одного веб-сайту на багатомісний сайт або навпаки, ніякого "переміщення субсідату з багатомісного на багатомісний".

Я хотів би зберегти все: налаштування, віджети тощо.


1
Я думаю, що комерційний плагін BackupBuddy здатний це зробити, але мені було б цікаво побачити більш загальні відповіді на це.
Рарст

Через серіалізовані рядки в базі даних зробити це не так просто. Я ще не бачив плагін для чистої міграції, але це абсолютно щось, що потрібно зробити. Єдине, що стосується переміщення "більшості" частин одного блогу в інший, - це через механізм експорту / імпорту XML, але після цього вам доведеться виправити багато шляхів.
2ndkauboy

1
Найкращий варіант, який у вас є, - це зробити з прямим запитом sql. Я робив це вже не один раз, і він працює чудово, якщо ви будете досить обережні.
krembo99

@ krembo99, не могли б ви пояснити трохи більше свою техніку?
молоком

@Rarst, що стосується BackupBuddy, це пов'язано з їхніми поширеними питаннями: "Ні. Підтримка BackupBuddy Multisite експериментальна. Вона не рекомендується для виробничих сайтів і офіційно не підтримується."
молоком

Відповіді:


4

Це може бути дещо виснажливим, але, сподіваємось, це допомагає. Чим менше, що змінюється від одного середовища до іншого, тим менш болісним буде цей процес. Зокрема, якщо домен, ідентифікатор сайту, шляхи до файлів залишаться однаковими, тим менш болісним буде цей процес.

Ця публікація передбачає деякі знання управління базами даних. Це не повний крок за кроком, тому що ви повинні шукати на форумах і, можливо, створити нитку, характерну для того, який би крок у вас виникли, наприклад, якщо вам потрібна допомога з експортом таблиці бази даних.

Найголовніше, що потрібно зробити - це зробити резервну копію всієї бази даних та файлів як для локального сайту розробників, так і для нового місця розташування, якщо щось піде не так. Чекайте, що щось піде не так. Будьте приємно здивовані, якщо цього немає.

Переміщення файлів тем має бути досить простим. Завантажте свої теми тем у каталог wp-content / themes і активуйте його як завжди. Я припускаю, що це спільна тема, до якої мають доступ всі блоги.

Завантажте плагінні файли до wp-content / плагінів у новому місці. Ще не активуйте їх.

Зауважте, що будь-який вміст, ексклюзивний для блогу, який ви переносите, буде розміщений у каталозі, який виглядає як wp-content/blogs.dir/2/files2 - ідентифікатор сайту. Якщо можливо зберегти цей ідентифікатор сайту в новому місці, він повинен допомогти мінімізувати конфлікти в базі даних після переходу на нове місце. В іншому випадку вам доведеться оновити свою базу даних, щоб відобразити новий шлях.

Вам потрібно буде експортувати багатомісні таблиці, пов’язані з блогом, який ви намагаєтеся перенести, та імпортувати їх на нове місце. Вам доведеться редагувати таблиці, в яких зберігаються дані, пов’язані з блогом, який ви переносите. Переконайтесь, що префікс цих таблиць однаковий у новому місці.

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

Див. Огляд таблиці багатосайтових сайтів

Для переміщення налаштувань WordPress та плагінів для блогу, який потрібно перенести , вам потрібно буде деактивувати всі плагіни локально, а потім експортувати спеціальні таблиці вашого сайту (посилання на кодекс), включаючи ті, що стосуються ваших плагінів. Імпортуйте ці таблиці в нову базу даних про місцезнаходження.

Переконайтеся, що нове місце використовує той самий префікс бази даних, що і таблиці, які ви імпортуєте. Префікс міститиме ідентифікатор сайту для вашого блогу та матиме щось подібне wp_2_options, wp_2_posts, wp_2_postmeta.
Див. Дослідження мультисайту WordPress від Лізи Сабін-Вілсон

Я припускаю, що ви знаєте, як імпортувати / експортувати через phpmyAdmin або за допомогою команди mysqldump у своєму терміналі. Це трохи виходить за рамки цієї публікації, але ось приклад експорту, який повинен допомогти.

Звідки ви mysqldump конкретні таблиці (и)? (Синтаксис відредагований трохи, щоб бути більш зрозумілим.):

Якщо ви скидаєте таблиці t1, t2 і t3 з бази даних з назвою mydb

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Перш ніж активувати плагіни на новому сайті, перейдіть до налаштувань постійної посилання в адміністративному режимі та збережіть параметри для оновлення файлів бази даних до нової URL-адреси сайту. Активуйте свої плагіни та побачте, чи є проблеми.

Одне з проблем, з яким ви можете зіткнутися, - це серіалізація даних у ваших таблицях.

"[...] Посилання на старі доменні імена або місцеположення залишатимуться в базі даних, і це може спричинити проблеми із посиланнями або відображенням теми.

Якщо ви здійснюєте пошук і заміну у всій базі даних, щоб змінити URL-адреси, ви можете викликати проблеми з серіалізацією даних через те, що деякі теми та віджети зберігають значення із довжиною вашої URL-адреси. " Коли ваше доменне ім’я чи URL-адреси Зміна

Майте на увазі, що серіалізація даних може спричинити конфлікт у таблицях баз даних, що стосуються також ваших плагінів. Замість того, щоб здійснювати пошук вручну та замінювати URL-адресу, що зберігається в базі даних, використовуйте пошук у базі даних та замініть сценарій, рекомендований у попередньому посиланні кодексу. Якщо в базі даних є лише декілька випадків серіалізації, ви можете просто відредагувати їх вручну за допомогою phpMyAdmin або будь-якого вашого переваги щодо керування вашою базою даних.

Ще одна проблема, з якою ви можете зіткнутися, полягає в тому, що будь-які неправильні шляхи до файлів, що зберігаються в таблицях бази даних, потрібно буде оновити, щоб відобразити нове місцеположення. Це може стосуватися медіа-каталогів або каталогів, які використовуються плагінами, залежно від того, як плагін був розроблений. Знову ж таки, ви хочете використовувати скрипт пошуку та заміни, щоб переконатися у відсутності конфліктів серіалізації під час оновлення шляхів до файлів. Крім того, ви можете пройти свої таблиці та оновити їх вручну.


Спасибі! Тому, здається, немає ніякої фактичної користі від роботи таким чином: це сумка боляче. Краще було б розробити локальний єдиний сайт та мігрувати в багатомісне середовище?
молоком

Ви можете зіткнутися з багатьма тими ж проблемами, але для цього потрібно буде менше таблиць, які потрібно перенести. Тільки для того, щоб дати вам ідею, ось гідний посібник для цього під назвою " Перемістити існуючий блог" у WordPress Multi-Site . Я залишу це для вас, щоб визначити, який більш ефективний для вас як розробника.
ійрін

0

Не могли б ви використовувати вбудовані функції експорту та імпорту WordPress? Тоді справа лише в тому, щоб перемістити тему з однієї установки на іншу через FTP. Це проходить досить швидко, і ви можете перемістити сайт між установками менш ніж за 5 хвилин.

Ви можете синхронізувати облікові дані користувачів, використовуючи чудовий плагін під назвою Syncronization User .

Я не використовував це, але ManageWP має зручний інструмент розгортання та клонування, щоб перейти з існуючого сайту на новий ... це варто переглянути.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.