Jak przenieść ręcznie stronę na WordPressie na inny serwer?
- Poziom trudności:
Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:
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.

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.

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ń.

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.

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ść.

Po wgraniu bazy wejdź do pliku wp-config.php i wpisz nowy adres swojej strony:
define( 'WP_HOME', 'https://nowyadres.pl' ); define( 'WP_SITEURL', 'https://nowyadres.pl' );Po wprowadzeniu poprawnego adresu będziesz mógł najprawdopodobniej zalogować się do swojego WordPressa, jednak wiele elementów nie będzie wyglądało tak, jak powinno.
Z tego właśnie powodu zachęcam Cię do zainstalowania wtyczki Better Search Replace i podania w ustawieniach starego adresu, nowego i podmiany adresów w bazie danych. Pamiętaj żeby odznaczyć opcję „dry” aby zmiana faktycznie dokonała się. Pamiętaj o przechowaniu kopii zapasowej bazy danych jeśli nie jesteś do końca pewien czy to, co robisz jest poprawnym eksportem/imporetem bazy.
Alternatywną opcją (bezwtyczkową) jest zmiana adresów bezpośrednio poprzez linię poleceń SQL.
Poniżej zostawiam przykładowy kod:
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 WordPressPonieważ 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 WordPressZmiana ś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.
Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:
Komentarze — Napisz pierwszy komentarz
Czy powyższe wskazówki były skuteczne? Jeśli tak, podziel się swoimi spostrzeżeniami w komentarzu. Gdybyś chciał się podzielić ze mną skrawkiem kodu aby uzupełnić minikurs to skorzystaj z portalu pastebin.com i wyślij linka do kodu. Instrukcje jak to zrobić znajdziesz tutaj.