Jak przeprowadzić migrację podstrony z wielu witryn deweloperskich do wielu witryn produkcyjnych


12

Szukam najlepszego i najbezpieczniejszego sposobu lokalnego opracowania wielu podstron za pomocą wielu witryn i przeniesienia ich do środowiska produkcyjnego, gdy będą gotowe.

Przeprowadziłem już migrację pełnej instalacji wielostanowiskowej z pierwszą podstroną, która jest już dostępna. Wolałbym rozwijać inne witryny na serwerze lokalnym, więc zostawiam serwer produkcyjny w spokoju, ale oczywiście nie mogę ponownie przeprowadzić pełnej migracji.

Szukałem rozwiązania, ale wszystko, co znalazłem, dotyczy przeniesienia jednej witryny do wielu witryn lub odwrotnie, nie ma „przenoszenia podstrony z wielu witryn na wiele witryn”.

Chciałbym zachować wszystko: ustawienia, widżety i tak dalej.


1
Myślę, że komercyjna wtyczka BackupBuddy jest w stanie to zrobić, ale chciałbym zobaczyć bardziej ogólne odpowiedzi na to pytanie.
Rarst

Ze względu na serializowane ciągi w bazie danych nie jest to takie łatwe. Do tej pory nie widziałem wtyczki do czystej migracji, ale to absolutnie coś, co należy zrobić. Jedyne, co było związane z przenoszeniem „większości” części jednego bloga do drugiego, to mechanizm eksportu / importu XML, ale nadal musisz naprawić wiele ścieżek później.
2ndkauboy

1
Najlepszą opcją jest zrobienie tego za pomocą bezpośredniego zapytania SQL. Zrobiłem to więcej niż jeden raz i działa dobrze, jeśli jesteś wystarczająco ostrożny.
krembo99

@ krembo99, czy mógłbyś wyjaśnić nieco więcej swoją technikę?
molokom

@Rarst, jeśli chodzi o BackupBuddy, pochodzi z ich FAQ: „Nie. Obsługa BackupBuddy Multisite jest eksperymentalna. Nie jest zalecana dla witryn produkcyjnych i nie jest oficjalnie obsługiwana”.
molokom

Odpowiedzi:


4

Może to być nieco nudne, ale mam nadzieję, że to pomaga. Im mniej zmienia się z jednego środowiska do drugiego, tym mniej bolesny będzie ten proces. W szczególności, jeśli domena, identyfikator witryny i ścieżki plików pozostaną takie same, proces ten będzie mniej bolesny.

Ten post zakłada pewną wiedzę na temat zarządzania bazą danych. Nie jest to kompletny krok po kroku, ponieważ powinieneś przeszukiwać fora i być może utworzyć wątek specyficzny dla dowolnego kroku, z którym masz problemy, np. Jeśli potrzebujesz pomocy przy eksportowaniu tabeli bazy danych.

Najważniejszą rzeczą do zrobienia jest wykonanie kopii zapasowej całej bazy danych i plików zarówno dla lokalnej witryny deweloperskiej, jak i nowej lokalizacji na wypadek, gdyby coś poszło nie tak. Spodziewaj się, że coś pójdzie nie tak. Bądź mile zaskoczony, jeśli tak nie jest.

Przenoszenie plików motywu powinno być dość proste. Prześlij pliki motywów do katalogu wp-content / themes i aktywuj jak zwykle. Zakładam, że jest to wspólny motyw, do którego mają dostęp wszystkie blogi.

Prześlij pliki wtyczek do wp-content / plugins w nowej lokalizacji. Nie aktywuj ich jeszcze.

Pamiętaj, że wszelkie treści wyłącznie dla migrowanego bloga będą znajdować się w katalogu, który wygląda jak wp-content/blogs.dir/2/filesgdzie 2 to identyfikator witryny. Jeśli możliwe jest utrzymanie tego identyfikatora witryny w nowej lokalizacji, powinno to pomóc zminimalizować konflikty w bazie danych po migracji do nowej lokalizacji. W przeciwnym razie będziesz musiał zaktualizować bazę danych, aby odzwierciedlała nową ścieżkę.

Konieczne będzie wyeksportowanie tabel wielu witryn związanych z blogiem, który próbujesz migrować, i zaimportowanie ich do nowej lokalizacji. Będziesz musiał edytować tabele, które przechowują dane związane z migrowanym blogiem. Upewnij się, że prefiks tych tabel jest taki sam w nowej lokalizacji.

Na przykład tabela wp_blogs dla Twojego bloga zawiera identyfikator bloga, identyfikator witryny, domenę i ścieżkę, które umożliwiają wielostronnemu WordPressowi rozpoznawanie i pracę z Twoim blogiem. Edytuj te, które nie są już poprawne, aby odzwierciedlić nową lokalizację, ale przeczytaj resztę tego postu, zanim spróbujesz to zrobić.

