Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)

Popularność WordPressa stale rośnie… Coraz częściej jest wykorzystywany nie tylko do prowadzenia (prywatnych) blogów, ale są na nim tworzone witryny firmowe. Dużą zaletą WordPressa jest przejrzysty interfejs służący do zarządzania serwisem, mnogość wtyczek, jak i skórek.

Pewien problem pojawia się, gdy chcemy/musimy przenieść już całkiem rozbudowany serwis pod inny adres. Nie będę pisał „jak to zrobić”, tylko opiszę „jak to (ostatnio) zrobiłem”. Dodatkowo opisana metoda, może się przydać przy zmianie domeny nie tylko w przypadku WordPressa…

Przenosimy WordPressa pod nowy adres

Na początek kilka „założenia”, które zostały przyjęte na potrzeby tego wpisu/poradnika:

  • Stara domena to: stara_domena.pl
  • Nowa domena to: nowa_domena.pl

DNSy, jak i ustawienia serwera dla obydwu domen są już za nami…

BackUp

Warto wykonać, bo, mimo że metoda sprawdzona, zawsze coś może pójść nie tak. Można to wykonać na kilka sposobów, 3 najpopularniejsze to:

Dla pewności można skorzystać z kilku metod naraz.

Google – Narzędzia dla Webmasterów

Za pomocą Narzędzi dla Webmasterów (po)informujemy wyszukiwarkę Google, że właśnie nasza strona się „przeprowadza”, i by w wynikach wyszukiwania pojawiał się już nowy adres. Warto wykonać ten krok, zwłaszcza gdy witryna pod starym adresem była dostępna dłuższy czas, i sporo ruchu pochodzi właśnie z wyszukiwarki.

Przekierowanie 301 w pliku .htaccess

Ten etap jest tym ważniejszy, im dłużej stara domena będzie jeszcze funkcjonować, ponieważ to pod starym adresem umieszczamy plik .htaccess z przekierowaniem (301) do nowej strony:

RewriteEngine On
RewriteRule ^(.*)$ http://nowa_domena.pl/$1 [R=301,L]

Spowoduje to, że każde zapytanie o naszą stronę, zostanie automatycznie „przetłumaczone” i przekierowane na nowy adres.

Np. ktoś wpisuje w pasku adresu adres:

http://stara_domena.pl/jakis-wpis

zostanie automatycznie przekierowany na nowy adres:

http://nowa_domena.pl/jakis-wpis

Dodatkowo przekierowanie 301 informuje wyszukiwarki (np. Google, Bing) o tym, że zmienił się adres strony.

Zmiana adresu w panelu zarządzania WordPressem

Sama zmiana adresu w ustawieniach WordPressa wydaje się prosta:

W polach:

  • Adres URL WordPressa
  • Adres witryny (URL)

wystarczyłoby wpisać nowy adres, i – teoretycznie – po sprawie…

Krok po kroku

Najpierw skopiuj (np. po FTP/SFTP) całą stronę z:

stara_domena.pl/public_html

do:

nowa_domena.pl/public_html

Następnie zaloguj się do WordPressaa (poprzez stara_domena.pl/wp-admin) i w panelu admina we wspomnianych wyżej 2 polach:

  • Adres URL WordPressa
  • Adres witryny (URL)

zmień adres na nowy (nowa_domena.pl).

Po zapisaniu zmian oczywiście stracisz kontrolę nad stroną, ale tylko pod starym adresem (stara_domena.pl). Wystarczy wpisać nowy adres (nowa_domena.pl) i zalogować się do panelu zarządzania…

Awaryjnie, jakby coś poszło nie tak, możesz jeszcze dokonać modyfikacji tych 2 wartości, dodając w pliku „wp-config.php” te 2 linijki:

define('WP_HOME','http://stara_domena.pl');
define('WP_SITEURL','http://stara_domena.pl');

WordPress i zmienne (PHP)

Dzięki wykorzystaniu zmiennych w PHP wszystkie artykuły, linki wewnętrzne w menu (itp.) powinny już wskazywać na nowy adres. Niestety, nie wszędzie są wykorzystywane zmienne, ale o tym za chwilę…

