Home > Webmastering > Przenoszenie WordPress’a na inny serwer

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.

  1. solaris
    5 grudnia 2011 at 18:51 | #1

    @kikos

    Wywal wpis: ‘CREATE DATABASE `…_cba_pl` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;’ – twój serwer nie pozwala Ci w ten sposób tworzyć bazy danych;

    i zamiast tego wpisz `USE twoja_baza_danych;`

    Musisz (pewnie) w CPanelu stworzyć bazę danych.

  2. 4 stycznia 2012 at 20:28 | #2

    Właśnie uruchomiłem pierwszą stronke na WP i napotkałem ten problem z migracją ;)
    Chyba najwygodniej (dla ludzi nie obeznanych z sql) jest wyedytować plik .sql ze zrzutem bazy. Odpalasz w notepadzie i zamieniasz z automatu wszystkie np localhost na nowy adres.

    pozdro. Pandik.

  3. 20 marca 2012 at 18:54 | #3

    Dzięki za tutorial! Na pewno będzie pomocny przy przenoszeniu dzisiaj

Strony komentarza
  1. 13 grudnia 2010 at 18:56 | #1