GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Ubuntu 22.04

Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Ubuntu 22.04. 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 Ubuntu 22.04.

Předpoklady

  • Kořenový přístup k vašemu serveru nebo uživateli s právy 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

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 port 443 (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'
sudo ufw enable

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

Protože jsme v kroku 2 nainstalovali Nginx, měl by být spuštěn automaticky a již by měl být 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 Fri 2022-05-04 05:36:49 UTC; 44s ago
       Docs: man:nginx(8)
    Process: 10272 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCC>
    Process: 10273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 10274 (nginx)
      Tasks: 3 (limit: 1151)
     Memory: 5.3M
        CPU: 35ms
     CGroup: /system.slice/nginx.service

Nyní máme Nignx nainstalovaný a nakonfigurovaný Firewall.

Krok 5:Nainstalujte MySQL

V Ubuntu 22.04 je MySQL 8 ve výchozím nastavení součástí úložišť Jammy Jellyfish, takže ji můžete snadno nainstalovat pomocí apt install příkaz.

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 Fri 2022-05-04 00:38:45 UTC; 11s ago
    Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
   Main PID: 13844 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1151)
     Memory: 351.4M
        CPU: 1.043s
     CGroup: /system.slice/mysql.service
             └─13844 /usr/sbin/mysqld

Zkontrolujte verzi MySQl pomocí níže uvedeného příkazu.

sudo mysql -V
Output
mysql  Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))

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

Ve výchozím nastavení má Ubuntu 22.04 nejnovější úložiště PHP 8.1. PHP tedy můžete nainstalovat pomocí následujícího příkazu.

sudo apt install php8.1-fpm php8.1 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-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

Jakmile je PHP nainstalováno, můžete zkontrolovat verzi pomocí následujícího příkazu.

php -v
Output
PHP 8.1.5 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies

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.

sudo apt install python3-certbot-nginx

Nyní jsme nainstalovali Certbot by Let’s Encrypt pro Ubuntu 22.04, spusťte tento příkaz, abyste získali své certifikáty.

sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

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 Ubuntu 22.04 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ář.


Linux
  1. Jak nainstalovat LEMP na Ubuntu 18.04

  2. Jak nainstalovat LEMP Stack Nginx, MySQL, PHP na Debian 11

  3. Jak nainstalovat LEMP Stack na Ubuntu 18.04

  1. Jak nainstalovat LEMP Stack (Nginx, MySQL, PHP v7) na CentOS 7

  2. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 18.04

  3. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 20.04 LTS

  1. Jak nainstalovat Nginx s PHP + MySQL (LEMP) na Debian 9

  2. Jak nainstalovat Nginx, MariaDB, PHP (LEMP Stack) na Debian 11

  3. Jak nainstalovat Linux, Nginx, MySQL, PHP (LEMP Stack) v Ubuntu 18.04