Wtyczki i inna kosmetyka

Dobrze przejrzeć zainstalowane wtyczki czy nie ma w ich opcjach konfiguracyjnych podanego starego adresu. Warto też sprawdzić użytkowników, czy wszyscy mają np. ustawione adresy e-mail już z nowym adresem…

Posty/wpisy i strony – czyli operacja na bazie danych

Jak wspominałem wyżej, po zmianie adresu strony w panelu zarządzania, WordPress dzięki zmiennym w wielu miejscach automatycznie wyświetla nowy – prawidłowy adres strony.

Są jednak miejsca, gdzie domyślnie (bez dodatkowych wtyczek) WordPress nie korzysta z PHP a tym samym, nie ma tam zmiennych. Te miejsca to wpisy i strony (konkretnie ich treść).

Np. wszędzie, gdzie we wpisie wstawiliśmy grafikę z wewnętrznej biblioteki, mimo zmiany adresu – jej adresem będzie stary adres, np.:

http://stara_domena.pl/wp-content/uploads/.../grafika.png

Jeśli mamy tylko kilka wpisów, nic nie stoi na przeszkodzie by zmienić to ręcznie na:

http://nowa_domena.pl/wp-content/uploads/.../grafika.png

Będzie to nawet chyba szybsze niż…

Co innego, gdy mamy większą ilość wpisów, i ręczna zmiana byłaby zbyt uciążliwa. W tym momencie najszybszą metodą będzie praca bezpośrednio na „zrzucie” bazy danych…

Niektóre wtyczki (np. popularny Revolution Slider) w bazie danych adres strony zapisując z dodatkowymi tzw. ukośnikami wstecznymi (backslash). Dlatego przy modyfikacji bazy danych warto również to uwzględnić, korzystając dodatkowo z takiego schematu:

Stara domena:

https:\/\/stara_domena.pl

Nowa domena:

https:\/\/nowa_domena.pl

Dzięki czemu nie będziecie musieli później ręcznie poprawiać np. slajderów…

phpMyAdmin

W następnym kroku skorzystamy z phpMyAdmin. Jeśli nie masz takiej możliwości, poprosić o pomoc administratora serwera, a jeśli to nie pomaga, może warto pomyśleć o zmianie hostingu.

Zakładam jednak, że mamy dostęp do phpMyAdmin, i tak też będziemy działać dalej…

Eksport bazy danych

Najpierw zapiszemy (eksport) bazę danych na komputer, w tym celu skorzystamy z opcji „export” w phpMyAdmin:

Ważne, by zaznaczyć opcję „zapisz jako plik”, co pozwoli pobrać plik o nazwie „nazwa_bazy.sql”.

Edycja pliku z kopią bazy danych

Taki plik można otworzyć np. za pomocą praktycznie dowolnego edytora HTML, ja najczęściej korzystam z Notepad++.

Następnie dokonujemy podmiany adresu za pomocą opcji „Zmień” (Menu >> szukaj >> zmień…):

I klikamy „zamień wszystkie…”.

Jeśli jesteśmy pewni swoich działań (w końcu mamy zrobiony BackUp) możemy dokonać ogólnej podmiany:

stara_domena.pl

na

nowa_domena.pl

Można spróbować też wariant z „http://” (jak na zrzucie powyżej) przed nazwą domeny:

http://stara_domena.pl

na

http://nowa_domena.pl

Ale wtedy warto sprawdzić, czy gdzieś w bazie nie został wpis „stara_domena.pl” bez „http://”.

Jeśli mamy jakieś wątpliwości, możemy dokonywać bardziej subtelnych zmian, jak np. tylko grafika:

http://stara_domena.pl/wp-content/uploads

na:

http://nowa_domena.pl/wp-content/uploads

Polecam również zaktualizować/zmodyfikować ścieżki bezwzględne (systemowe), jeśli takie istnieją, np.:

/var/www/stara_domena.pl/public_html

zmieniamy na:

/var/www/nowa_domena.pl/public_html

