1 lutego 2020

Przenoszenie WordPress – zmiana hostingu i domeny

Kategoria: Web
Tagi: WordPress,
Autor: Paweł Mansfeld

Kiedy rozwijamy stronę WordPress w środowisku lokalnym lub w tymczasowej lokalizacji (np. na serwerze deweloperskim, tymczasowej domenie), w końcu zajdzie potrzeba przeniesienia WordPressa na docelowy hosting i domenę. W tym artykule opiszę szybki i prosty sposób jak przenieść stronę WordPress lub sklep WooCommerce na nowy serwer.

Opisana procedura będzie też przydatna w przypadku kiedy chcemy sklonować WordPressa w celu eksperymentowania ze zmianą motywu lub wtyczkami i różnymi rozwiązaniami, a jednocześnie nie chcemy robić zamieszania w witrynie, z której aktualnie korzystają nasi użytkownicy.

Zmiana hostingu może być też konieczna kiedy chcemy przyspieszyć działanie WordPressa a obecny nie dość że jest mało wydajny to jeszcze nie oferuje nowoczesnych rozwiązań takich jak: HTTP/2, CDN, czy darmowy SSL. Aby artykuł był użyteczny dla największej liczby osób, dokonamy przeniesienia w najbardziej skomplikowanym scenariuszu tzn. zmieniamy zarówno domenę jaki i serwer.

Zobacz jak zainstalować WordPressa w Google Cloud. Jeżeli znasz środowisko Amazon sprawdź instrukcję instalacji WordPress w AWS.

Tego rodzaju migracji wykonuje za każdym razem kiedy publikuję nową stronę lub kiedy trzeba zmienić serwer lub hosting. Dlatego jest to technika sprawdzona i co więcej, nie wymaga instalowania na oryginalnej witrynie żadnych wtyczek ani nie wymaga przeprowadzenia modyfikacji. Metoda ta jest najszybsza, pewna i zajmuje naprawdę kilka minut.

Zmiana domeny WordPress

Zmiana samej domeny to zaledwie kilka kliknięć. Przechodzimy do ustawień ogólnych WordPressa i wpisujemy nową domenę w dwóch polach:

Zmiana domeny w ustawieniach głównych WordPress

Z taką sytuacją możemy mieć do czynienia, kiedy tworzymy stronę na serwerze bez podłączonej domeny (np. posługujemy się adresem IP) a potem kupujemy domenę i chcemy aby strona z nią współpracowała. Po wykonaniu tej czynności należy sprawić aby domena wskazywała na ten sam hosting. Można to zrobić za pomocą

  • edycji pola „A” domeny,
  • podłączenie domeny w panelu do zarządzania hostingiem (np. opcja multidomen, lub multistron),
  • edycja wpisów w VirtualHost jeżeli używamy rozwiązania VPS i administrujemy w systemie operacyjnym.

Wszelkie ścieżki w systemie WordPress (linki, atrybuty) są zapisywane w postaci bezwzględnej dlatego musimy je w bazie podmienić. Kiedy już potrafimy się zalogować do panelu WordPressa instalujemy wtyczkę Better Search Replace i adres IP lub poprzednią domenę zmieniamy na nową:

Podmiana adresów doemeny w bazie danych za pomocą wtyczki Better Serch Replace

Zmiana serwera WordPress

Zmiana hostingu WordPress choć składa się z kilku kroków nie jest niczym skomplikowanym. Wystarczy skopiować pliki i wykonać zrzut bazy danych i obie rzeczy przenieść na nowy serwer. Na sam koniec wystarczy dokonać prostych zmian w kilku miejscach.

Musisz mieć dostęp do:

  • Panelu WordPressa,
  • Plików na koncie FTP
  • Bazy danych na serwerze lub za pośrednictwem aplikacji phpMyAdmin (dane logowania do bazy są zapisane w pliku wp-config.php),

Przeniesienie ułatwi (ale nie jest to wymagane):

  • dostęp do konsoli SSH,
  • moduł ZIP zainstalowany na serwerze

