Přechod s WordPressem na vlastní server

Upraveno 6 prosince, 2023 00:26

Jelikož tento web narostl do rozměrů, kdy mi klasický, sdílený webhosting přestal stačit, rozhodl jsem se jít cestou vlastního virtuálního serveru. Šlo mi nejen o rychlost, ale i možnost vyzkoušet si nové věci. A sdílený webhosting Vám toto neumožní. Limity i verze PHP jsou jasně dané, stejně jako moduly či nastavení serveru. V tomto článku bych chtěl povrchově ukázat, co takový přechod s WordPressem na vlastní server obsahuje. Co je potřeba nainstalovat, nakonfigurovat a jak zmigrovat WordPress. Bez pluginů.

Jaký jsem zvolil server

Nikde se netajím, že původní webhosting byl pod Forpsi. A celou dobu dostačoval. Nicméně jak časem rostly mé nároky na výkon i různá nastavení serveru, rozhodl jsem se pro migraci pod VPS. Nebyla to chyba hostingu. Prostě jsem si chtěl s webem hrát víc a za hranice toho, co sdílený hosting umožňuje. VPS je opět pod Forpsi na hypervizoru OpenStack. Konkrétní konfigurace je 4 vCPU a 8GB ram. Co mi vyhovuje na této platformě nejvíc, je možnost vytváření snapshotů a také backup systém.

Před jakýmkoliv zásahem do serveru si mohu vytvořit snapshot, ke kterému se během několika minut vypnutého serveru mohu ihned vrátit v momentě, kdy se cokoliv nepovede. Zároveň mám aktivní zálohovací systém přes Cloud Backup službu, kde mám nastavené pravidelné zálohy jak samotného obsahu webu, tak MySQL databáze. Zálohy se provádí automaticky v předem stanovený den a hodinu. Díky tomu mám k dispozici zálohy FTP cca týden nazpět a MySQL pak 30 dní nazpět. K tomu se dostanu níže. Operační systém je Linuxové Ubuntu.

Přechod s WordPressem na vlastní server. Co vše budete instalovat.

Jak jsem uvedl výše, na VPS byl nainstalovaný holý linuxový systém na platformě Ubuntu. Pro pohodlné používání serveru jsem doinstaloval a nakonfiguroval:

  • Apache server
  • MySQL server
  • VSFTP server
  • phpMyAdmin
  • PHP 8.26 včetně potřebných balíčků
  • SSL certifikát Let’s Encrypt
  • Webmin

Jelikož na internetu je velké množství návodů, nebudu zbytečně popisovat u každé položky instalaci a konfiguraci, ale vždy odkážu na jasný návod, který mám sám odzkoušený a který funguje. Pro připojení na server používám Putty, jako souborový manažer na serveru poté Midnight Commander.

Konfigurace firewallu

Přechod s WordPressem na vlastní server

Co jsem udělal jako první, byla konfigurace firewallu a potřebných portů. Pro mě důležité porty jako 20, 21, 22 a 10000 jsem automaticky rovnou na firewallu nastavil pouze na předem definované ip adresy, aby tyto klíčové porty nebyly dostupné z žádného jiného připojení. Jde tedy hlavně o porty pro FTP, SFTP a SSH. Apache a port 80 a 443 je na firewallu povolený odevšad. Správné nastavení firewallu je klíčové pro bezpečnost. Je tedy vždy dobré si předem rozmyslet, jaké služby povolíte a také odkud je povolíte.

Kompletní návod jak pracovat s firewallem na Ubuntu najdete zde: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-20-04

Apache server

Přechod s WordPressem na vlastní server

Jako webový server jsem si zvolil Apache2 server. S ním jsem přišel zatím asi nejvíce do styku. Apache server je jedním z nejpoužívanějších webových serverů na světě. Webový server je počítačový program, který zajišťuje přijímání a poskytování webových stránek.

Jedním z hlavních důvodů, proč je Apache tak populární, je jeho otevřený zdrojový kód. To znamená, že kdokoli může získat přístup k zdrojovému kódu Apache serveru, upravit ho a používat ho zdarma. Tímto způsobem Apache nabízí flexibilitu a možnost přizpůsobení serveru podle potřeb uživatele.

Apache server podporuje různé protokoly a technologie, jako je například HTTP (Hypertext Transfer Protocol), HTTPS (HTTP Secure), SSL (Secure Sockets Layer) a TLS (Transport Layer Security). Tyto technologie zajišťují bezpečnou komunikaci mezi serverem a klientem, což je důležité při přenosu citlivých dat, jako jsou hesla nebo platební informace.