Zobacz Omówienie tabeli wielu witryn

Aby przeprowadzić migrację ustawień WordPress i wtyczek dla bloga, który ma zostać przeniesiony , musisz dezaktywować wszystkie wtyczki lokalnie, a następnie wyeksportować tabele specyficzne dla witryny (odniesienie do kodeksu), w tym tabele dla wtyczek. Zaimportuj te tabele do bazy danych nowej lokalizacji.

Upewnij się, że nowa lokalizacja używa tego samego prefiksu bazy danych, co importowane tabele. Prefiks będzie zawierał identyfikator witryny dla Twojego bloga i będzie wyglądał podobnie wp_2_options, wp_2_posts, wp_2_postmeta.
Zobacz Odkrywanie WordPress Multisite przez Lisę Sabin-Wilson

Zakładam, że wiesz, jak importować / eksportować za pomocą phpmyAdmin lub za pomocą komendy mysqldump w swoim terminalu. Jest to nieco poza zakresem tego postu, ale oto przykład eksportu, który powinien pomóc.

Od W jaki sposób mysqldump określonych tabel (y)? (Składnia została nieco zmodyfikowana, aby była bardziej przejrzysta.):

Jeśli wysyłasz tabele t1, t2 i t3 z bazy danych o nazwie mydb

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

Przed aktywacją wtyczek w nowej witrynie przejdź do ustawień permalink w admin cp i zapisz ustawienia, aby zaktualizować pliki bazy danych do nowego adresu URL witryny. Aktywuj wtyczki i sprawdź, czy są jakieś problemy.

Jednym z problemów, które możesz napotkać, jest serializacja danych w swoich tabelach.

„[...] Odniesienia do starej nazwy domeny lub lokalizacji pozostaną w bazie danych, co może powodować problemy z łączami lub wyświetlaniem motywu.

Jeśli do wyszukiwania i zamiany na całej bazy danych, aby zmienić adres URL, może być przyczyną problemów z serializacji danych, ze względu na fakt, że niektóre motywy i wzory przechowywać wartości z długością URL oznaczonego „. Kiedy Twoja nazwa domeny lub adres URL Zmiana

Należy pamiętać, że serializacja danych może powodować konflikt w tabelach bazy danych również w odniesieniu do wtyczek. Zamiast ręcznego wyszukiwania i zamiany adresu URL zapisanego w bazie danych, użyj wyszukiwania bazy danych i zastąp skrypt zalecany w poprzednim łączu kodeksu. Jeśli w bazie danych jest tylko kilka przypadków serializacji, możesz po prostu edytować je ręcznie za pomocą phpMyAdmin lub cokolwiek preferujesz w zarządzaniu bazą danych.

Kolejnym problemem, który możesz napotkać, jest to, że wszelkie niepoprawne ścieżki plików przechowywane w tabelach bazy danych będą musiały zostać zaktualizowane, aby odzwierciedlić nową lokalizację. Może tak być w przypadku katalogów multimediów lub katalogów używanych przez wtyczki w zależności od sposobu zaprojektowania wtyczki. Znowu będziesz chciał użyć skryptu wyszukiwania i zamień, aby upewnić się, że nie występują konflikty serializacji podczas aktualizowania ścieżek plików. Alternatywnie możesz przeglądać tabele i aktualizować je ręcznie.


Dzięki! Wygląda więc na to, że praca w ten sposób nie przynosi żadnych korzyści: to worek bólu. Czy lepiej byłoby rozwinąć lokalną pojedynczą witrynę i przeprowadzić migrację do środowiska wielu witryn?
molokom

Możesz napotkać wiele takich samych problemów, ale wymaga to mniejszej liczby tabel do migracji. Aby dać ci pomysł, oto przyzwoity przewodnik, który nazywa się Przenieś istniejącego bloga na WordPress Multi-Site . Zostawię to tobie, aby ustalić, który program jest dla Ciebie bardziej wydajny.
iyrin

0

Nie możesz użyć wbudowanych funkcji eksportu i importu WordPress? Następnie wystarczy przenieść motyw z jednej instalacji do drugiej za pośrednictwem FTP. Idzie dość szybko i można migrować witrynę między instalacjami w mniej niż 5 minut.

Możesz zsynchronizować poświadczenia użytkownika za pomocą fajnej wtyczki o nazwie User Syncronization .

Nie korzystałem z niego, ale ManageWP ma przyjazne dla użytkownika narzędzie do wdrażania i klonowania, umożliwiające przejście z istniejącej witryny do nowej ... warto ją sprawdzić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.