Jak przenieść ręcznie stronę na WordPressie na inny serwer?

  • Poziom trudności:

Najczęstszymi powodami dla których chcemy przenieść witrynę na inny serwer są kwestie finansowe (u aktualnego usługodawcy przepłacamy za usługę, a to samo moglibyśmy mieć u kogo innego w znacznie niższej cenie), częste awarie (porządny hosting powinien zapewniać 99,9% dostępności witryny, różnie z tym jednak bywa) lub kwestie bezpieczeństwa (zaczęła nas martwić kondycja firmy). Innym częstym powodem zmiany hostingu jest niewystarczająca obsługa klienta, wyższe wymagania dotyczące parametrów serwera lub chęć przetestowania bez stresu nowego motywu na swojej witrynie.

Istnieją co najmniej dwa sposoby na przeniesienie WordPressowej witryny na inny serwer. Pewnie spory dotyczące tego który z nich jest lepszy szybko nie ucichną, dlatego postanowiłem Ci przestawić oba rozwiązania i podzielić je na dwa osobne kursy. Skorzystaj z tego, które Tobie najbardziej odpowiada.

Mówiąc o dwóch sposobach na radzenie sobie z przenosinami witryny na WP miałem na myśli:

  • rozwiązanie manualne polegające na przeniesieniu plików między serwerami, eksportem/importem bazy danych oraz opcji motywu
  • rozwiązanie zautomatyzowane polegające na wykorzystaniu wtyczki pomagającej przenieść witrynę

Bez zbędnego przedłużania chciałbym zaprezentować Ci sposób pierwszy czyli ręczne przenoszenie całej witryny.

Kopia plików z serwera

Aby przenieść całą witrynę musisz na początku upewnić się, że żaden z użytkowników jej aktualnie nie edytuje. Jeśli masz co do tego pewność kolejnym krokiem będzie zalogowanie się przez klienta FTP do plików na serwerze, a następnie skopiowanie wszystkich plików na dysk. Najlepiej załóż sobie katalog w którym będziesz mógł je przechować na czas przenosin.

z-serwera-na-dysk

Po upewnieniu się, że żadne pliki nie zalegają w zakładce „Nieudane transfery” (jeśli zostały warto spróbować przenieść je ponownie do kolejki i na nowo rozpocząć proces przenoszenia na dysk) można przejść do kopii zapasowej bazy MySQL.

Kopia bazy danych

Z pomocą przyjdzie panel PhpMyAdmin, który dostarcza interfejs graficzny pomocny przy zarządzaniu bazami danych. Po zalogowaniu się do panelu  przejdź do zakładki Eksport, a następnie zapisz plik z bazą danych.

eksport-bazy

Zmiana adresów w bazie danych

Jeśli wraz ze zmianą serwera zmieniasz także adres dostępowy do strony, koniecznie przeczytaj cztery kolejne akapity. Czasami zmianie serwera towarzyszy zakup domeny pod którą zamierzasz wyświetlać swoją witrynę. Jeśli w Twoim przypadku zmienia się albo cała domena albo ścieżka do katalogu z Twoją stroną (np. z twojastrona.pl/katalog na twojastrona.pl/inny-katalog), wtedy musisz dokonać niezbędnych zmian tak aby strona się właściwie wyświetlała. Możesz to zrobić na dwa sposoby: mniej niezawodny umieszczam poniżej, a bardziej sprawny i krótszy (aczkolwiek wymagający poruszania się po panelu phpmyadmin) znajduje się w akapicie z importem bazy danych.

Jako alternatywną metodę możesz skorzystać skorzystać z zaawansowanego edytora tekstowego np. Notepada++.

Po otwarciu bazy danych w Notepadzie++ wystarczy że skorzystasz z kombinacji Ctrl+F i przechodząc do zakładki „Zamień” wkleisz adres dotychczasowy (stary) i aktualny (nowy). Po zatwierdzeniu zapisz bazę jako nowy plik .sql (nie nadpisując dotychczasowej bazy), gdyż w razie potrzeby będziesz mógł wrócić do starych ustawień.

zmiana-sciezki-w-mysql

Dzięki tej zmianie zmodyfikowałeś zarówno te adresy, które odpowiadały za poprawne wyświetlanie strony (ścieżek do plików witryny itp.) jak i treści umieszczone na witrynie. Jeśli więc linki w tekstach kierowały do starego adresu, najprawdopodobniej zostały zmodyfikowane i będą teraz prowadziły w nowe miejsce.

Pamiętaj że jeśli zmieniasz nie tylko serwer ale również domenę, wtedy w ustawieniach tej domeny musisz wskazać DNS-y na które ma wskazywać. Adresy DNS poznasz z dokumentacji na stronie www dostawcy hostingu lub bezpośrednio poprzez infolinię. Pamiętaj że okres propagacji DNSów trwa kilkanaście do kilkudziesięciu godzin, zależnie od ustawień hostingu.

Eksport ustawień w opcjach szablonu

