10 kroků jak zmigrovat WordPress na nový hosting

By | 12/11/2025

Last Updated on 13/11/2025 by administrator

10 kroků jak zmigrovat WordPress na nový hosting

10 kroků jak zmigrovat WordPress na nový hosting

Motivace:

Migrace webu postaveného na WordPressu nemusí být složitá, pokud se postupuje systematicky.

V tomto článku se podíváme na kompletní proces přesunu WordPressu na nový hosting — od stažení souborů a databáze, přes jejich nahrání na nový server s Ubuntu 24.04, až po získání a nastavení SSL certifikátu od Let’s Encrypt.

Tneto článek – 10 kroků jak zmigrovat WordPress na nový hosting je rozdělen do přehledných kroků, které zvládne i uživatel se základní znalostí Linuxu a práce s FTP.

Prerekvizita:

Před samotnou migraci je potřeba připravit samotný nový webový server a je možné postupovat podle tohoto článku – Instalace LAMP na Ubuntu 24.04 (Linux, Apache, MySQL, PHP)

Instalace LAMP na Ubuntu 24.04 (Linux, Apache, MySQL, PHP)

Implementace – 10 kroků jak zmigrovat WordPress na nový hosting:

1. Stažení všech souborů z původního hostingu přes FTP:

Přes libovolného FTP klienta stáhnout soubory z původního hostingu do PC. Zde je použitý FTP klient Filezilla. V mém případě chci migrovat stránky původního webu https://martinuvzivot.cz.

10 kroků jak zmigrovat WordPress na nový hosting

2. Stažení databázového souboru z původního hostingu:

Během stahování všech WordPress souborů – stáhnout databázový soubor.

Doporučuji stáhnout a nainstalovat plugin BackWPup pro WordPress na původním hostingu:

BackWPup stazeni databaze

V pluginu BackWPup stáhnout databázový soubor:

BackWPup stazeni databaze

10 kroků jak zmigrovat WordPress na nový hosting

To stáhne zabalený soubor, což je v tomto případě 2025-10-25_22-19-17_YMJVIDEQ04_DBDUMP.tar, který je potřeba extrahovat. V tomto zabaleném souboru se nachází databázový soubor – zde např. databa1514.sql.

3. Překopírování všech WordPress souborů z původního na nový hosting:

V bodě č. 1 byly nakopírované všechny soubory z původního hostingu do PC. Teď budou nakopírovány na nový hosting server s IP adresou 192.168.0.144, kde v tomto případě běží Ubuntu 24.04.

V článku Instalace LAMP na Ubuntu 24.04 byl vytvořený nový adresář martinuvzivot.cz (podle doménového jména) v /var/www/ složce. Překopírovat všechny WordPress soubory do této složky martinuvzivot.cz.

Pozn. Je dobré si zjistit celkovou velikost všech souboru WordPressu, které se budou kopírovat, a tak si alokovat dostatek místa pro nový web (v praxi jsem si nealokoval dostatek místa a pak se divil, proč mi web nechce najet):

10 kroků jak zmigrovat WordPress na nový hosting

4. Nastavení vlastníka a zápisu pro WordPress:

Ačkoliv bylo nastavení vlastníka pro celou složku /var/www/martinuvzivot.cz provedeno už v článku Instalace LAMP na Ubuntu 24.04, po překopírování nových souborů je nutné vlastnictví jednotlivých složek znovu upravit.

WordPress potřebuje mít možnost zapisovat do některých složek, například:

  • wp-content/uploads (nahrávání médií)
  • wp-content/plugins (instalace pluginů)
  • wp-content/themes (instalace a úprava témat)

Pokud vlastník souborů a složek není uživatel webového serveru (www-data), WordPress se sice pokusí zapisovat, ale nedostane k tomu oprávnění a některé funkce (nahrávání souborů, instalace pluginů/témat) selžou.

Příkaz níže nastaví, aby všechny soubory a složky ve WordPressu patřily uživateli a skupině www-data, což je standardní uživatel, pod kterým běží webový server Apache nebo Nginx:

chown -R www-data:www-data /var/www/martinuvzivot.cz

5. Překopírování databázového souboru na nový hosting:

Databázový soubor, což je v tomto případě databa1514.sql, nakopírovat na nový hosting server např. do /home složky. K překopírování byl zde opět použitý FTP klient Filezilla.

Připojit se na konzoli nebo přes SSH na nový hostingový server.

Před překopírováním původní databaže je potřeba zjistit ze souboru wp-config.php parametry nastavení původní databáze jako jméno databáze, uživatele databáze a heslo databáze. To lze zjistit pomocí příkazu níže:

Vytvořit stejné jméno databáze jako bylo na starém hostingu. To lze zjistit souboru wp-config.php a ověřit pomocí příkazu níže:

cat /var/www/martinuvzivot.cz/wp-config.php | grep DB_

Výstup příkazu cat /var/www/martinuvzivot.cz/wp-config.php | grep DB_ nastavené parametry původní databáze:

define('DB_NAME', 'databa1514'); 
define('DB_USER', 'databa1514'); 
define('DB_PASSWORD', '1kYqWv9rqf'); 
define('DB_HOST', 'localhost:3312'); 
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');

Z tohoto výstupu vidíme, že původní databáze má:

  • název: databa1514
  • uživatel: databa151
  • heslo: 1kYqWv9rqf
  • databázový server běží na: localhost:3312

Přihlášení do MariaDB jako root. Heslo odpovídá tomu, které bylo nastaveno dříve při instalaci nebo konfiguraci MariaDB, viz ve článku Instalace LAMP na Ubuntu 24.04 (Linux, Apache, MySQL, PHP).

mysql -u root -p

Výpis všech databází:

MariaDB [(none)]> SHOW DATABASES;

Pokud na serveru existuje původní databáze WordPressu s názvem wordpress, která se již nepoužívá, je možné ji odstranit následujícím příkazem níže. Tento příkaz trvale smaže celou databázi včetně všech tabulek a dat.

MariaDB [(none)]> DROP DATABASE wordpress;

Vytvořit novou prázdnou databázi (DB_NAME) se stejným názvem, jaký měl WordPress na původním hostingu, v tomto případě databa1514:

MariaDB [(none)]> CREATE DATABASE databa1514;

Následně vytvořit uživatele databáze (DB_USER) se jménem databa1514 a heslem (DB_PASSWORD) 1kYqWv9rqf v obou případech:

MariaDB [(none)]> CREATE USER 'databa1514'@'localhost' IDENTIFIED BY '1kYqWv9rqf';

Udělit novému uživateli plný přístup k nově vytvořené databázi:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON databa1514.* TO 'databa1514'@'localhost';

Projevení nově nastavených práv se zajistí příkazem:

MariaDB [(none)]> FLUSH PRIVILEGES;

Po dokončení všech operací ukončit konzoli MariaDB:

MariaDB [(none)]> exit

Import původní databáze se provede příkazem níže. Při výzvě k zadání hesla je potřeba použít původní heslo databáze (DB_PASSWORD), což v tomto případě bylo 1kYqWv9rqf:

mysql -u databa1514 -p databa1514 < /home/databa1514.sql

Ve většině případech MySQL/MariaDB databáze běží na portu TCP/3306, pokud tomu tak je, je potřeba ještě souboru wp-config.php ve složce /var/www/martinuvzivot.cz/ vymazat původní port 3312:

vi /var/www/martinuvzivot.cz/wp-config.php

Výsledný parametr přepsat takto:

define('DB_HOST', 'localhost');

Pokud port není uveden, použije se automatický defaultní port 3306, parametr localhost, pak říká, že databáze se nachází na tomto serveru.

6. Testování nového webu lokálně:

Je potřeba přesměrovat doménu martinuzivot.cz na nový server 192.168.0.144. To se provede v souboru hosts obvykle ve Windows složce C:\Windows\System32\drivers\etc\, jde je potřeba přidat řádek níže:

192.168.0.144 martinuvzivot.cz

Po změně v souboru hosts je potřeba promazat DNS cache. Na Windows se použije:

ipconfig /flushdns

Doporučené je vymazat cache prohlížeče. Je potřeba prozatím použít anonymní režim jakéhokoliv prohlížeče, protože jen v něm je umožněno přidat výjimku zatím neplatného certifikátu a načíst tak web i bez validního SSL certifikátu.

Pokud se stránka nenačítá a píše hlášku níže:

403 forbidden

je možné dočasně deaktivovat .htaccess soubor. Stránka se tak načte bez pravidel přepisování URL:

mv /var/www/martinuvzivot.cz/.htaccess /var/www/martinuvzivot.cz/htaccess.bak

V prohlížeči kliknout na Advanced a následně Accept the Risk and Continue:

warning potential security risk ahead

Stránka webu martinuvzivot.cz se načetla v pořádku. Pokud se např. používají i Google reklamy, taky jsou také zachovány:

Migrace WordPressu na nový hosting krok za krokem

Nicméně jednotlivé odkazy budou pravděpodobně házet chybu níže, protože se nevygeneroval nový .htaccess soubor:

Co by mělo jít otevřít je přihlášení do wp-admin, jelikož složka wp-admin fyzicky na serveru existuje:

martinuvzivot.cz

Nový soubor .htaccess se vygeneruje kliknutím na Nastavení > Trvalé odkazy. Není potřeba ani klikat na Uložit změny, i tak se .htaccess vytvoří:

wordpress - Nastavení > Trvalé odkazy

Pozn. Problém může dělat plugin Really Simple Security, který může v prohlížeči psát ERR_TOO_MANY_REDIRECTS. V tomto případě je možné postupovat podle tohoto článku – https://martinuvzivot.cz/really-simple-ssl-err_too_many_redirects-chyba/

7. Stažení SSL certifikátu pro doménu:

Díky Certbotu od Let’s Encrypt můžete snadno nasadit HTTPS zdarma a s možností automatického prodlužování certifikátu.

Aktualizovat lokální seznam balíčků z repozitářů systému:

sudo apt update

Nainstalovat nástroj Certbot pro získání a obnovu SSL/TLS certifikátů od Let’s Encrypt a plugin Apache pro Certbot:

sudo apt install certbot python3-certbot-apache

Existují dva způsoby, jak získat certifikát pro domény martinuvzivot.cz a www.martinuvzivot.cz:

Možnost A – doména již směřuje na nový server:

Pokud vaše doména směřuje přímo na nový server, lze použít jednoduchý příkaz Certbotu pro Apache:

certbot --apache -d martinuvzivot.cz -d www.martinuvzivot.cz

Výpis příkazu certbot –apache -d martinuvzivot.cz -d www.martinuvzivot.cz ukazuje instalaci, kde bude vyzváno:

  • k zadání e-mailu pro upozornění a obnovu certifikátu,
  • k souhlasu s podmínkami Let’s Encrypt,
  • volitelně k sdílení e-mailu s EFF.

Aby se ověřilo, zda automatické obnovení funguje, je možné spustit simulaci použitím příkazu níže:

sudo certbot renew --dry-run

Pozn. Pokud lze vidět chybová hláška je možné, že doménové jméno stále nebylo přesunuté na novou veřejnou IP adresu.

Možnost B – doména ještě nesměřuje na nový server:

Pokud doménové jméno martinuvzivot.cz stále směřuje na starý hosting nebo www nemá platný DNS záznam, Certbot nebude moci certifikát vydat klasickým způsobem. V takovém případě je nutno použít DNS-01 challenge:

certbot -d martinuvzivot.cz -d www.martinuvzivot.cz --manual --preferred-challenges dns certonly

Výpis příkazu certbot -d martinuvzivot.cz -d www.martinuvzivot.cz –manual –preferred-challenges dns certonly ukazuje, že certbot vygeneroval TXT záznamy, které je potřeba přidat do DNS pod _acme-challenge.martinuvzivot.cz a_acme-challenge.www.martinuvzivot.cz.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for martinuvzivot.cz and www.martinuvzivot.cz

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.martinuvzivot.cz.

with the following value:

BD1xX72bWK8Zk6z2H4luNU8cEwknt1F1b2ia0GXdhn8

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.www.martinuvzivot.cz.

with the following value:

H2Ukd4HmfvARFAGlnbPWLBrAyXRq1GUq9P_QsdObUqc

(This must be set up in addition to the previous challenges; do not remove,
replace, or undo the previous challenge tasks yet. Note that you might be
asked to create multiple distinct TXT records with the same name. This is
permitted by DNS standards.)

Before continuing, verify the TXT record has been deployed. Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.www.martinuvzivot.cz.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Před stiknutím klávesy Enter, je nejprve potřeba do DNS přidat TXT záznam typu _acme-challenge u registrátora domény. V tomto případě jej mám u WEDOSu čili je možné postupovat podle tohoto článku https://martinuvzivot.cz/nastaveni-acme-challenge-v-dns/

Nastavení _acme-challenge v DNS u WEDOS

Po úspěšném přidání TXT záznamu v DNS a po propagaci TXT záznamů, lze stisknout tlačítko Enter. Výstup by měl ukázat, že byl certifikát úspěšně stažený a uložený.

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/martinuvzivot.cz/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/martinuvzivot.cz/privkey.pem
This certificate expires on 2026-02-09.
These files will be updated when the certificate renews.

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Z výpisu výše je patrné, že certifikát se nebude automaticky obnovovat, protože byla použita Možnost B s DNS-01 challenge a parametrem –manual.

Pokud to dosud nebylo provedeno, je nyní potřeba u registrátora domény upravit DNS záznamy a nasměrovat doménu martinuvzivot.cz a www.martinuvzivot.cz na novou veřejnou IP adresu pomocí A záznamu (A record).

8. Simulace automatického obnovení certifikátu:

Aby se ověřilo, zda automatické obnovení funguje, je možné spustit simulaci použitím příkazu níže:

sudo certbot renew --dry-run

Pozn. Pokud lze vidět chybová hláška je možné, že doménové jméno stále nebylo přesunuté na novou veřejnou IP adresu.

Výstup příkazu sudo certbot renew –dry-run ukazuje, že simulace automatické obnovy proběhla úspěšně:

Processing /etc/letsencrypt/renewal/martinuvzivot.cz.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for martinuvzivot.cz and www.martinuvzivot.cz

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/www.martinuvzivot.cz.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for www.martinuvzivot.cz

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following simulated renewals succeeded:
  /etc/letsencrypt/live/martinuvzivot.cz/fullchain.pem (success)
  /etc/letsencrypt/live/www.martinuvzivot.cz/fullchain.pem (success)

Hotovo. Věřím, že Vám tento článek 10 kroků jak zmigrovat WordPress na nový hosting pomohl.

 

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *