Přesun WordPress stránky z jednoho virtuálního serveru na druhý

Mějme stránku, která běží na CMS WordPress a která je umístěna na nějakém virtuální serveru. Nyní chtějme tuto stránku přesunout na nový virtuální server. Možností je několik. Můžeme k tomu využít i speciálních pluginů. Můžeme k tomu využít FTP a třeba pro export a import databáze PhpMyAdmin, nebo Adminer. A nebo to můžeme udělat jinak, pomocí příkazové řádky. Snadno a rychle a bezpečně a jako bonus bude i přesun certifikátů od letsencrypt, které jste si pro web už dávno vystavili.

Nyní k technické stránce serveru. Popíšu praktický příklad. Měl jsem web a jeden starý virtuální server a nový. Na obou jsem měl nainstalovaný nginx mysql php. Toť vše. A jak probíhal přesun?
Pomocí ssh se stačí přihlásit na nový server. Přejít do složky, kde chceme mít obsah webových stránek. Třeba:

/var/www

Je několik způsobů, jak provést synchronizaci dat ze vzdáleného serveru na ten, kde jste připojeni. Já zvolil scp.

scp -r [uzivatel]@[server]:/var/www/[složka-k-synchronizaci] /var/www/

Takto příkaz provede synchronizaci celé uvedené složky. Hlavní je ten přepínač -r. Za [uzivatel] a [server] stačí doplnit potřebné údaje.

Po přesunu je nutné nastavit správná oprávnění pro složky a soubory

chown -R www-data:www-data /var/www/[slozkka-webu]

Stažení certifikátů bude jednodušší. Stačí použít opět scp

scp -r [uzivatel]@[server]:/etc/letsencrypt/live/[nazevwebu].[domena] /etc/letsencrypt/live
scp -r [uzivatel]@[server]:/etc/letsencrypt/renewal/[nazevwebu].[domena]conf /etc/letsencrypt/renewal

Opět, za [nazevwebu] a [domena] dosadíte své údaje.

Tak a teď převedeme konfiguraci nginx

scp -r [uzivatel]@[server]:/etc/nginx/sites-available/[web] /etc/nginx/sites-available

No a co s databází?

Je nutné se připojit na server, kde je zatím web funkční. Zde je pak nutné vydumpovat databázi do sql souboru.

mysqldump --databases [jmeno-databaze] > databaze.sql

Ano můžete si databaze.sql pojmenovat podle sebe

Podle toho, kam jste si na serveru vydumpovali sql soubor, použijete pak scp. Stačí jen uvést správné umístění na serveru vzdáleném a místo, kam chcete soubor nahrát na novém serveru.

A teď pár příkazů pro vytvoření uživatele a databáze a přiřazení uživatele k databázi. Pokud chcete co nejméně upravovat konfigurační soubory wordpressu, použijte údaje, které tam jsou již zapsané.

mysql
CREATE DATABASE [nazev-databaze];
CREATE USER '[uzivatel]'@'localhost' IDENTIFIED BY '[heslo]';
GRANT ALL ON [nazev-databaze].* TO '[uzivatel]'@'localhost' IDENTIFIED BY '[heslo]' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit


Tak a co jsme to udělali?
Nejprve jsme se přihlásili do mysql serveru. Potom jsme vytvořili databázi. Následně uživatele, kterému jsme nakonec přiřadili oprávnění pro databázi. Exit slouží k odhlášení z databázového serveru.

Na závěr provedeme import databáze.

mysql [jmeno-databaze] < databaze.sql

Nakonec povolíme novou stránku v nginx a restartujeme nginx a nastavíme DNS domény na nový server.

Máme hotovo.

Komentujte

avatar
  Subscribe  
Upozornit na