Krok 1: Kopiowanie plików

Aby skopiować pliki należy zalogować się do konta FTP za pomocą wybranej aplikacji (np. FileZilla). Kopiowanie pojedynczych folderów z plikami za pomocą konta FTP może trwać długo i powodować problemy. Na niektórych hostingach są ustawione blokady ilości żądań na minutę – w tej technice niektóre pliki mogą się nie skopiować prawidłowo. Dużo szybszym rozwiązaniem jest użycie SSH i spakowanie wszystkich plików do ZIP (to naprawdę jest bardzo proste, wystarczy pobrać program PuTTy.

Komenda, która zarchiwizuje pliki wewnątrz folderu w którym się znajdujemy to.

zip -r wordpress.zip * 

Ten plik można szybko pobrać za pomocą FTP. Jeżeli przenosimy lokalną instancję WordPressa możemy użyć ulubionej aplikacji do archiwizowania:

Pakowanie plików za pomocą programu WinRar

Po skopiowaniu tego pliku dowolną metodą na nowy serwer, możemy uzyć komendy

unzip wordpress.zip

Jeżeli po wpisaniu tych komend otrzymujemy (Command not Found) to wystarczy zainstalować rozszerzenie ZIP:

sudo apt-get install zip

Jeżeli nie mamy wystarczających uprawnień lub dostępu do SSH, możemy wykorzystać prosty skrypt PHP, który rozpakuje paczkę znajdującą się w tym samym folderze:

 <?php  
system ("unzip wordpress.zip"); 

Logowanie do SSH jest możliwe za pomocą programu PuTTY. W przypadku hostingu wirtualnego powinniśmy otrzymać login i hasło od firmy hostingowej tak samo jak do konta FTP. Często login i hasło do SSH są identyczne z tymi w FTP.

Krok 2: Eksport bazy danych MySQL

Aby wykonać kopię bazy danych możemy użyć programu phpMyAdmin:

Eksportowanie bazy danych metodą „prostą”

Eksport bazy danych można wykonać w konsoli (zakładamy, że użytkownikiem jest root a baza danych nazywa się wordpress):

mysqldump -p -u root wordpress > wordpress.sql

Krok 3: Import bazy danych

Dokonujemy odwrotnego procesu na nowym hostingu. Tworzymy bazę danych i używamy opcji import w phpMyAdmin wskazując pobrany wcześniej plik.

Plik SQL też można importować za pomocą komendy:

mysqldump -p -u root wordpress < wordpress.sql

Ta technika przyda się wówczas kiedy baza jest bardzo duża a ustawienia serwera nie pozwalają aplikacji phpMyAdmin na pobranie pliku w formularzu (upłynie limit czasu żądania dla procesora lub plik nie mieści się w limicie upload_max_filesize).

Krok 4: Edycja pliku wp-config.php

Kiedy pliki są już przeniesione a na nowym hostingu baza zaimportowała się prawidłowo, przechodzimy do pliku wp-config.php w głównym folderze WordPressa. Znajduje się tam adres, nazwa, użytkownik i hasło do bazy danych. Musimy je zmienić aby framework WordPressa mógł się połączyć z nową bazą.

Edycja pliku wp-config.php

Krok 5: Edycja pól home i siteurl w bazie danych

Aby móc się zalogować do Kokpitu na nowym serwerze, musimy zmienić pole, home i siterul w tabeli wp_options aby reprezentowały one nową domenę:

Edycja pól siteurl i home w tabeli wp_options

Krok 6: Podmiana domeny w adresach url

Charakterystyczne dla systemu WordPress jest to, że zapisuje on w bazie danych ścieżki i linki do wszystkich stron w postaci bezwzględnej (czyli zapisując każdorazowo z natury niezmienną domenę główną). Ma to swoje zalety i wady. Musimy teraz zalogować się do kokpitu i zainstalować wtyczkę Better Search Replace i dokonać masowej podmiany ciągu starej domeny na nową. Opis tej czynności jest podany na początku artykułu – przy zmianie domeny.

Oczywiście, zaawansowani użytkownicy mogą dokonać ręcznej podmiany ciągów bezpośrednio w pliku SQL w kroku 3. za pomocą dowolnego edytora tekstowego z funkcją „Znajdź i zamień”. Tak czy inaczej wtyczka Better Search Replace przyda się jeszcze nie raz.

Krok 7: Resetowanie bezpośrednich odnośników

Przeniesiony z plikami plik .htaccess zawiera jeszcze wpisy dla starej lokalizacji. Można je łatwo dostosować do nowej strony przechodząc do Ustawienia >> Bezpośrednie odnośniki zmieniając najdrobniejszą rzecz i klikając na przycisk „Zapisz zmiany”. Oczywiście tę zmienioną rzecz można potem przywrócić na pierwotne ustawienie.

Od tej pory nasz witryna WordPress lub sklep WooCommerce będą działać w nowej lokalizacji dokładnie tak jakby były tam od początku zainstalowane.

Zmiana serwera WordPress bez przerwy w działaniu

Jest jeszcze jeden scenariusz, który nie zakłada zmiany domeny a tylko zmianę samego serwera. Z tym mamy do czynienia kiedy chcemy zmienić dostawcę serwera (bo przykładowo znaleźliśmy lepszą ofertę lub bardziej odpowiednią konfigurację) lub przenosimy WordPressa z hostingu wirtualnego na VPS (lub odwrotnie) u tego samego dostawcy. Wszystkie kroki są już opisane wystarczy tylko wykonać niektóre zgodnie z tą kolejnością. To pozwoli zachować zerowy downtime w działaniu witryny. Podmiana serwera będzie niemal niezauważalna z perspektywy internautów (zakładając że nikt nie będzie aktualnie zalogowany do panelu lub klient aktualnie nie dokonuje zakupów):

  1. Wykonujemy kopię bazy danych (sqldump) i przenosimy ją na nową bazę na nowym serwerze (jeżeli będziemy korzystać z tej samej bazy np. w chmurze to można to oczywiście pominąć)
  2. Pakujemy i przenosimy pliki z poprzedniego serwera na nowy.
  3. Po przeniesieniu plików, edytujemy plik wp-config.php według instrukcji w poprzednich krokach (tak aby wskazywał an nową bazę),
  4. Zmieniamy konfigurację domeny aby wskazywała na nowy serwer. Edycja rekordu „A” lub edycja adresów DNS.

W tym kroku nie używamy Better-Search Replace ani nie edytujemy żadnych ustawień, ponieważ nie zmieniają się. Przed wykonaniem takiej migracji należy się upewnić czy serwery są ze sobą kompatybilne.

W zależności od ustawień propagacji w DNS, będzie moment (kilka sekund lub minut), w którym część klientów korzysta jeszcze ze starej strony z powodu zapamiętywania odpowiedzi DNS, które są aktualizowane co pewien czas w przeglądarce. Dlatego jeżeli mamy taką możliwość i baza danych jest dostępna publicznie, to przed punktem 2. na poprzednim serwerze edytujemy plik wp-config.php tak, aby wskazywał na nową bazę danych.

Czytaj więcej o przenoszeniu stron, migracji lub zmianach domen w osobnym artykule, który kładzie nacisk na tematy i problemy związane z SEO i indeksowaniem: Zmiana strony internetowej (migracja) na nową.

Alternatywne techniki migracji WordPressa

Migracja WordPressa jest możliwa za pomocą WP-CLI czyli interfejsu do zarządzania WordPressem z linii komend. Technika ta jest sybka i wygodna kiedy lubimy korzystać z konsoli. Nie można z niego skorzystać na każdym hostingu.

Istnieją też wtyczki do wspomagania migracji ale zupełnie nie rozumiem po co z nich korzystać. Nie robią niczego ponadto co opisałem w tym wpisie a ewentualnie mogą tylko skomplikować proces w wyniku braku kompatybilności z dowolną wtyczką, serwerem, wersją PHP itd… Już lepiej poświęcić te parę minut i odszukać dane do phpMyAdmin i konta FTP.

Podsumowanie

Przeniesienie strony WordPress na inny hosting nie stanowi problemu. Wykonanie tych działań w takiej kolejności daje pewność, że strona WordPress będzie działać jak należy.

Jeżeli nie czujesz się na siłach zleć tego typu prace koledze, który ma chociaż podstawowe pojęcie związane z administracją stron i konfigurowaniem hostingów. Jeżeli nie znasz nikogo, możesz się odezwać do dowolnej firmy, która zajmuje się WordPressem. Samodzielne próby i pakowanie się w różnego rodzaju wtyczki lub instalacje nowej strony i ręczne przenoszenie treści to tylko strata czasu i narażanie się na potencjalne problemy.

Źródła

https://wordpress.org/support/article/moving-wordpress/

Oceń artykuł na temat: Przenoszenie WordPress – zmiana hostingu i domeny
Średnia : 4.5 , Maksymalnie : 5 , Głosów : 15


 

Odpowiedz lub skomentuj

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *




Komentarze

Ireneusz

3 lutego 2020

Bardzo szczegółowy poradnik, jak przenieść WordPress-a. Dobrze jest rozumieć cały proces. Ponieważ uwielbiam WordPress-a za to, że bardzo wiele rzeczy można zrobić wtyczkami, nie inaczej jest w tym przypadku.

Do migracji używam wtyczki: https://pl.wordpress.org/plugins/all-in-one-wp-migration/

Do 512 MB wielkości pliku migracyjnego wtyczka jest darmowa, a powyżej tej wartości trzeba wykupić licencję pro. Ale warto, bo wtedy możemy przenosić instalacje bez limitu wielkości.

Jedyne, co trzeba zrobić, to zainstalować wtyczkę na stronie źródłowej oraz docelowej oraz zrobić eksport do pliku .wpress, a na docelowej stronie zrobić import tego pliku.

W przypadku większych plików wąskim gardłem jest upload czyli import pliku .wpress z dysku lokalnego na stronę docelową. Prędkość łącza internetowego jest kluczowa.

Zdarzało mi się przenosić stronę z plikiem o wielkości 6.1 GB. I udało się. Program sam rozpakowuje pliki oraz zamienia domenę źródłową na docelową. Więc w zasadzie nie trzeba robić nic - z wyjątkiem oczekiwania, aż się skończą transfery pliku. Nawiasem mówiąc twórca tej wtyczki (ServMask) ma naprawdę dużo narzędzi do migracji: od prostych jednojęzykowych instalacji WP, poprzez strony oparte o WPML, do "rozrzucania" wielojęzycznych stron na instalacje MultiSite i "przerzuczania" instalacji w obrębie, do i z MultiSite włącznie. Naprawdę polecam. I choć nie są to najtańsze rozwiązania, to oszczędzają mnóstwo czasu i kombinowania.

Paweł Mansfeld

3 lutego 2020

Uwielbienie do WordPressa z powodu wtyczek kończy się zazwyczaj przy pierwszych poważnych problemach. Instalację WordPressa, dwukrotną instalację jakiejś wtyczki, eksport i import pliku wydaje mi się bardziej czasochłonne. Wtyczka nie zmieni za nas rekordów "A" przy zmianie domeny, nie wykryje niestandardowego przekierowania 301 w .htaccess i nie przeniesie optymalizacji w nim zawartych. Nie potrafi zmienić na serwerze parametrów upload_max_filesize bo np. niektóre hostingi uniemożliwiają ładowania plików powyżej 100MB przez PHP.

Druga sprawa, jak wpisujemy w wyszukiwarkę frazę All In One WP Migration to kolejne sugerowane słowa to: "problem", "error", "upload error" "import error", "stuck" itd...

Właśnie po to są tego typu artykuły aby nauczyć niezawodnych technik. Nie wydaje mi się że kopia plików, kopia bazy danych i podmiana kilku słów w wp-config.php to jak Pan określił "kombinowanie". To podstawowe działania administracyjne.

Pomijając całkowicie stracony czas, te 69 dolarów za płatną wersję wtyczki wolałbym zapłacić komuś kto weźmie na siebie odpowiedzialność i profesjonalnie przeniesie stronę wraz z ustawieniem nowego hostingu niż potem przeczesywać każdy wątek odnośnie "import error" albo "stuck". Mam wrażenie, że niektórzy lubią ten dreszczyk adrenaliny przy pakowaniu się w kolejne wtyczki (tym bardziej płatne) bo to jest jak hazard - albo zadziała, albo nie, albo problem wyjdzie za pół roku, albo WordPress będzie zhakowany, nie da się go zaktualizować lub będzie spowolniony ;)

