Nginx je známý webový server, který se používá k poskytování webových stránek na internetu. Nginx, který byl poprvé uveden na trh v říjnu 2004, se rychle stal webovým serverem a proxy serverem, který si vybraly tisíce webových vývojářů. Oproti svému konkurentovi Apache má řadu výhod. V tomto článku se naučíme, jak nainstalovat Nginx na Ubuntu a používat jej k hostování WordPressu.
Než začneme, dovolte mi jednoznačně prohlásit, že se nejedná o srovnání Nginx vs Apache nebo jiného webového serveru. Apache byl představen v roce 1999 a nabízí několik užitečných funkcí. Pokud si přejete nainstalovat WordPress na Apache, již máme článek na toto téma, tak se na něj podívejte.
Nginx byl poprvé spuštěn v říjnu 2004, asi před 17 lety. Většina webových vývojářů upřednostňuje Nginx kvůli jeho schopnosti rychle zpracovat více souběžných požadavků klientů s omezenými hardwarovými zdroji, díky čemuž je hosting webových stránek na internetu levnější. Nginx lze také použít jako reverzní proxy, která směruje požadavky klientů na primární hostingový server, který nemá veřejný přístup k internetu, čímž je hostingový server bezpečnější, než by jinak byl.
Předpoklady pro instalaci WordPressu na Nginx
V tomto článku budeme používat operační systém Ubuntu, PHP 8.1, Nginx a WordPress. Pokud nevíte, co je WordPress, zabývali jsme se WordPressem v sérii článků, WordPress 101.
- Ubuntu 20.04
- Nginx
- PHP 8
- WordPress
Ubuntu 20.04 je vydání dlouhodobé podpory Ubuntu. Pokud potřebujete pomoc s instalací Ubuntu, přečtěte si tento článek o LinuxAndUbuntu. Jakmile nainstalujete Ubuntu, můžeme přejít k instalaci zbývajících požadovaných balíčků.
Pokud používáte cloudové služby jako AWS, Google Cloud Platform, Linode, DigitalOcean nebo MassiveGRID, můžete fázi instalace přeskočit. Všichni poskytovatelé cloudu podporují instalaci serveru Ubuntu jedním kliknutím pomocí Nginx. Použijte tedy Ubuntu 20.04 s kódovým označením Focal Fossa. Většina poskytovatelů cloudu ve výchozím nastavení předinstaluje bránu firewall UFW na Ubuntu. Doporučuji povolit firewall pro zlepšení zabezpečení serveru a povolit porty TCP uvedené níže.
V případě, že UFW není předinstalovaný, klidně si jej nainstalujte z úložiště –
apt install ufw
ufw enable
ufw allow http
ufw allow https
ufw allow 22
http a https jsou port 80 a port 443. Port 22 je pro SSH připojení k serveru. Pokud váš server používá jakýkoli vlastní port pro ssh, povolte před uzavřením aktuálního připojení SSH vlastní port ssh. Po povolení brány firewall UFW zablokuje všechny porty, pokud to není povoleno ručně. Jakmile tedy zavřete probíhající připojení SSH, nepovolí přístup SSH, dokud nebude povolen port SSH.
Aktualizujte také operační systém, abyste se ujistili, že je server plně opraven nejnovějšími aktualizacemi zabezpečení.
apt update
apt upgrade
Upozornění Nedoporučuje se přihlásit se jako root a provádět akce na serveru. Nastavte si tedy nový uživatelský účet a udělte mu
sudo
oprávnění.adduser username
Výše uvedený příkaz zahájí proces vytváření uživatele. Postupujte podle jednoduchých pokynů a poté udělte nově vytvořenému uživateli sudo
oprávnění pomocí následujícího příkazu –
usermod -aG sudo username
Nyní reboot
server a ssh
na server s novým uživatelským účtem.
Nainstalujte Nginx
Instalace Nginx je stejná jako instalace jakéhokoli jiného balíčku do systému. Pomocí správce balíčků apt nainstalujte nginx z úložiště –
sudo apt install nginx
Po dokončení instalačního procesu spusťte/restartujte server pomocí následujícího příkazu –
service nginx restart
service nginx status
Navštivte adresu IP a ověřte, zda server funguje správně. Následuje výchozí stránka nginx, která potvrzuje správné fungování nginx na serveru.
Konfigurujte Nginx, aby obsluhoval WordPress
Nginx může snadno zpracovat více webových stránek na stejném serveru pomocí virtuálních hostitelů. Ve výchozím nastavení nginx vytvoří výchozí profil, který zobrazuje výše uvedenou uvítací stránku Nginx. Nejprve deaktivujeme výchozí profil a poté vytvoříme nový profil pro práci s WordPress.
sudo unlink /etc/nginx/sites-enabled/default
Výše uvedený příkaz zakáže výchozí profil Nginx. Nyní vytvořte nový profil pro naši instalaci WordPress.
sudo nano /etc/nginx/sites-available/example.com
Nyní vložte následující konfiguraci do textového editoru.
server {
listen 80;
listen [::]:80;
server_name gaminggroup.online;
root /var/www/gaminggroup.online;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
Než uložíte výše uvedený soubor, pochopte, co dělá výše uvedená konfigurace. Poté, co tuto konfiguraci povolíme, Nginx začne hledat požadavky na název domény uvedený jako hodnota název_serveru v konfiguraci.
název_serveru => název domény našeho webu
root => kořenový adresář našich webových stránek uložený na serveru
index => soubor, který se má hledat v kořenovém adresáři webu
umístění => blok umístění zpracovává URI požadavku (je to trochu komplikované a zaslouží si samostatný článek o jeho fungování)
Nahraďte gaminggroup.online s vlastním názvem domény. S možností root jsme určili, že kořen našeho webu se nachází uvnitř /var/www/gaminggroup.online
. V dalším kroku tedy vytvoříme adresář webu na adrese /var/www
.
Nyní uložte konfigurační soubor pomocí ctrl + x a stiskněte Enter .
Vytvořit kořenový adresář webu
sudo mkdir /var/www/gaminggroup.online
Kdykoli nyní někdo navštíví naši webovou stránku example.com, na základě požadavku poskytne nginx uživateli obsah z této /var/www/gaminggroup.online
adresář. Chcete-li otestovat naši konfiguraci, vytvořte ukázkový index.html v kořenovém adresáři našeho webu (/var/www/gaminggroup.online).
sudo nano /var/www/gaminggroup.online/index.html
Vložte následující ukázkový HTML do souboru a uložte jej.
<h2>Hello world!</h2>
<p>This is a test page for gaminggroup.online</p>
Než otestujeme, zda vše funguje správně, nastavíme správná oprávnění v kořenovém adresáři webu, aby server mohl přistupovat k souborům v něm.
sudo chown -R www-data:www-data /var/www/gaminggroup.online/index.html
Zkontrolujte konfiguraci Nginx, zda neobsahuje nějakou chybu –
sudo ln -s /etc/nginx/sites-available/gaminggroup.online /etc/nginx/sites-enabled/
sudo nginx -t
Pokud není chyba v konfiguraci, můžeme jít. Navštivte název domény a měli byste vidět ukázkovou stránku index.html, kterou nastavujeme.
sudo service nginx restart
Výše uvedený snímek obrazovky potvrzuje úspěšné fungování našich konfigurací. Nyní můžeme přejít k přípravě na instalaci WordPressu.
Pojďme nainstalovat databázový server a vytvořit databázi pro WordPress.
Nainstalujte server MariaDB
sudo apt install mariadb-server
Spusťte mysql_secure_installation na instalační server'.
sudo mysql_secure_installation
Můžete vytvořit heslo uživatele root MySQL. Pokud nechcete vytvářet heslo uživatele root, stačí se přihlásit k uživateli MySQL root pomocí sudo msyql
.
Pokud jste vytvořili heslo uživatele root, přihlaste se k uživateli root pomocí následujícího příkazu –
mysql -u root -p
Or
sudo mysql (type sudo password when prompted)
Vytvořit databázi –
create database wordpress;
Tip Důrazně doporučujeme vytvořit nového uživatele MySQL pro databázi WordPress.
Vytvořit uživatele MySQL –
create user 'sandy'@'localhost' identified by 'password';
Udělte práva k databázi (wordpress) nově vytvořenému uživateli –
grant all privileges on wordpress.* to 'sandy'@'localhost';
Upozorňujeme, že tohoto databázového uživatele použijeme ve WordPressu, aby se mohl připojit k databázi. Připojení WordPressu k databázi pomocí uživatele root je přísně zakázáno.
Pojďme nainstalovat požadované balíčky včetně PHP a několika rozšíření PHP, která WordPress vyžaduje ke svému fungování.
Přidat úložiště PHP 8
sudo add-apt-repository ppa:ondrej/php
Nainstalujte rozšíření PHP a PHP –
sudo apt install php-cli php-fpm php-mysql php-json php-mbstring php-xml php-gd php-curl
A to je pro naši instalaci WordPress vše. Odeberte ukázkový soubor index.html z /var/www/gaminggroup.online
.
Stáhněte si WordPress –
wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz
sudo tar -xvf /tmp/wordpress.tar.gz -C /tmp/
Přesuňte soubory WordPress do kořenového adresáře webu –
sudo mv /tmp/wordpress/* /var/www/gamingroup.online
Opravit oprávnění –
sudo chown -R www-data:www-data /var/www/gaminggroup.online
sudo find /var/www/gaminggroup.online/ -type d -exec chmod 755 {} \;
sudo find /var/www/gaminggroup.online/ -type f -exec chmod 644 {} \;
Přidejte následující location
zablokovat v konfiguraci webu za stávající location
blokovat, aby fungoval s WordPress.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
Konečná konfigurace by měla vypadat nějak takto –
server {
listen 80;
listen [::]:80;
server_name gaminggroup.online;
root /var/www/gaminggroup.online;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
}
A to je pro naše nastavení WordPress vše. Nyní je třeba provést další kroky z webového prohlížeče. Přejděte ve webovém prohlížeči na název své domény a přesměruje vás na instalační stránku WordPress.
Klikněte na „Pojďme!“ pro nastavení databáze s WordPress. Nyní zadejte název databáze, uživatelské jméno databáze, heslo uživatele databáze, které jsme vytvořili výše, a klikněte na „Odeslat“.
Klikněte na „Spustit instalaci“ a budete moci zadat název webu, nastavit správce WordPress atd. Nebojte se, tyto podrobnosti můžete kdykoli později upravit.
A překvapení překvapení! Nainstalovali jsme WordPress na Nginx. Následujících pár dní budete muset strávit nastavením webu, instalací nových témat, pluginů a publikováním úžasného obsahu. Podělte se s námi o to, co vytvoříte! 🙂
Závěr
Instalace je sice u konce, ale protože se jedná o nespravovaný server, budete se muset o svůj server postarat sami. Pravidelnou instalací aktualizací nebo lepším nastavením bezobslužných upgradů pro automatickou instalaci aktualizací zajistěte, aby byl server aktuální. Také nastavte Canonical Livepatch pro instalaci aktualizací jádra bez nutnosti restartování serveru.
Pokud chcete migrovat WordPress ze starého webhostingu na tento server, přečtěte si prosím tento návod. Nebo si přečtěte tuto příručku, pokud chcete migrovat svůj web Weebly na WordPress.