Przenoszenie WordPress’a na inny serwer
WordPress, jedna z najpopularniejszych platform blogowych, mimo szerokiej palecie oferowanych możliwości, nie posiada prostego mechanizmu do zmiany lokalizacji. Jeśli zamierzamy przenieść nasz blog pod inny adres www, to musimy się nieco nagimnastykować.
To co jest główną przyczyną problemów procesu migracji, to umiejscowienie bezwzględnego adresu strony w sporej liczbie miejsc w bazie danych oraz samych wpisach. Podczas zmiany adresu, musimy edytować wszystkie odniesienia do starej domeny, zmieniając je na nowe.
Postaram się pokazać jak w prosty i szybki sposób ułatwić sobie ten proces, nie narażając się na zbędny stres.
Zasadniczo możemy wyróżnić dwa rodzaje migracji z naszym CMS’em, z zmianą adresu bądź bez, gdy zmieniamy tylko serwer www. Oba te przypadki zostaną omówione.
Backup
Pierwsze co powinniśmy zrobić to kopię zapasową, zarówno wszystkich plików WordPress’a, jak i jego bazy danych – na przykład w phpMyAdmin.
Konfiguracja
Otwieramy do edycji plik wp-config.php, znajdujący się w głównym folderze bloga. Podobnie jak przy instalacji, zmieniamy w nim parametry przyszłej bazy danych. Prawdopodobnie będą to nazwa bazy danych, nazwa użytkownika oraz jego hasło:
/** Nazwa bazy danych, której używać ma WordPress */
define('DB_NAME', '[...]');
/** Nazwa użytkownika bazy danych MySQL */
define('DB_USER', '[...]');
/** Hasło do bazy danych MySQL */
define('DB_PASSWORD', '[...]');
/** Adres serwera MySQL */
define('DB_HOST', 'localhost');
Upload
Przechodzimy na nasz nowy serwer www, wrzucamy pliki ściągnięte uprzednio z dotychczasowej lokalizacji bloga, oraz przywracamy kopię bazy danych.
Zmiana adresu
Jeśli przy okazji zmiany serwera www, zmieniliśmy również adres pod jakim dostępna będzie nasza strona, to musimy dokonać kilku zmian w samej bazie danych. Jak zwykle, polecam do tego celu skrypt phpMyAdmin, dostępny na większości serwerów.
Wybieramy odpowiednią bazę danych i przechodzimy do zakładki SQL, która pozwoli nam na wykonanie zapytania na naszej bazie danych.

Wykonujemy kolejno trzy poniższe zapytania, zmieniając w nich miejsca oznaczone [STARY_ADRES] oraz [NOWY_ADRES], na odpowiednie wartości. Podając adres, upewnijmy się że zaczyna się on od „http://” oraz nie kończy znakiem slasha „/”.
UPDATE wp_options
SET option_value = replace(option_value, '[STARY_ADRES]', '[NOWY_ADRES]')
WHERE option_name IN ('home', 'siteurl', 'upload_url_path');
UPDATE wp_posts SET guid = replace(guid, '[STARY_ADRES]', '[NOWY_ADRES]');
UPDATE wp_posts SET post_content = replace(post_content, '[STARY_ADRES]', '[NOWY_ADRES]');
Zapytania możemy wykonywać jedno po drugim, lub wszystkie na raz, wklejając je kolejno w okienku SQL.
Oto jak powinno wyglądać przykładowe zapytanie, posłużę się własnym przykładem, podczas przenoszenia bloga z hosta lokalnego na www.bbproject.net:
UPDATE wp_posts SET post_content = replace(post_content, 'http://localhost/bbproject', 'http://www.bbproject.net');
Uruchomienie
Jeśli wszystko zrobiliśmy poprawnie, możemy już odwiedzić naszą stronę pod nowym adresem.
Przydatne dzięki
Dzieki, tego mi bylo trzeba – wszedzie temat jest lizniety od niechcenia.
Ostatnio przenosząc WP zauważyłem że chyba prościej jest wyeksportować bazę do czystego SQL’a i w notatniku zrobić znajdź/zamień niż tymi trzema zapytaniami. Tak czy owak jedno i drugie działa poprawnie.
Oj ręczna zmiana jest dobra.. ale gdy .sql ma kilkadziesiąt mb..
A tak wykonujemy trzy proste manewry w phpmyadmin i mamy wszystko tak jak powinno być. Super artykuł na pewno przyda się nie jednemu zaczynającemu przygodę z wp.