ANNA

24 lipca 2020

Przymierzam się do przeniesienia blogu WP na własną domenę. Posiadam bezpłatny pakiet i niestety nie widzę w ustawieniach ogólnych pól do Zmiany domeny WordPress. Czy mogą znajdować się one w jakimś innym miejscu lub czy w momencie wykupienia pakietu płatnego funkcjonalność ta zostanie udostępniona?

Paweł Mansfeld

24 lipca 2020

Prawdopodobnie chodzi o platformę blogową wordpress.com a nie o stronę stworzoną za pomocą CMS WordPress. Niestety w tym przypadku nie można dokonać takiej migracji o jakiej mowa w tym artykule.

Oczywiście, płatna wersja WordPress.com pozwala na wykorzystywanie własnej domeny w ramach tej platformy blogowej - wystarczy wykupić płatną opcję i postępować według wskazówek na ekranie.

Można też dokonać migracji WordPress.com do WordPress.org aby być faktycznym właścicielem całego bloga a nie jedynie jego autorem. Migracja witryny na własny hosting i domenę pozwoli osiągnąć całkowita niezależność w konfiguracji i uwolnić się od warunków platformy wordpress.com.

Łukasz

5 sierpnia 2020

Pawle, wielkie dzięki, proces jest dobrze opisany i działa.

