Jak přesunout WordPress na jiný server

3.1.2014

Návod na přesunutí webu na WordPressu z jednoho serveru na druhý.

Občas potřebuji přesunout běžící WordPress z nějakého umístění do jiného. Například kvůli rozjetí vývojové verze a nebo naopak nasazení vývojové verze na ostrý server. Vše, co je k tomu potřeba, je zkopírování aplikace, zkopírování databáze a pár drobných nastavení.

Přesun aplikace:

Aplikaci většinou přesouvám přes FTP, ale když mám přístup ke konzoli, použiju radši scp. Nejjednodušší je použít nějakého grafického FTP klienta, ale pokud se vyskytnou problémy s přesunem (špatně nastavená práva atd.), tak radši použiju těžší kalibr – konzolového klienta lftp. Umí všechno, na co si člověk vzpomene, ale v tomto případě mi bude stačit jeho funkce mirror.

Zkopírování pomocí lftp (linux)

  1. Připojím se na ftp server, kde běží WordPress teď, pomocí lftp. V konzoli zkopíruji adresář s wordpressem na vzdáleném serveru do adresáře, ve kterém jsem spustila FTP klienta. V lftp jdou používat standardní unixové příkazy ls, cd a další.
  2. Z aktuálního adresáře to nakopíruju tam, kde to má být.

Přesun databáze

Přesun pomocí phpMyAdmin

  1. Přihlásím se do phpMyAdmin, pomocí uživatelského jména a hesla, které, pokud je neznám, najdu v konfiguračním souboru WordPressu wp-config.php. Potřebuju tedy znát jenom adresu, na které běží phpMyAdmin.
  2. Zobrazím si databázi WordPressu, kterou chci kopírovat (název databáze taky najdu ve wp-config.php)
  3. Nahoře vyberu záložku Export a potvrzovacím tlačítkem databázi vyexportuji.

    phpmyadmin-export
  4. V phpMyAdminu na serveru, kam chci databázi nakopírovat, importuji stažený soubor. Některé starší instalace phpMyAdminu neumí importovat větší soubory (záleží taky na nastavení php na serveru)

Přesun v konzoli

  1. Vydumpuju si databázi, kterou chci zkopírovat
  2. Na cílovém serveru si do již vytvořené databáze nahraju dump, nakopírovaný ze zdrojového serveru

Nastavení správných cest v databázi

Wordpress má v databázi uložené url adresy, musím je tedy přepsat na nové. Adresy jsou tam dvě, obě v tabulce wp_options, ve sloupci option_name jsou to hodnoty home a siteurl

phpmyadmin-urls

Užitečná může být také změna admin e-mailu, na který si pak můžu nechat poslat zapomenuté heslo.

phpmyadmin-email

Nastavení databáze v souboru wp-config.php

V kořenovém adresáři WordPressu je soubor wp-config.php, ve kterém je potřeba nastavit přístupové údaje k databázi

Když to nefunguje…

  • Je správně nastavený vlastník a práva souborů WordPressu?
  • Není špatně nastavený .htaccess? Když WordPress instalujeme, nastaví si .htaccess správně, ale po přesunu může být vše jinak.
  • Při nahrávání obrázků to vyhazuje chybu “Nepovedlo se vytvořit adresář uploads/2013/11. Zkontrolujte, jestli má nadřazený adresář práva zápisu?” – problém může být jednak v nastavení práv, jednak v nastavení správného adresáře, kam se soubory ukládají (Nastavení/Média).