GNU/Linux >> Znalost Linux >  >> Debian

Nainstalujte WordPress se vzdálenou databází na Debian

Přehled

V následujícím příspěvku se budeme zabývat scénářem, kdy nainstalujeme WordPress se vzdálenou databází na Debian. Jinými slovy, budeme mít prostředí, kde budeme mít dva samostatné servery, jeden bude mít pouze instalaci WordPressu (to znamená, že bude hostovat pouze web) a druhý bude mít pouze databázi (fungovat pouze jako databázový server) .

Existuje mnoho výhodných důvodů, proč je tento druh prostředí nastaven – jedním je snadná údržba webových stránek a databáze, zvýšení výkonu (myšleno wordpress, protože není závislý na jednom serveru, zabere mnohem méně zdrojů).

Ale nevýhodou je – protože máme nyní dva servery, údržba serveru se zvýší.

Toto nastavení bude nakonfigurováno na dvou serverech Debianu (oba ve stejné síti/stejné LAN).

Zásobník bude LEMP – webový server Nginx, server PHP a MariaDB.

Konfigurace databázového serveru

Nejprve se zaměříme na databázový server:

1. Nainstalujte server MariaDB

sudo apt install mariadb-server

Spusťte mysql_secure_installation

sudo mysql_secure_installation

2. Upravte konfigurační soubor databáze a změňte parametr bind-address a zadejte soukromou adresu vašeho databázového serveru:

Soubor k úpravě:

sudo /etc/mysql/mariadb.conf.d/50-server.cnf

Řádek k úpravě – adresa vazby =127.0.0.1

bind-address =192.168.56.252

Uložte a ukončete, restartujte a povolte službu mariadb.

sudo systemctl restart mariadb.service

sudo systemctl enabled mariadb.service

Chcete-li zjistit IP adresu vašeho databázového serveru, spusťte příkaz – ip a.

3. Vytvořte databázi, uživatele a nastavte oprávnění (informace v příkazech slouží jako příklad)

sudo mysql -u root -p
CREATE DATABASE wptest;
GRANT ALL ON wptest.* TO 'wpadmin'@'192.168.56.251' IDENTIFIED BY 'StrongPassword';
FLUSH PRIVILEGES;
exit

V databázi je nutné vytvořit vzdáleného uživatele, neboli uživatelský účet, který naše instalace WordPressu použije pro připojení k databázi. Je nutné, abyste předem znali IP adresu WordPress serveru a specifikovali ji/svázali ji se vzdáleným uživatelským účtem.

Konfigurace brány firewall

Pokud máte na databázovém serveru spuštěný firewall, je nutné otevřít port 3306, abyste mohli přijmout připojení z webového serveru a získat přístup k databázi. Pro jistotu je dobré nakonfigurovat pravidla tak, aby akceptovala pouze připojení pouze z našeho webového serveru.

Konfigurace brány firewall UFW

sudo ufw allow from 192.168.56.251 to any port 3306

Konfigurace IPTABLES

iptables -I INPUT -p tcp -s 192.168.56.251 --dport 3306 -j ACCEPT

Konfigurace webového serveru

1. Nainstalujte webový server Nginx s dalšími nezbytnými php knihovnami pro běh WordPressu a komunikaci s databázovým serverem a klientem mysql/mariadb.

sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl

sudo apt install mariadb-client

Připojení k databázovému serveru můžeme otestovat, pokud z našeho webového serveru spustíme tento příkaz (v podstatě se vzdáleně přihlásíme do databáze):

sudo mysql -u remote-admin -h 192.168.56.252 -p

2. Nainstalujte WordPress, nakonfigurujte jej a nakonfigurujte Nginx. Zde nyní nakonfigurujeme pouze tu část WordPressu, kam potřebujeme přidat adresu našeho vzdáleného databázového serveru. Pokud potřebujete podrobné kroky, jak nainstalovat WordPress a nakonfigurovat Nginx, pokyny naleznete v tomto příspěvku.

cd /var/www/html/wordpress/

sudo mv wp-config-sample.php wp-config.php

sudo nano wp-config.php

Na řádku databáze nahraďte localhost adresou IP vašeho databázového serveru. Podívejte se na obrázek níže jako příklad:

3. Vytvořte soubor Nginx conf a odeberte výchozí soubor:

sudo nano /etc/nginx/sites-available/wordpress.conf

sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/

Nginx conf, který můžete použít, můžete najít ve stejném příspěvku, který jsme zmínili dříve.

sudo rm /etc/nginx/sites-available/default

sudo rm /etc/nignx/sites-enabled/default

Po této konfiguraci byste nyní měli být schopni spustit WordPress, přistupovat k jeho vzdálené databázi a dokončit instalaci WordPressu.

A nyní byste měli mít spuštěný web WordPress se samostatným webovým a databázovým serverem. Zde můžete přestat, pokud jste s nastavením spokojeni. Toto byly nezbytné kroky k instalaci WordPressu se vzdálenou databází a v tomto okamžiku by mělo být vše v provozu. V opačném případě pokračujte v další a poslední kapitole, jak zabezpečit a zašifrovat databázové připojení a provoz mezi webem a databázovým serverem a učinit nastavení bezpečnější.

Zabezpečte a zašifrujte připojení k databázi pomocí SSL (volitelné, ale doporučené)

Je to také dobrá bezpečnostní praxe a další vrstva zabezpečení pro zabezpečení a šifrování provozu mezi webem a databázovým serverem. Důvodem je to, že pokud není zabezpečený a šifrovaný a pokud se nějakým způsobem útočník nabourá do vaší privátní podsítě (privátní sítě LAN, kde se nacházejí servery) nebo webového serveru, může útočník zachytit a odposlouchávat provoz (monitorovat jej a získat data), což může vést k narušení a hacknutí vašeho webu a serverů.

Certifikát databázového serveru

1. Na obou serverech (webovém i databázovém) si vytvořte dočasný adresář pro uložení certifikátů (příklad ssl nebo certs) ve svém domovském adresáři pro příklad nebo někde, kde je pro vás snadné je uložit – jako příklad vytvoříme adresář certs v našem domovském adresáři:

cd

mkdir certs

Nejprve začneme s databázovým serverem, takže se přepněte do nového adresáře certs, který jsme právě vytvořili:

cd certs

2. Na databázovém serveru vygenerujeme klíč CA, certifikát a soukromý klíč. Postupujte podle pokynů a na výzvu odpovídajícím způsobem odpovězte. Jako referenci můžete použít obrázky níže. Jedna věc, na kterou je třeba dávat pozor, je výzva Common name (což je docela důležité). Ptá se na název databázového serveru. Zde byste měli přidat IP adresu serveru (jako máme my) nebo název domény serveru, pokud máte nebo název hostitele. Informace se musí shodovat, protože vytvoříme certifikáty serveru a klientské klíče, aby se shodovaly.:

sudo openssl genrsa 4096 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 1825 -key ca-key.pem -out cacert.pem

V druhém příkazu atribut -days 1825 odkazuje, že vytvořený certifikát bude platný 5 let (1825 dní). Dny si můžete nastavit, jak chcete nebo potřebujete.

3. Dále je třeba vytvořit soukromý klíč RSA a podepsat certifikát:

sudo openssl rsa -in server-key.pem -out server-key.pem

sudo openssl req -newkey rsa:4096 -days 1825 -nodes -keyout server-key.pem -out server-req.pem
sudo openssl x509 -req -in server-req.pem -days 1825 -CA cacert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Nyní můžeme certifikáty přesunout na trvalé místo:

sudo mkdir /etc/mysql/ssl

sudo mv *.* /etc/mysql/ssl

cd /etc/mysql/ssl

Certifikát webového serveru

4. Vygenerujte klientský certifikát. Výzvy budou stejné jako pro databázový server, ale na otázku Common Name zadejte podrobnosti o webovém serveru, kde je nainstalován Wodpress (jako je IP adresa webového serveru). Napište RSA a podepište certifikát:

sudo openssl req -newkey rsa:2048 -days 1825 -nodes -keyout client-key.pem -out client-req.pem

sudo openssl rsa -in client-key.pem -out client-key.pem

sudo openssl x509 -req -in client-req.pem -days 1825 -CA cacert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Konfigurace SSL pro oba servery

Nastavení databázového serveru