Apache server je také schopný provádět různé úkoly jako komprese dat, cachování (ukládání často používaných dat pro rychlejší přístup) a řízení přístupu uživatelů k webovým stránkám pomocí souboru s pravidly (např. .htaccess).

Kompletní návod na instalaci Apache naleznete zde: https://linuxhint.com/install_apache_web_server_ubuntu/

Zároveň doporučuji později popřemýšlet o povolení souboru .htaccess pro rewrite a různá nastavení a také povolení mod_deflate pro GZIP kompresi.

GZIP komprese: https://ubiq.co/tech-blog/enable-gzip-compression-apache/
Soubor .htaccess: https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-20-04

MySQL databáze

Přechod s WordPressem na vlastní server

Jelikož WordPress kromě webového serveru potřebuje i databázi, budete muset nainstalovat i zprovoznit MySQL.

Instalace MySQL spolu s vytvořením databáze pro Váš WordPress není náročná. Kompletní návod, podle kterého se můžete řídit je zde: https://computingforgeeks.com/how-to-install-mysql-8-on-ubuntu/?utm_content=cmp-true

Na co je dobré nezapomínat jsou zálohy. Osobně jsem vyřešil zálohování tak, že pomocí služby CRON každý den vygeneruji na serveru .sql zálohu své databáze a tu uložím do předem definované složky. Zároveň mám v příkazu definováno, aby se zálohy starší 30 dní mazaly. Díky tomu mám na serveru složku se zálohou databáze na 30 dní zpět. Tuto složku pak díky službě cloud backup zálohuji opět každý den na externí úložiště, aby byly zálohy v kopii i mimo server.

phpMyAdmin

Pro pohodlnější práci s databází bych Vám také doporučil instalaci phpMyAdmin. Bude se Vám hodit v momentě, až budete migrovat server. V návodu níže je zároveň vysvětleno i zabezpečení přístupu k phpMyAdmin druhou vrstvou hesla a loginu, pomocí souboru .htaccess a .htpasswd. Pro migraci databáze pomocí phpMyAdmin budete muset také v nastavení php.ini souboru navýšit limity pro upload dat. Základní nastavení Vám pro upload pravděpodobně stačit nebude. Kompletní návod včetně zabezpečení pomocí .htaccess souboru a .htpasswd souboru najdete zde: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-20-04.

Pro novou verzi PHP 8 a výše doporučuji nainstalovat poslední verzi phpMyAdmin. V opačném případě Vás u starší verze phpMyAdmin neminou chybové hlášky PHP. Nová verze PHP 8 a starší verze phpMyAdmin si příliš nerozumí. U verze PHP 7.4 na starším phpMyAdminovi chyby nejsou.

Přechod s WordPressem na vlastní server

VSFTPD – FTP server

FTP -VPS

Pro připojení na server pro nahrávání dat můžete použít buď SFTP na portu 22, nebo klasický FTP server na portu 20 a 21. Já použil pro připojení na server FTP pomocí VSFTPD. V článku níže můžete vidět nejen instalaci a konfiguraci, ale také zabezpečení přenosu pomocí certifikátu a uzamčení uživatele do jeho vlastní složky díky chroot local. Uzamčení uživatele byste měli provést z toho důvodu, aby uživatel FTP neměl přístup nikam jinam, než do předem určené složky na serveru. Nesmí mít možnost se pohybovat kdekoliv jinde. Návod na instalaci a konfiguraci VSFTPD naleznete zde: https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-20-04

PHP 8

Pro svůj WordPress jsem si zvolil verzi PHP 8.26. Je to jedna z posledních verzí a díky tomu budu mít na delší čas vystaráno s případnou aktualizací jak samotného PHP, tak jeho modulů. Velmi dobrý návod na instalaci i konfiguraci najdete zde: https://medium.com/@laraveltuts/how-to-install-and-run-php-8-x-on-ubuntu-20-04-8f18e7565c41

Po instalaci PHP na server pak můžete provést případnou úpravu souboru php.ini, kde můžete upravit např.:

  • max_execution_time – doba v sekundách, po kterou může běžet skript, než dojde k jeho násilnému ukončení
  • memory_limit – paměť přidělená webhostingu
  • upload_max_filesize – maximální velikost pro upload pomocí php
  • post_max_size – maximální velikost pro upload pomocí php
  • max_file_uploads – maximální počet naráz uploadovaných souborů pomocí php