Gdy już wszystko zostanie zmienione, można plik zapisać – tu zwracam uwagę na kodowania znaków, by cały czas (eksport, edycja, import) posługiwać się tym samym zestawem znaków (np. UTF-8).

Import zmodyfikowanej bazy danych

Zanim zaimportujemy zmodyfikowaną bazę danych należy wyczyścić (skasować) zawartość bazy danych na serwerze. W tym celu najprościej za pomocą panelu zarządzania serwerem (cPanel, DirectAdmin) skasować starą bazę danych i utworzyć nową:

Oczywiście nic nie stoi na przeszkodzie, by tworząc nową bazę danych użyć takich samych parametrów (nazwa bazy, nazwa użytkownika, hasło) jak wcześniej – więcej na ten temat w następnym punkcie, dotyczący pliku „wp-config.php”.

Gdy już wyczyścimy bazę danych (stworzyliśmy nową) pozostaje z poziomu phpMyAdmin zaimportować zmodyfikowane dane do (nowej) bazy:

Jeśli nie, to bardzo możliwe, że tworząc nową bazę danych użyliśmy innych danych niż przy starej. W tym wypadku zapraszam do jednego z następnych punktów, dotyczącego wp-config.php (główny plik konfiguracyjny WordPressa).

Zamiana bezpośrednio w bazie danych, z poziomy phpMyAdmin

W przypadku gdy nie zmieniamy hostingu, a tylko adres domeny, osoby bardziej zaawansowane (i jeśli serwer na to pozwala) mogą zamiast „eksport/import” bazy danych skorzystać z 2 kwerend SQL.

Adresy stron/wpisów:

UPDATE wp_posts SET guid = REPLACE (
guid,
'http://stara_domena.pl',
'http://nowa_domena.pl')

Adresy grafiki:

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'http://stara_domena.pl',
'http://nowa_domena.pl');

Ścieżki bezwzględne:

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'/var/www/stara_domena.pl/public_html',
'/var/www/nowa_domena.pl/public_html');

W tym przypadku kolejny punkt należy ominąć…

Zawartość bazy danych „na żywo” możecie również zmodyfikować za pomocą skryptu Search Replace DB, lub narzędzia WP-CLI, które pozwala zarządzać WordPressem z poziomu konsoli (i skryptów).

Parametry bazy danych, czyli „wp-config.php”

WordPress przechowuje podstawową konfiguracje strony – w tym parametry bazy danych – w pliku wp-config.php, o którym już wspominałem wcześniej.

Na obecnym etapie interesują nasz opcje dotyczące bazy danych, takie jak nazwa bazy, nazwa użytkownika i hasło do bazy.

Plik (wp-config.php) znajduje się w głównym katalogu WordPressa, po ściągnięciu na dysk (np. za pomocą FTP) można go otworzyć w dowolnym edytorze HTML, np. we wspomnianym wyżej Notepad++ (korzystając z połączenia SCP można edytować bezpośrednio, bez pobierania na dysk).

Interesujące nasz linie to:

define('DB_NAME', 'baza_danych');
define('DB_USER', 'uzytkownik');
define('DB_PASSWORD', 'haslo');

Z tego miejsca możemy pobrać dane potrzebne przy tworzeniu nowej bazy danych (na potrzeby wcześniejszego punktu) bądź jeśli użyliśmy innych danych – możemy je tu wpisać/poprawić. Po wymaganych modyfikacjach plik zapisujemy i wgrywamy na serwer (nadpisując stary).

I to właściwie koniec, strona powinna działać pod starym, jak i nowym adresem, powinna także działać prawidłowo już bez starej domeny.

Jeszcze 2 uwagi

Na koniec jeszcze 2 istotne elementy każdej „przeprowadzki”:

  • Użytkownicy – pamiętaj, by poinformować ich wcześniej o nadchodzącej zmianie, jak i uprzedzić ich o możliwych problemach…
  • BackUp – w razie czego, masz BackUp…

Jeśli mimo to, masz jakieś problemy – skontaktuj się z nami, postaramy się znaleźć rozwiązanie, choć w przeciwieństwie do „pomocy w komentarzach” może to być pomoc płatna (wystawiamy faktura VAT ;-)).

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)