WordPress návody

Migrace WordPressu na nový hosting / doménu

Autor příspěvku Martin H.

Přenést celý web poháněný WordPressem na nový hosting nebo doménu není tak jednoduché jako přenést statickou html stránku. Nicméně nejde ani o žádnou složitou proceduru. Celý přesun si ukážeme v několika krocích. Nebudeme tentokrát používat žádné pluginy, i když jich několik existuje (např. placený BackupBuddy). Celý proces migrace se dělí na několik částí, které si postupně probereme.

Přesun a úprava souborů

Přihlašte se ke svému FTP účtu na hostingu a překopírujte k sobě na disk všechny soubory WodrPressu, který chcete migrovat. Následně se přihlašte na FTP nového hostingu (pozor, ať si to nespletete :)) a všechny předtím zkopírované soubory ze svého disku nahrajte na nový hosting.

poznámka: Pokud měníte pouze doménu, pak přesuňte data v rámci vašeho hostingu do nové složky (případně ji přejmenujte – pak ale počítejte s tím, že web nebude dostupný, dokud se nechytnou DNS nastavení nové domény).

kopirovani
Jakmile se všechno zkopíruje (může to chvilku trvat), rovnou si upravte soubor wp-config.php, kde se soustřeďte především na nastavení údajů databáze (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). Databázi a uživatele s přístupem k ní už byste měli mít na hostingu vytvořenou, pokud ne, učiňte tak teď. Raději všechna nastavení wp-configu překontrolujte.

Migrace a úprava databáze

poznámka: v případě, že měníte pouze doménu a hosting zůstává stejný, můžete využít původní databázi

Pro migraci databáze je nejlepší využít phpMyAdmin aplikaci, která je obvykle dostupná na každém hostingu. Návod na export a import databáze jsme zde už publikovali, takže není nic snazšího, než postupovat podle něj.

V případě, že měníte doménu je ještě potřeba upravit data v databázi, protože obsahují název staré domény. Toto lze udělat dvěma způsoby:

1. SQL příkazy
v phpMyAdminu spusťte v sekci SQL tyto příkazy (můžete je vložit najednou pod sebe):

UPDATE wp_posts SET guid = REPLACE(guid, 'http://stararaurl.cz', 'http://novaurl.cz');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://stararaurl.cz', 'http://novaurl.cz');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://stararaurl.cz', 'http://novaurl.cz');
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://stararaurl.cz', 'http://novaurl.cz');

– nezapomeňte upravit názvy domén a případně i prefix tabulek v databázi (“wp_” apod.)

2. Přepsání přímo v exportovaném souboru
Ještě než databázi importujete je možné změnit potřebné údaje klasickým textovým nahrazením (CTRL + H) například v PSPadu. Otevřete tedy exportovaný sql soubor a stiskněte CTRL + H (nahradit) a do hledat zadejte starou doménu, do nahradit pak doménu novou a potvrďte. Teď už stačí soubor importovat do nové databáze.

Tip: pro bezproblémovou náhradu staré domény za novou v textovém sql souboru se doporučuje použít nástroj na http://pixelentity.com/wordpress-search-replace-domain/ – limit pro velikost souboru je 5MB, takže ho možná budete muset rozdělit pomocí způsobu popsaného v článku o zálohách databáze.

Úprava trvalých odkazů

Ještě by se vám mohlo stát, především pokud používáte trvalé odkazy (či pěkné URL), že se tyto URL neaktualizují a při otevření článků vám bude web hlásit chybu. To můžete napravit prostým znovuuložením nastavení permalinků. Jděte do WordPress administrace do Nastavení -> Trvalé odkazy, překontrolujte nastavení a potvrďte. Tím se do souboru .htaccess promítnou aktuální hodnoty.

poznámka: pokud v souboru .htaccess máte nějaká vlastní přesměrování apod. raději si soubor před touto změnou zálohujte

Šablony a pluginy

Pokud na webu používáte různé šablony a pluginy je možné, že dojde k rozhození nastavení. To už bude záležet na individuálních potřebách a bude nutné upravit každé nastavení zvlášť. Obvykle půjde o soubory s názvem “options.php”, “config.php” apod.

Pokud si s něčím nebudete vědět rady, napište do komentářů a pokusíme se to společnými silami vyřešit.

O autorovi

Martin H.

Hobby programátor, IT nadšenec a nepoučitelný kritik.

