Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Debian 11. V této příručce se dozvíte, jak nainstalovat Nginx, MySQL 8.0 a PHP 8.1.
Nainstalujete také některá běžná rozšíření PHP a upravíte konfigurace PHP. Nakonec své nastavení zabezpečíte pomocí Let’s Encrypt SSL a nakonfigurujete přesměrování HTTPS.
Toto nastavení je testováno v cloudu Google, takže bude fungovat na všech cloudových hostingových službách, jako je AWS, Azure nebo jakékoli VPS nebo na jakýchkoli dedikovaných serverech se systémem Debian 11.
Předpoklady
- Kořenový přístup k vašemu serveru nebo uživateli sudo.
- Doména ukazuje na IP adresu vašeho serveru pro instalaci Let’sEncrypt SSL
Krok 1:Inicializace nastavení
Začněte aktualizací balíčků na nejnovější dostupnou verzi pomocí následujícího příkazu.
sudo apt update sudo apt upgrade
Nainstalujte balíček wget.
sudo apt install wget
Po aktualizaci nastavení můžete zahájit nastavení.
Krok 2:Instalace Nignx
Nainstalujte Nginx pomocí následujícího příkazu.
sudo apt install nginx
Tím se nainstaluje nginx
a všechny požadované závislosti.
Krok 3:Nastavení brány firewall
Nyní můžete nastavit Uncomplicated Firewall (UFW) s Nginx, aby umožnil veřejný přístup na výchozích webových portech pro HTTP
a HTTPS
sudo ufw app list
Zobrazí se všechny uvedené aplikace.
Output Available applications: Nginx Full Nignx HTTP Nginx HTTPS OpenSSH
- Nginx HTTP :Tento profil otevírá port
80
(normální, nešifrovaný webový provoz) - Nginx Full :Tento profil otevírá oba porty
80
(normální, nešifrovaný webový provoz) a port443
(provoz šifrovaný TLS/SSL) - Nginx HTTPS :Tento profil otevírá pouze port
443
(provoz šifrovaný TLS/SSL) - OpenSSH :Tento profil otevírá port
22
pro přístup SSH.
Pokud nebudete používat SSL, musíte povolit pouze Nginx HTTP profil.
Nyní povolíme Nginx Full.
sudo uff allow OpenSSH sudo ufw allow 'Nginx Full'
Pomocí tohoto příkazu můžete zobrazit stav UFW.
sudo ufw status
Výstup uvidíte následovně.
Output Status: active To Action From -- ------ ---- Nginx Full ALLOW Anywhere OpenSSH ALLOW Anywhere Nginx Full (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Krok:4 Kontrola instalace Nginx
Jakmile je Nginx nainstalován, je spuštěn automaticky a již je v provozu.
Každý proces v Nginx je spravován pomocí systemctl
příkaz. Zkontrolujte stav Nginx pomocí následujícího příkazu.
sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-02-03 03:13:00 UTC; 6h ago Docs: man:nginx(8) Process: 11261 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code> Process: 11262 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, > Main PID: 11263 (nginx) Tasks: 3 (limit: 8622)
Nyní máme Nignx nainstalovaný a nakonfigurovaný Firewall.
Krok 5:Instalace MySQL
Chcete-li přidat úložiště MySQL APT do svého systému, přejděte na stránku pro stažení úložiště a stáhněte si balíček nejnovější verze pomocí následujícího příkazu.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
Nainstalujte balíček vydání.
sudo apt install ./mysql-apt-config_0.8.22-1_all.deb
Chystáme se nainstalovat MySQL verze 8.0. Vyberte OK stisknutím Tab a stiskněte Enter (jak je znázorněno na obrázku výše).
Nyní můžete nainstalovat MySQL.
sudo apt update sudo apt install mysql-server
Po dokončení instalace se služba MySQL automaticky spustí. Chcete-li ověřit, že server MySQL běží, zadejte:
sudo service mysql status
Výstup by měl ukazovat, že služba je povolena a spuštěna:
mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-02-02 06:12:30 UTC; 17s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Main PID: 101929 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1148) Memory: 369.3M CPU: 805ms CGroup: /system.slice/mysql.service └─101929 /usr/sbin/mysqld Feb 02 06:12:29 demo systemd[1]: Starting MySQL Community Server... Feb 02 06:12:30 demo systemd[1]: Started MySQL Community Server.
Krok 6:Zabezpečení MySQL
Instalace MySQL je dodávána se skriptem s názvem mysql_secure_installation
což vám umožní snadno zlepšit zabezpečení serveru MySQL.
sudo mysql_secure_installation
Budete požádáni o konfiguraci VALIDATE PASSWORD PLUGIN
který se používá k testování síly hesel uživatelů MySQL a ke zlepšení zabezpečení.
Stiskněte y
pokud chcete nastavit zásuvný modul pro ověření hesla nebo jakýkoli jiný klíč pro přechod k dalšímu kroku.
Existují tři úrovně zásad ověřování hesla, nízká, střední a silná.
Zadejte 2 pro ověření silného hesla.
Na další výzvě budete požádáni o nastavení hesla pro uživatele root MySQL.
Pokud nastavíte plugin pro ověření hesla, skript vám ukáže sílu vašeho nového hesla. Zadejte y
pro potvrzení hesla.
Dále budete požádáni o odebrání anonymního uživatele, omezení přístupu uživatele root k místnímu počítači, odebrání testovací databáze a opětovné načtení tabulek oprávnění. Měli byste odpovědět y
na všechny otázky.
Krok 7:Nainstalujte PHP
Přidejte SURY PPA pro PHP 8.1
sudo apt -y install lsb-release apt-transport-https ca-certificates sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
Nyní můžete přidat PPA do serverových balíčků.
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
Aktualizujte balíčky a nainstalujte PHP 8.1
sudo apt update sudo apt install php php8.1-fpm php8.1-mysql php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl -y
Jakmile je PHP nainstalováno, můžete zkontrolovat verzi pomocí následujícího příkazu.
php -v
Krok 8:Konfigurace PHP
Nyní nakonfigurujeme PHP pro webové aplikace změnou některých hodnot v php.ini
soubor.
Pro PHP 8.1 s Nginx php.ini
umístění bude v následujícím adresáři.
sudo nano /etc/php/8.1/fpm/php.ini
Stiskněte F6
pro vyhledávání v editoru a pro lepší výkon aktualizujte následující hodnoty.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Jakmile upravíte nastavení PHP, musíte restartovat PHP-FPM, aby se změny projevily.
sudo service php8.1-fpm restart
Krok 9:Konfigurace Nginx
Zakázat výchozí konfiguraci Nginx.
sudo rm -rf /etc/nginx/sites-enabled/default sudo rm -rf /etc/nginx/sites-available/default
Vytvořte adresáře webových stránek.
sudo mkdir -p /var/www/html/domainname/public
Nastavte správná oprávnění.
sudo chmod -R 755 /var/www/html/domainname sudo chown -R www-data:www-data /var/www/html/domainname
Vytvořte novou konfiguraci bloku serveru.
sudo nano /etc/nginx/sites-available/domainname.conf
Vložte následující konfigurace do nového souboru.
server { listen 80; listen [::]:80; server_name yourdomainname.com www.yourdomainname.com; root /var/www/html/domainname/public; index index.html index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
Povolte novou konfiguraci.
sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf
Krok 10:Instalace Let’s Encrypt SSL
HTTPS je protokol pro zabezpečenou komunikaci mezi serverem (instance) a klientem (webovým prohlížečem). Díky zavedení Let’s Encrypt, který poskytuje bezplatné certifikáty SSL, si HTTPS osvojí všichni a také poskytuje důvěru vašemu publiku.
Zde nainstalujeme Certbot pro instalaci Let’sEncrypt SSL pomocí Snap.
sudo apt update sudo apt install snapd -y sudo snap install core sudo snap refresh core
Nainstalujte nástroj Certbot.
sudo snap install --classic certbot
Nakonfigurujte Certbot tak, aby byl spustitelný jako příkaz.
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Nyní jsme nainstalovali Certbot pro instalaci Let’s Encrypt for Debian 11.
Spuštěním následujícího příkazu nainstalujte své certifikáty.
sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com
Vyberte příslušnou možnost a stiskněte Enter
Tento příkaz nainstaluje bezplatné SSL, nakonfiguruje přesměrování na HTTPS a restartuje server Nginx.
Krok 11:Obnovení certifikátu SSL
Certifikáty poskytované Let’s Encrypt jsou platné pouze 90 dní, takže je musíte často obnovovat. Pojďme tedy otestovat funkci obnovení pomocí následujícího příkazu.
sudo certbot renew --dry-run
Tento příkaz otestuje vypršení platnosti certifikátu a nakonfiguruje funkci automatického obnovení.
Krok:12:Otestujte nastavení
Jakmile provedete potřebné kroky, můžete vytvořit nový testovací soubor PHP ve vašem webovém adresáři.
sudo nano /var/www/html/domainname/public/info.php
Vložte níže uvedený kód do souboru.
<?php phpinfo();
Uložte soubor.
Nyní pokračujte a zkontrolujte název domény pomocí info.php
v adrese URL (domainname.com/info.php
).
Uvidíte, že vaše doména byla přesměrována na HTTPS, a uvidíte podrobnosti o PHP.
Rozšiřte svou kariéru v administraci systému Linux s dokončeným školicím kurzem a získejte práci svých snů.
Závěr
Nyní jste se naučili, jak nainstalovat LEMP stack na Debian 11 pomocí Let’sEncrypt SSL.
Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím níže komentář.