Spolu s php jsem na server instaloval ještě moduly pro cache. Konkrétně Memcached, OPCache a Redis server. Tyto moduly Vám výrazně pomohou s cache dat a se zrychlením WordPressu. Pro vyčištění OPCache pak můžete použít php skript. Memcached se dá vyčistit v případě nutnosti na serveru pomocí telnetu na port 11211 a příkazu flush_all.

Memcached: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-memcached-on-ubuntu-20-04
OPCache: https://linuxways.net/ubuntu/how-to-install-php-opcache-module-on-ubuntu-20-04/
Redis server: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-20-04

SSL certifikát Let´s Encrypt

Instalaci a konfiguraci SSL certifikátu od Let´s Encrypt budete mít výrazně zjednodušenou, a to včetně prodlužování díky Certbotovi. Zde nemá smysl nějaké delší povídání a rovnou se můžete podívat na postup zde: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04

Pokud jako já používáte DNS CloudFlare, nezapomeňte v SSL komunikaci zapnout režim Full Strict. Tento režim totiž počítá s SSL certifikátem na straně serveru. Díky tomu CloudFlare ví, že komunikace mezi ním a Vaším serverem bude šifrovaná pomocí Vašeho certifikátu Let’s Encrypt a komunikace mezi CloudFlare a prohlížečem uživatele bude šifrovaná jejich certifikátem. Již jsem o tom psal konkrétně zde: Jak nastavit SSL u webu na WordPressu a používání služby CloudFlare

Webmin

Webmin můžete použít už jen jako takovou třešničku na dortu. Je to grafické rozhraní, které běží na portu 1OOOO. Díky němu máte větší přehled o serveru přímo z webového prohlížeče, včetně základních grafů vytížení procesoru, paměti, sítě a disku.

Přechod s WordPressem na vlastní server

V tomto bodě byste měli mít server plně připravený k migraci. Samotná migrace podle velikosti webu potrvá řádově menší desítky minut a není nijak složitá. V principu se skládá z těchto kroků

  • záloha dat na původním FTP
  • záloha dat původní MySQL databáze
  • upload dat na FTP Vašeho serveru
  • import MySQL databáze na Váš server
  • úprava konfiguračního souboru WordPressu (wp-config.php)

Celý princip migrace spočívá v tom, že si stáhnete data z původního FTP a provede export MySQL databáze. Data FTP pomocí VSFTP nahrajete do předem určené složky Vašeho nového webu a export MySQL databáze pak pomocí phpMyAdmin naimportujte do své nové databáze. Zároveň nesmíte zapomenout na FTP editovat v kořenové složce WordPressu soubor wp-config.php, kde je uložené připojení k databázi. Musíte změnit server na localhost a také upravit jméno, login a heslo databáze na Vaši novou.

Celý přesunutý web pak můžete nanečisto doladit a otestovat pomocí HOSTS souboru: Jak testovat webhosting, aniž by na něj doména směrovala

Jakmile vše funguje dle Vašich představ, upravíte DNS záznamy domény, kde změníte ip adresu A záznamu na IP adresu Vašeho nového VPS. Po uběhnutí TTL limitu poběží Vaše doména z již nového serveru.

Přechod s WordPressem na vlastní server závěrem

A to je ve stručnosti vše. Přibližně takto vypadá celý přechod s WordPressem na vlastní server. Doplním ještě, že zde nikde neuvádím zprovoznění mailového serveru, nebo funkce mail. Veškeré formuláře na webu řeším pomocí smtp připojení na externí e-mail a tedy jsem ani jedno z toho na vlastním serveru nepotřeboval. Pokud se i Vy pustíte do migrace webu na vlastní server, přeji mnoho zdaru a hlavně, pevné nervy.

Více článků o WordPressu

Celá kategorie je zde

Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.

Byl pro Vás tento článek užitečný?

Klikni na počet hvězd pro hlasování.

Průměrné hodnocení. 0 / 5. Počet hlasování: 0

Zatím nehodnoceno! Buďte první

Jak užitečný vidíte tento článek.

Sledujte mě na sociálních médiích.

Je mi líto, že pro Vás nebyl článek užitečný.

Jak mohu vylepšit článek?

Řekněte mi, jak jej mohu zlepšit.

newsletter

Odebírejte Newsletter

Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.  

Odebírat
Upozornit na
guest
0 Komentáře/ů
Nejstarší
Nejnovější Nejvíce hlasováno
Vložené zpětné vazby.
Zobrazit všechny komentáře.

Pokud mi chcete napsat rychlou zprávu, využije, prosím, níže uvedený
kontaktní formulář. Děkuji.

Další Kontaktní údaje