Jeśli korzystasz z kupionego szablonu zawierającego rozbudowaną podstronę „Theme Options” wtedy najprawdopodobniej znajdziesz tam również możliwość eksportu ustawień. Wczytaj się w dokumentację szablonu jeśli masz wątpliwości i skopiuj te ustawienia.

Przeniesienie plików na nowy serwer

Wróćmy na chwilę do FileZilli albo innego dowolnego klienta FTP. Teraz zaloguj się na nowy serwer i przenieś pliki, które wcześniej skopiowałeś na swój dysk. Zanim to zrobisz zastanów się czy w plikach Twojego motywu nie wprowadzałeś starszej ścieżki. Jeśli tak (albo jeśli nie jesteś pewien) wróć jeszcze na chwilę do Notepada++ i otwórz wyszukiwanie w plikach, następnie wskaż katalog z witryną pobraną na dysk, wpisz w szukanym tekście stary adres, a w zamienianym nowy. Po kliknięciu na „Zamień w plikach” wszystkie Twoje pliki powinny zostać przeszukane i poprawione.

szukaj-w-plikach

Teraz możesz bez obaw logować się do nowego serwera poprzez FileZillę albo innego klienta FTP i skopiować wszystkie pliki witryny z dysku na serwer. Całość może zająć kilka minut, a operacja wygląda identycznie jak przenoszenie plików z serwera na dysk, z tą różnicą że tym razem pliki z lewego okna przenosisz do okna po prawej.

Import bazy danych

Jesteśmy już na finiszu. Teraz powinieneś założyć na nowym serwerze bazę danych i zalogować się do Twojego panelu PhpMyAdmin. Każdy hosting ma inaczej rozwiązaną opcję dodawania bazy, jednak to o co Cię proszę przy tej okazji to zapamiętanie danych takich jak nazwa bazy, nazwa użytkownika oraz hasło.

Po stworzeniu pustej bazy zaloguj się na PhpMyAdmin nowego serwera i przejdź do zakładki „Import”. Teraz wybierz z dysku ten plik .sql który uprzednio zmodyfikowałeś i rozpocznij przesyłanie. Wysyłka zależy od wielkości bazy, proponuję na wszelki wypadek abyś uzbroił się w cierpliwość.

import-bazy

Możesz przejść do akapitu o dodatkowej konfiguracji, jeśli zmieniałeś już adresy w bazie danych. Jeśli zmiana jest jeszcze przed Tobą, poniżej znajdziesz niezawodny sposób na zmianę ścieżek na zaimportowanej bazie danych.

Najprostszą metodą na zmianę wszystkich ścieżek jest wklejenie poniższego fragmentu kodu w zakładce SQL:


UPDATE wp_options SET option_value = replace(option_value, '//staryadres', '//nowyadres') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, '//staryadres','//nowyadres');

UPDATE wp_posts SET post_content = replace(post_content, '//staryadres', '//nowyadres');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'//staryadres','//nowyadres');

UPDATE wp_options SET option_value = replace(option_value, '//staryadres', '//nowyadres') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, '//staryadres','//nowyadres');

UPDATE wp_posts SET post_content = replace(post_content, '//staryadres', '//nowyadres');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'//staryadres','//nowyadres');

Naturalnie //staryadres i //nowyadres należy podmienić na właściwe adresy – kolejno dawny i aktualny.

Po zatwierdzeniu przy każdej linijce otrzymasz komunikat informujący w ilu miejscach poszczególnych tabeli bazy udało się dokonać zmiany.

Dodatkowa konfiguracja

To już naprawdę koniec. Po przeniesieniu plików oraz bazy uruchom panel administracyjny nowej strony logując się przy pomocy tych samych danych, którymi się posługiwałeś na starej witrynie. Teraz przejdź do Ustawienia -> Bezpośrednie odnośniki i upewnij się, że ustawienia na tej stronie są identyczne jak na starej. Oprócz tego zaimportuj ustawienia z „Theme Options” szukając tej opcji w pobliżu wcześniejszego eksportu tych danych. Sprawdź czy w Wygląd -> Widgety znajdziesz listę swoich widgetów, a jeśli trzeba to dodaj je ponownie.

Teraz możesz przejść do witryny. Jeśli występuje problem z przechodzeniem pomiędzy podstronami – otwórz plik .htaccess. U mnie pozostała struktura:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /500/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /500/index.php [L]
</IfModule>
# END WordPress

Ponieważ zmienił się katalog wyświetlający witrynę, dlatego w 4 i 8 linijce kodu powinieneś podmienić „500” na „inny-katalog”. Po wykonaniu tej czynności plik .htaccess będzie wyglądał w następujący sposób:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /inny-katalog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /inny-katalog/index.php [L]
</IfModule>
# END WordPress

Zmiana ścieżki skutecznie naprawi problem z właściwym wyświetlaniem podstron.

To by było na tyle. Mam nadzieję, że pomogłem przenieść witrynę na nowy serwer. W razie pytań skorzystaj z komentarzy pod tym wpisem.

UDOSTĘPNIJ