Różne magiczne wtyczki do "migrowania" sprawiły mi dotychczas więcej kłopotów, a tu wszystko przejrzyście, czytelnie... Wystarczy się nauczyć i gadanie o oszczędności czasu nie jest wcale prawdziwe. Jasne, żeby się nauczyć kosztowało mnie to kilka godzin... jednak jestem teraz niezależny od tych wszystkich wtyczek, które właśnie wtedy, gdy najbardziej ich potrzeba, to wyciągają ręce po $$$, a mimo tego nie działają jak należy.. co można po komentarzach pod ich opisami przeczytać...

Oczywiście podczas nauki nie obyło się bez komplikacji, małych zmian, bo np. jeśli mam to zainstalowane na localhost/wordpress to jeszcze trzeba było edytować htaccess, (usunąć wartość wordpress) do tego po drodze jedna z wtyczek wymagała zmiany konfiguracji (wordfence ma ochronę, którą należy wyłączyć, jeśli chcemy mieć możliwość zainstalowania na innym serwerze), ale koniec końców udało się przenieść z lokalnej maszyny, na serwer w sieci... dodatkowo lepiej przy tym rozumiejąc to wszystko.. a więc teraz mogę sobie pracować projektując stronę na swoim kompie, bez problemu potem przenosząc ją na serwer gdy będzie gotowa...