32 komentářů

  • Zdravím WPlamu 🙂 Mám menší problém. Postupoval jsem přesně podle Vašeho návodu a převod se podařil. Do adminu se přihlásím bez problému, trvalé odkazy jsem taky překontroloval. Ale pokud se připojím na stránku, je přístupná pouze úvodní stránka, ostatní stránky hlásí 404. Jako klasická WP lama sem v koncích, prosím o radu :).

  • Ahoj, můžeš sem dát odkaz na tvoji stránku? 🙂 Zkoušel jsi smazat .htaccess (samozřejmě si ho nejdřív zalohuj) a znovu-uložit nastavení trvalých odkazů? Ještě v db zkontroluj hlavní adresu webu.

    • Podle mě to bude způsobené starým .htaccess, mělo by stačit ho smazat a znovu-uložit nastavení trvalých odkazů (vytvoří se automaticky nový .htaccess s aktuálním a správným nastavením).

          • Přesouval jsem rozdělaný eshop na Woocommerce na svůj hosting, abych ho mohl dodělat mimo domov. Kontroloval jsem v databázi, jestli se přepsaly url na novou doménu a všechno vypadá v pořádku.

        • Napiš mi na Zopimu, kouknu na to. Tedy jestli chceš 🙂

          A ještě mě napadá jestli je na hostingu povoleno mod_rewrite a AllowOverride?

          • Tak to nakonec byl mod_rewrite, na hostingu sem neměl zapnutý .htaccess. Děkuju Vám za rychlou a výbornou podporu i za Vaše stránky, čerpám zde mnoho inspirace 🙂

  • Způsobů, jak zmigrovat web na WordPressu existuje více (např. za pomocí pluginu WP All-in-One Migration). Tento způsob ale mám zdaleka nejraději. Večer mě čeká migrace klientova webu, tak mi držte palce, ať to jde bez komplikací 🙂

      • No já teď zkouším po dlouhé době ten manuální postup. Web je poměrně obsáhlý a na ty pluginy a jejich záseky v průběhu procesu už nemám nervy 🙂 Dám pak vědět, jak jsem pořídil.

        • Tak to šlo velmi hladce. Akorát se mi nechtěla naimportovat databáze kvůli nerozpoznané znakové sadě. Stačilo v PSPadu najít a nahradit za utf8. Celá práce byla rychlejší než posledně, když jsem využíval migrační plugin.

  • Ahoj, měnil jsem doménu u wordpressu, takže jsem jen přepsal záznamy v DB, ale úplně se to rozhodilo. Hlavně nastavení šablony. Nevíte někdo co s tím? Trvalé odkazy jsou ok, ale formát je ten původní tudíž bych to musel vše přeformátovat.

        • Tak Duplicator mohu jen doporučit, jednoduché rychlé. Kéž bych neztratil tolik času editací poškozené DB (po předchozí neúspěšné migraci). Nakonec jsem vše vrátil stejně do původního nastavení a za použití tohoto nástroje to byla hračka. Díky moc.

  • Ahoj, migroval jsem starší web jedoucí na wordpressu na nový hosting a to včetně nové domény. S vlastní migrací manuálním způsobem problém ani tak nebyl, ale poté co jsem naimportoval DB, tak jsem s nemilým překvapením zjistil, že se jednotlivé datové soubory považované za attachmenty a nalézající se v adresářové struktuře “wordpress\wp-content\uploads\…” všechny do jednoho zdublovaly (jejich jména se rozšířila o číselný increment) a v databázi jsou nyní odkazy nikoli na ty původní, ale na ty nově vzniklé. Všechno šlape a funguje, akorát to teď na serveru zabírá jednou tolik místa a budu muset docela pracně vyzobávat ty původní, na něž nyní nic neodkazuje, abych uvolnil jimy zbytečně zaplácnutý prostor. Nevíte někdo, jak k tomu mohlo dojít?

  • Cau, jaky je postup se starym webem z ohledem na SEO. Je dobre ho vyradit nebo ponechat nez se preindexuji page. Neni tam potom riziko sankce za duplikovany obsah?

    Diky

  • Dobrý den,

    já na migraci webu mohu doporučit dle vlastních zkušeností All in One Migration. Převede to všechno, vč. všech nastavení.

  • Zdravím, tak jsem zmigroval zapomoci hostingu, neříkam, že se to povedlo, to se uvidí. Teď mám ale problém, kde se přes přihlášení sice přihlásím, ale hodí mi to do administrace starého webu na jiné doméně. Nevíte co s tím? Díky

  • Dobrý den,
    přesouval jsem web stránky ve wordress z jednoho serveru na druhý. Zvolil jsem způsob 1/ překopírování souborů, 2/ export a import sql databaze, 3/ využití SQL příkazu pro nahrazení staré domény prozatím na absolutní cestu k wp souborům na serveru. Vše funguje OK, ale WP mě, po přihlášení, informuje varovnou hláškou – viz. foto na odkazu:
    http://jaromir-hybner.cz/Problem_Hlaska_WP_Po_Prihlaseni_DETAIL.jpg
    Nevím o jaký parametr má jít a jak to vyřešit. Děkuji za jakoukoli případnou radu. Jarda

  • Dobrý den,

    po migraci na novou doménu mi po přihlášení do WP admina píše toto:

    Fatal error: Uncaught Error: Call to undefined function set_screen_options() in /data/web/virtuals/238859/virtual/www/wp-admin/admin.php:105 Stack trace: #0 /data/web/virtuals/238859/virtual/www/wp-admin/index.php(10): require_once() #1 {main} thrown in /data/web/virtuals/238859/virtual/www/wp-admin/admin.php on line 105
    Váš web se momentálně potýká s technickými problémy. Zkontrolujte emailovou schránku administrátora pro další instrukce.

  • Zdravím. Udělal jsem to přesně podle návodů – nejdřív tak, jak jsem zvyklý (překopírování souborů, dump DB atd.), a zdálo se, že je to ok. Jenže u virtuálních produktů ke stažení (e-knih) ve Woocommerce byla URL z původní domény. Zkusil jsem tedy postup 2 a to nepomohlo. Pak jsem zkusil postup 1 a ta URL na dokumenty už tam nejsou vůbec. Je to záhada…

Zanechat komentář

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!

Tomáš Cirkl

Tomáš Cirkl

WordPress specialista

Blog WPlama.cz píši už více než 5 let. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.