Migracje WordPress
Migracja dowolnej aplikacji z jednego środowiska na inne zawsze stanowi pewien kłopot. Pojawiają się wątpliwości czy na nowym serwerze wszystko zadziała dokładnie tak jak działało na starym. Jeśli pisaliśmy daną aplikacje samodzielnie to zapewne wiemy co należy zmienić aby ją przenieść. Pozostają nam tylko kwestie związane z konfiguracją serwera, na którym ma zostać uruchomiona. Jeżeli jednak jej nie pisaliśmy to migracja może sprawić trudności nawet doświadczonemu programiście. W tym wpisie nie będę omawiał kłopotów na jakie możemy się natknąć przy migrowaniu autorskich aplikacji (bo jest ich zapewne tyle samo co autorów), jednak skupię się na jednym z najpopularniejszych systemów zarządzania treścią.
Poruszony zostanie temat migracji WordPressa, z którą to, wielu użytkowników ma niesamowite problemy. Problemy te pojawiają się głównie gdy ktoś próbuje przenieść WordPressa tak, aby działał pod inną domeną. Konfiguracje migracji są tutaj dowolne:
- localhost (strona lokalnie na komputerze) -> serwer
- serwer -> serwer (wraz ze zmianą domeny)
- zmiana domeny w obrębie jednego serwera
- zmiana sposobu linkowania do naszego bloga z serwisu (np. zamiast domen.pl/blog chcemy mieć blog.domena.pl)
Rady zamieszczone w tym wpisie powinny pomóc rozwiązać najczęściej spotykane problemy związane ze zmianą domeny w tym CMSie.
Geneza problemów ze zmianą domeny w WordPressie
Przyczynę problemów można określić dwoma słowami "ścieżki bezwzględne". Jest to największy problem dla niektórych nie do przeskoczenia. Duża liczba osób przekopiuje aplikacje samodzielnie, jednak nie działa ona poprawnie i w znakomitej większości przypadków problemem są właśnie ścieżki bezwzględne. Przy tworzeniu stron możemy korzystać z dwóch rodzajów linkowania - względnego i bezwzględnego. Linkowanie względne ma postać: "<"a href="test.php">KLIKNIJ" Przy takim sposobie linkowania przeglądarka "sama" tworzy adres, pod który zostaniemy przekierowani na podstawie tego, co obecnie mamy w pasku adresu i doklejonej do niego wartości atrybutu href. Przykładowo w pasku adresu mamy: http://domena.pl to po kliknięciu na link opisany w sposób względny, zostaniemy przekierowani pod adres http://domena.pl/test.php Zupełnie inaczej sprawa wygląda przy linkowaniu bezwzględnym, które ma następującą formę: "<"a href="http://domena2.pl/test.php">KLIKNIJ" W tej sytuacji bez względu na to jaki adres mamy w pasku adresu przeglądarki, zawsze zostaniemy po kliknięciu w taki link skierowani na adres: http://domena2.pl/test.php Rozumiesz już dlaczego jest problem z zmianą domeny, jeżeli aplikacja korzysta ze ścieżek bezwzględnych tak jak to robi WordPress? Uruchomienie aplikacji pod inną domena jest możliwie, jednak po kliknięciu w dowolny link na stronie zostaniemy skierowani na domenę, pod którą pierwotnie był zainstalowany WordPress. Jak wspomniałem wszystkie adresy w tej aplikacji zapisane są w sposób bezwzględny. Znajdują się one w bazie SQL, z której to korzysta nasz WordPress. Cała sztuczka sprowadza się do zmiany adresów w taki sposób aby odpowiadały naszej nowej domenie. Ale jak to zrobić ...
Migracja krok po kroku
Całą migrację zaprezentuje na przykładzie WordPressa zainstalowanego pod domeną domena.pl, która wskazuje na folder /public_html/domena.pl. Instalacja ta zostanie przeniesiona na zupełnie inny serwer. Instalacja zostanie umieszczona na nowym serwerze w folderze /public_html/domena2.pl, na który jak się już pewnie domyślasz wskazywać będzie domena2.pl
Krok pierwszy
Najpierw należy przygotować środowisko, na które zostanie zmigrowany WordPress. Musisz w tym celu podpiąć domenę pod nowy serwer, tak aby wskazywała na folder, w którym chcesz umieścić instalacje WordPressa. Trzeba również utworzyć nową bazę danych oraz użytkownika, który zostanie do tej bazy przypisany. Jeśli masz problem z tą częścią, skontaktuj się z administratorami swojego serwera. Z całą pewnością wyjaśnią Ci jak możesz wykonać te czynności. W przypadku kont hostingowych w Kylos czynności te zostały opisane na przykładzie cPanelu w naszej bazie wiedzy:
- Jak poprawnie oddelegować i podpiąć domenę ?
- Jak utworzyć nową bazę MySQL i dodać do niej użytkownika?
Krok drugi
Należy skopiować wszystkie pliki obecnej instalacji na nowy serwer. Najłatwiej będzie to zrobić przy pomocy klienta FTP. Połącz się ze swoim starym serwerem przy pomocy dowolnego klienta FTP, zaznacz wszystkie pliki WordPressa i skopiuj je do jakiegoś folderu na swoim dysku. Ja w tym celu wykorzystałem FileZille i skopiowałem pliki instalacji WordPressa do folderu /kopia na partycji D: mojego komputera. Pliki mojej instalacji znajdowały się bezpośrednio w folderze /public_html/domena.pl
Krok trzeci
Musimy teraz umożliwić naszemu migrowanemu WordPressowi komunikacje z bazą MySQL na nowym serwerze. Należy w tym celu zmodyfikować plik wp-config.php, znajdujący się w głównym folderu naszej instalacji. Przejdź więc do folderu na swoim komputerze, do którego skopiowałeś pliki WordPressa. W moim przypadku plik konfiguracyjny znajduje się pod ścieżką D:kopiawp-config.php Do zmiany tego pliku potrzebne nam będą informacje, które powinieneś mieć już przygotowane. Nazwa bazy, nazwa użytkownika, hasło użytkownika oraz adres serwera bazy danych (czesto jest to localhost, jednak nie zawsze tak być musi!). Otwórz ten plik dowolnym edytorem tekstowym. Możesz skorzystać z notatnika wbudowanego w system operacyjny lub z innego edytora, wybór należy do Ciebie. Ja otworzyłem ten plik zwykłym notatnikiem. W tym celu należy na plik kliknąć prawym przyciskiem myszy i wybrać opcje "Otwórz za pomocą", następnie z listy wybrać oprogramowanie, którym chcemy otworzyć plik np. Notatnik. Po otworzeniu pliku znajdź i zmień następujące linie, wpisując w odpowiednie miejsca dane potrzebne do połączenia z bazą MySQL: [php] // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'nazwa twojej nowej bazy'); /** MySQL database username */ define('DB_USER', 'nazwa użytkownika'); /** MySQL database password */ define('DB_PASSWORD', 'hasło użytkownika'); /** MySQL hostname */ define('DB_HOST', 'adres serwera bazy'); [/php]
Krok czwarty
Tak przygotowane pliki trzeba umieścić na nowym serwerze. Klientem FTP należy połączyć się z nowy serwerem, przejść do folderu, na który wskazuje nowa domena, zaznaczyć wszystkie pliki, które skopiowaliśmy na dysk i umieścić je bezpośrednio w tym folderze. W moim przypadku skopiuje pliki z dysku do folderu /public_html/domena2.pl
Krok piąty
Nasz WordPress co prawda połączy się z bazą na serwerze, jednak baza ta jest całkowicie pusta. Musimy więc przenieść bazę ze starego serwera. Jak wspomniałem na wstępie cała sztuczka migracji ze zmianą domeny rozbija się o zmodyfikowanie naszej bazy. W tym kroku właśnie to zrobimy.
Eskportowanie bazy
Zacznijmy od zalogowania do phpMyAdmin, przy pomocy którego wykonasz kopię swojej bazy. Dostęp do phpMyAdmin uzyskasz z poziomu cPanelu. Jeśli nie wiesz jak dostać się do phpMyAdmin na swoim serwerze, skontaktuj się z administratorami tego serwera. Po zalogowaniu wybieramy z rozwijanej listy po lewej stronie naszą obecną bazę i przechodzimy do zakładki "Eksportuj". Wszystkie opcje zostawiamy domyślne i klikamy "Wykonaj". Plik z rozszerzeniem *.sql powinien zostać pobrany na dysk.
Sposób pierwszy modyfikacji bazy
W sposobie tym wykonamy zmiany w naszej bazie jeszcze na naszym dysku. Jest to najszybsza i najbezpieczniejsza z naszego punktu widzenia metoda. Wystarczy jedynie otworzyć plik *.sql pobrany przy eksporcie bazy i korzystając z opcji zwanej "Znajdź i zmień" podmienić interesujące nas fragmenty w pliku bazy. Więc do dzieła... Otwórzmy plik z rozszerzeniem *.sql pobrany podczas eksportu naszej bazy. Otworzyć go możemy przy pomocy dowolnego edytora tekstowego, przykładowo Notatnika. Robimy to dokładnie tak samo jak w przypadku edycji pliku wp-config.php. Następnie szukamy w menu naszego programu opcji typu "Zmień", "Znajdź i zmień". W przypadku Notatnika znajdziemy ją w opcjach Edytuj. Klikamy na opcje "Zamień" i wyszykujemy wszystkie fragmenty, które zawierają http://domena.pl i zamieniamy je na http://domena2.pl Klikamy na "Zamień wszystko" i to właściwie tyle. Tak zmodyfikowany plik musimy już tylko zapisać. Po wykonaniu tych operacji mamy gotowy do zaimportowania zrzut naszej bazy. Jednak dokonywanie modyfikacji w ten sposób ma jedną podstawową wadę. Jeśli były włączone jakieś pluginy lub widgety, mogą one nie zadziałać. Wynika to ze sposobu, w jaki WordPress przechowuje informacje o aktywnych pluginach. Korzysta w tym celu z danych serializowanych, gdzie przykładowo weryfikowana jest ilość znaków. Wpisanie dłuższej domeny spowoduje zepsucie tej serializowanej struktury, co będzie skutkowało dezaktywowaniem pluginów przez WordPressa. Jednak wystarczy je ponownie włączyć i skonfigurować, aby wszystko wróciło do normy!
Importowanie bazy
Bez względu na to, w jaki sposób wykonaliśmy modyfikacje bazy musimy ją teraz zaimportować na naszym nowym serwerze. W tym celu również najprościej będzie zalogować się do phpMyAdmin, przejść do utworzonej bazy dla naszej migrowanej instalacji WordPressa i wybrać zakładkę "Importuj". Następnie wybieramy nasz plik z rozszerzeniem *.sql przy pomocy "Wybierz plik", pozostawiamy wszystkie inne opcje jako domyślne i klikamy "Wykonaj".
Uwagi końcowe
Jeśli wszystkie wyżej wymienione kroki wykonaliśmy poprawnie, powinniśmy się cieszyć naszą instalacją WordPressa w nowej domenie. Instalacja powinna prawidłowo działać pod nową domeną, tak jak i wszystkie odnośniki na naszej stronie. Oczywiście poradnik dotyczy aplikacji napisanej w sposób zgodny z przyjęta przez twórców WordPressa konwencją. Jeśli korzystamy z WordPressa, który został mocno zmodyfikowany przez programistów, mogą wystąpić problemy, które bardzo ciężko jest tutaj przewidzieć. Sposób migracji tutaj omówiony ma zastosowanie również w obrębie jednego serwera. Jeśli przykładowo chcemy zmienić adres naszego bloga z domena.pl/blog na blog.domena.pl, robimy to dokładnie tak, jak zostało tutaj opisane, jednak pomijamy kroki dotyczące kopiowania plików i modyfikacji pliku konfiguracyjnego. Modyfikujemy jedynie bazę. Sposobów na migracje WordPressa znajdzie się z całą pewnością jeszcze kilka, jednak omówiony tutaj został ten najbardziej schematyczny i logiczny tak, aby nawet osoby nie do końca techniczne były w stanie zrozumieć schemat działania. Być może w przyszłości zostanie przedstawiony sposób szybkiej migracji WordPressa ze zmianą domeny, jednak bez użycia wtyczek i bez modyfikacji zrzutu bazy. Zachęcamy również do aktywnej dyskusji w komentarzach zarówno w przypadkach problemów z wykonaniem migracji opisanym tutaj sposobem (postaramy się pomóc), jak i w sytuacjach gdy znacie inne ciekawe rozwiązania związane z migrowaniem instalacji WordPressa.
Szukasz szybkiego hostingu z dyskami SSD? Dobrze trafiłeś.
Pakiety hostingowe Kylos to sprawdzone i niezawodne rozwiązanie dla Twojej strony.
Darmowy okres próbny pozwoli Ci sprawdzić naszą ofertę, bez ponoszenia kosztów.
Sprawdź nas