1. Dalším krokem je konfigurace našich serverů pro použití námi vytvořených certifikátů a povolení SSL spojení mezi webem a databázovým serverem. Nejprve upravte konfiguraci na serveru MariaDB:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

A najděte následující řádky, odkomentujte je přidejte přepište řádky, které odpovídají adresářům a souborům našich certifikátů, které jsme vytvořili:

ssl-ca=/etc/mysql/ssl/cacert.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

Uložte soubor a ukončete.

2. Nyní se přihlaste na MariDB jako root a spusťte následující dotazy, abyste na serveru povolili připojení z webového serveru pouze pomocí SSL:

sudo mysql -u root -p
GRANT ALL PRIVILEGES ON wptest.* TO 'wpadmin'@'192.168.56.251' REQUIRE SSL;
FLUSH PRIVILEGES;
exit

Restartujte databázový server:

sudo systemctl restart mariadb.service
Nastavení webového serveru

3. Zatímco jste stále v adresáři /etc/mysql/ssl (nebo se přesuňte sem), pomocí nástroje scp zkopírujte klientské certifikáty na webový server (webového uživatele a IP adresu nahraďte skutečným uživatelským jménem a IP adresou vašeho webový server):

scp cacert.pem client-cert.pem client-key.pem [email protected]:~/certs

Nyní se přepněte/přihlaste na webový server a přesuňte také certifikáty někam natrvalo (stejně jako na databázový server):

sudo mkdir /etc/mysql/ssl

cd certs

sudo mv /certs/*.* /etc/mysql/ssl

Upravte konfigurační soubor pro klienta MariaDB, který jsme nainstalovali v prvním kroku. Má stejné umístění jako server:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

A najděte stejný řádek SSL (měl by být v sekci [mysql]) jako u databázového serveru a nechte je odpovídat umístění a názvům souborů certifikátů, které jsme přidali do adresáře /etc/mysql/ssl:

[mysql]
ssl-ca=/etc/mysql/ssl/cacert.pem
ssl-cert=/etc/mysql/ssl/client-cert.pem
ssl-key=/etc/mysql/ssl/client-key.pem

Uložte soubor, ukončete.

Můžete vyzkoušet, zda připojení funguje pomocí vzdáleného přihlášení:

mysql -u wpadmin -h 192.168.56.252 -p

4. Poslední soubor k úpravě je opět wp-config.php. Potřebujeme tam také konfigurační řádek SSL:

sudo nano /var/www/html/wordpress/wp-config.php

a přidejte řádek před řádek s názvem databáze:

define( ‘MYSQL_CLIENT_FLAGS’, MYSQLI_CLIENT_SSL);

Viz obrázek:

Restartujte webový server Nginx a dokončete instalaci WordPress z webového prohlížeče. Mělo by to být v provozu.

Shrnutí

Abychom tento článek shrnuli, probrali jsme kroky, jak nainstalovat WordPress se vzdálenou databází. Také jsme se zabývali procesem, jak zabezpečit spojení mezi dvěma servery (pokud jste předtím sami nezažili certifikáty s vlastním podpisem a jak s nimi pracovat, můžete krok přeskočit, jak je uvedeno výše, není to nutné, pouze doporučení) . Samotný základní proces, jak nainstalovat WordPress se vzdálenou databází, není tak obtížný a poskytuje několik výhod, jednou z nich je výkon a údržba webového serveru může být nyní poněkud jednodušší a zkrátit prostoje, když je potřeba údržba.


Debian
  1. Jak nainstalovat server LAMP na Debian 9 Stretch Linux

  2. Nainstalujte centralizovaný server protokolů s Rsyslog v Debianu 9

  3. Nainstalujte Cockpit na Debian 9

  1. Jak nainstalovat HTTP Git Server s Nginx na Debian 11

  2. Nainstalujte WordPress na Fedoru 22 / 21 s AMP

  3. Nainstalujte WordPress na openSUSE 13.2 s LAMP

  1. Jak nainstalovat Xrdp Server (Remote Desktop) na Debian 10

  2. Jak nainstalovat WordPress s Nginx na Debian 10

  3. Nainstalujte phpMyAdmin na Debian 11 s Nginx