A czy możesz napisać, czy jeśli już wszystko sobie "zorganizuję" i przeniosę na serwer, ale będę chciał wówczas nadal edytować stronę głównie na localhost i powiedzmy dodam coś na localhoście, np. wpis, nowe produkty do sklepu, itd. to wystarczy już wtedy tylko przenieść pliki, czy każdorazowo trzeba eksportować/importować od nowa bazę danych? Tzn. cały proces przeprowadzić? Czy to w ogóle ma sens?

Myślę o tym, ze względu na bezpieczeństwo danych, robienie takich back-upów ręcznie... które zabezpieczą stronę przed różnymi problemami.

Dzięki!

Paweł Mansfeld

6 sierpnia 2020

Super, cieszę się, że artykuł się przydał. Tak jest chyba ze wszystkim, bo rozumienie czegoś jak coś działa i świadome działanie zawsze popłaca. Na początek trzeba wyjść ze "strefy komfortu" i poświęcić czas a nawet coś zepsuć (dlatego warto poćwiczyć na jakichś testowych stronach) ale potem przynajmniej nikt nas nie kroi i nie dajemy się wpuścić w maliny lub całkowitą zależność od jakieś wtyczki czy firmy.

Wszelkie wtyczki do Cache, optymalizacji, pseudo-zabezpieczeń oczywiście trzeba wyłączyć - o tym zapomniałem wspomnieć.

