Jak přesunout WordPress na jiný server
3.1.2014Ná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)
- Připojím se na ftp server, kde běží WordPress teď, pomocí lftp.
12# na heslo se aplikace zeptalftp -u uzivatel ftp.nejakadomena.cz12lftp :~> cd cesta_k_wordpressulftp :~> mirror adresar_s_wordpressem
-
Z aktuálního adresáře to nakopíruju tam, kde to má být.
123lftp :~> -u uzivatel,heslo ftp.kamtobudukopirovat.czlftp :~> cd adresar_kde_to_ma_bytlftp :~> mirror -R adresar_s_wordpressem
Přesun databáze
Přesun pomocí phpMyAdmin
- 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.
- Zobrazím si databázi WordPressu, kterou chci kopírovat (název databáze taky najdu ve wp-config.php)
-
Nahoře vyberu záložku Export a potvrzovacím tlačítkem databázi vyexportuji.
- 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
-
Vydumpuju si databázi, kterou chci zkopírovat
12#volba -p pro zadání hesla, když heslo nezadám, zeptá se měmysqldump -p nazev_databaze > dump_databaze.sql
-
Na cílovém serveru si do již vytvořené databáze nahraju dump, nakopírovaný ze zdrojového serveru
12mysql -u uzivatel_databaze -p nazev_databazemysql> source dump_databaze.sql
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
Užitečná může být také změna admin e-mailu, na který si pak můžu nechat poslat zapomenuté heslo.
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
1 2 3 4 5 6 7 8 9 |
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'moje_databaze'); /** MySQL database username */ define('DB_USER', 'uzivatel'); /** MySQL database password */ define('DB_PASSWORD', 'heslokdatabazi'); |
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).