Ogólnie Wordfence odradzam robi więcej złego niż dobrego :) i to nie tylko moje zdanie - powstanie osobny wpis jak blokuje ruch botów i utrudnia zdobywać linki.

Do takiej automatyzacji przenoszenia zmian pomiędzy instalacjami można stworzyć własny skrypt lub oficjalny WP-CLI. Pomyślę też nad osobnym wpisem albo podlinkuję jeżeli znajdę coś fajnego w sieci na ten temat.

Dzięki za komentarz i pozdrawiam.

Łukasz

17 września 2020

Dzięki za odpowiedź Pawle. Z ciekawości - w jaki sposób więc zabezpieczyć stronę optymalnie przed wszelkiego rodzaju atakami? Też pytanko, które nadal mnie dręczy: to edycja na localhost i upload wybranych części strony, czy tak się da?

Paweł Mansfeld

17 września 2020

Ustawienie "trudnego" hasła i unikanie niepewnych wtyczek naprawdę załatwi sprawę. Gdyby WordPress potrzebował dodatkowej ochrony, twórcy dawno wbudowaliby tego typu mechanizmy w podstawowy skrypt.

Jeśli chodzi o development strony na localhoście i synchronizację z żywą stroną zainstalowaną na serwerze, szukaj informacji odnoście systemów kontroli wersji, np. Git. Odsyłam do wątku: https://wordpress.org/support/topic/how-to-work-with-localhost/.

Łukasz

17 września 2020

Dzięki Pawle... szkoda, że WP nie ma natywnie wbudowanej ochrony 2FA, bo ta daje dodatkowy powód do spokoju... a z tymi wtyczkami to nigdy nie wiadomo :-)

Paweł Mansfeld

17 września 2020

Długie hasło daje matematycznie pewną ochronę. Prędzej padnie hosting niż ktoś przetestuje wszystkie możliwe kombinacje w powiedzmy 10 literowym haśle nie mówiąc o dłuższych. Jest wtyczka, która limituje ilość nieudanych prób wpisania hasła - dzięki niej możemy mieć większą pewność, że hosting nie padnie ale hasło tak czy inaczej nie będzie znalezione. 2FA to zabawa, troszkę paranoja i zawracanie głowy - nic ponadto.

Łukasz

18 września 2020

W sumie racja - hasło mam długie, sporo więcej niż 10 znaków, dodam sobie limited login attempts i zmienię adres strony logowania na nietypowy i po sprawie chyba, co? Wykminiłem, że zasadniczo wystarczy tak naprawdę podmienić folder wp-content i plik wp-config.php w zrobionej świeżej instalacji WP na nowym serwerze i wszystko działa jak złoto. Czy może też są jakieś ukryte wady takiego działania?

Paweł Mansfeld

18 września 2020

Jasne, że to wystarczy.

Co do podmiany wp-content i edycji wp-config.php nie wiem co masz konkretnie na myśli, przenoszenie z localhosta?

 

Wykryto brak połączenia z Internetem.