GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat LEMP Stack na Ubuntu 20.04 Server/Desktop

Tento tutoriál vám ukáže, jak nainstalovat LEMP stack (Nginx, MariaDB a PHP7.4) na Ubuntu 20.04. Softwarový zásobník je sada softwarových nástrojů spojených dohromady. LEMP je zkratka pro Linux, Nginx (Engine-X), MariaDB/MySQL a PHP, z nichž všechny jsou open source a lze je používat zdarma. Je to nejběžnější softwarový balík, který pohání dynamické webové stránky a webové aplikace. Linux je operační systém; Nginx je webový server; MariaDB/MySQL je databázový server a PHP je skriptovací jazyk na straně serveru zodpovědný za generování dynamických webových stránek.

Předpoklady

Abyste mohli postupovat podle tohoto návodu, potřebujete operační systém Ubuntu 20.04 spuštěný na vašem místním počítači nebo na vzdáleném serveru.

Pokud hledáte VPS (virtuální soukromý server), můžete si zaregistrovat účet u DigitalOcean prostřednictvím tohoto speciálního odkazu a získat kredit 50 $ zdarma. (Pouze pro nové uživatele). Pokud již jste uživatelem DigitalOcean, můžete si zaregistrovat účet na Vultr prostřednictvím tohoto speciálního odkazu a získat kredit 50 $ zdarma (pouze pro nové uživatele).

A pokud potřebujete nastavit LEMP stack s názvem domény, doporučuji koupit názvy domén od NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

Krok 1:Aktualizace softwarových balíčků

Než nainstalujeme zásobník LEMP, je vhodné aktualizovat úložiště a softwarové balíčky spuštěním následujících příkazů na vašem operačním systému Ubuntu 20.04.

sudo apt update

sudo apt upgrade

Krok 2:Nainstalujte webový server Nginx

Nginx je vysoce výkonný webový server a v dnešní době velmi populární. Může být také použit jako reverzní proxy a server pro ukládání do mezipaměti. Chcete-li nainstalovat webový server Nginx, zadejte následující příkaz.

sudo apt install nginx

Po instalaci můžeme povolit Nginx, aby se automaticky spouštěl při spouštění spuštěním následujícího příkazu.

sudo systemctl enable nginx

Poté spusťte Nginx pomocí tohoto příkazu:

sudo systemctl start nginx

Nyní zkontrolujte jeho stav.

sudo systemctl status nginx

Výstup:

● 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 2020-04-10 14:11:43 UTC; 3s ago
       Docs: man:nginx(8)
    Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 8549 (nginx)
      Tasks: 3 (limit: 9451)
     Memory: 3.9M
     CGroup: /system.slice/nginx.service
             ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─8550 nginx: worker process
             └─8551 nginx: worker process

Povoleno ” označuje, že je povoleno automatické spouštění při spouštění a vidíme, že Nginx běží. Můžete také vidět, kolik RAM Nginx používá z výstupu. Pokud se výše uvedený příkaz po spuštění okamžitě neukončí. Musíte stisknout „q ” aby to skončilo.

Zkontrolujte verzi Nginx.

nginx -v

Výstup:

nginx version: nginx/1.17.9 (Ubuntu)

Nyní zadejte veřejnou IP adresu vašeho serveru Ubuntu 20.04 do adresního řádku prohlížeče. Měli byste vidět webovou stránku „Welcome to Nginx“, což znamená, že webový server Nginx běží správně. Pokud instalujete LEMP na místní počítač Ubuntu 20.04, zadejte 127.0.0.1 nebo localhost v adresním řádku prohlížeče.

Pokud je připojení odmítnuto nebo se nepodaří dokončit, může to být brána firewall, která brání příchozím požadavkům na port TCP 80. Pokud používáte bránu firewall iptables, musíte pro otevření portu TCP 80 spustit následující příkaz.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Pokud používáte UFW firewall, pak spusťte tento příkaz pro otevření TCP portu 80.

sudo ufw allow http

Nakonec musíme vytvořit www-data (uživatel Nginx) jako vlastník webového adresáře. Ve výchozím nastavení je ve vlastnictví uživatele root.

sudo chown www-data:www-data /usr/share/nginx/html -R

Krok 3:Nainstalujte databázový server MariaDB

MariaDB je drop-in náhrada za MySQL. Je vyvinut bývalými členy týmu MySQL, kteří se obávají, že by Oracle mohl změnit MySQL na uzavřený produkt. Zadejte následující příkaz pro instalaci MariaDB na Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Po instalaci by se měl server MariaDB automaticky spustit. Použijte systemctl zkontrolovat jeho stav.

systemctl status mariadb

Výstup:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

Pokud neběží, spusťte jej tímto příkazem:

sudo systemctl start mariadb

Chcete-li povolit automatické spouštění MariaDB při spouštění, spusťte

sudo systemctl enable mariadb

Nyní spusťte bezpečnostní skript po instalaci.

sudo mysql_secure_installation

Až budete požádáni o zadání rootovského hesla MariaDB, stiskněte klávesu Enter, protože heslo root ještě není nastaveno. Poté zadejte y pro nastavení hesla uživatele root pro server MariaDB.

Dále můžete stisknout Enter pro zodpovězení všech zbývajících otázek, což odstraní anonymního uživatele, zakáže vzdálené přihlášení root a odstraní testovací databázi. Tento krok je základním požadavkem pro zabezpečení databáze MariaDB. (Všimněte si, že Y je velké, což znamená, že se jedná o výchozí odpověď. )

Ve výchozím nastavení používá balíček MaraiDB na Ubuntu unix_socket k ověření přihlášení uživatele, což v podstatě znamená, že můžete použít uživatelské jméno a heslo operačního systému pro přihlášení do konzoly MariaDB. Můžete tedy spustit následující příkaz a přihlásit se bez zadání hesla root MariaDB.

sudo mariadb -u root

Chcete-li ukončit, spusťte

exit;

Zkontrolujte informace o verzi serveru MariaDB.

mariadb --version

Jak můžete vidět, nainstalovali jsme MariaDB 10.3.22.

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Krok 4:Nainstalujte PHP7.4

PHP7.4 je součástí repozitáře Ubuntu 20.04 a oproti PHP7.3 má drobné zlepšení výkonu. Chcete-li nainstalovat PHP7.4 a některá běžná rozšíření, zadejte následující příkaz.

sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Rozšíření PHP jsou běžně potřebná pro systémy pro správu obsahu (CMS), jako je WordPress. Například pokud vaše instalace postrádá php7.4-xml , pak mohou být některé stránky vašeho webu WordPress prázdné a v protokolu chyb Nginx můžete najít chybu jako:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

Instalace těchto rozšíření PHP zajistí, že váš CMS běží hladce. Nyní spusťte php7.4-fpm.

sudo systemctl start php7.4-fpm

Povolit automatické spouštění při spouštění.

sudo systemctl enable php7.4-fpm

Zkontrolujte stav:

systemctl status php7.4-fpm

Ukázkový výstup:

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor pr>
     Active: active (running) since Fri 2020-04-10 14:40:26 UTC; 12s ago
       Docs: man:php-fpm7.4(8)
    Process: 21019 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru>
   Main PID: 21012 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req>
      Tasks: 3 (limit: 9451)
     Memory: 9.4M
     CGroup: /system.slice/php7.4-fpm.service
             ├─21012 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─21017 php-fpm: pool www
             └─21018 php-fpm: pool www

Pokud se výše uvedený příkaz po spuštění okamžitě neukončí. Musíte stisknout „q ” aby to skončilo.

Krok 5:Vytvořte blok serveru Nginx

Blok serveru Nginx je jako virtuální hostitel v Apache. Nepoužijeme výchozí blok serveru, protože je neadekvátní ke spuštění kódu PHP a pokud jej upravíme, stane se z toho nepořádek. Odstraňte tedy default symbolický odkaz v sites-enabled adresář spuštěním následujícího příkazu. (Stále je k dispozici jako /etc/nginx/sites-available/default .)

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

Poté pomocí textového editoru příkazového řádku, jako je Nano, vytvořte zcela nový soubor bloku serveru pod /etc/nginx/conf.d/ adresář.

sudo nano /etc/nginx/conf.d/default.conf

Do souboru vložte následující text. Následující úryvek způsobí, že Nginx bude naslouchat na portu IPv4 80 a portu IPv6 80 s názvem univerzálního serveru.

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Uložte a zavřete soubor. (Chcete-li uložit soubor v textovém editoru Nano, stiskněte Ctrl+O a poté stiskněte Enter potvrdit. Pro ukončení stiskněte Ctrl+X .)

Poté otestujte konfigurace Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx.

sudo systemctl reload nginx

Krok 6:Otestujte PHP

Pro testování PHP-FPM s webovým serverem Nginx musíme vytvořit info.php soubor v adresáři webroot.

sudo nano /usr/share/nginx/html/info.php

Do souboru vložte následující kód PHP.

<?php phpinfo(); ?>

Uložte a zavřete soubor. Nyní do adresního řádku prohlížeče zadejte server-ip-address/info.php . Nahraďte sever-ip-address s vaší skutečnou IP. Pokud budete postupovat podle tohoto návodu na místním počítači, zadejte 127.0.0.1/info.php nebo localhost/info.php .

Měli byste vidět informace o PHP serveru. To znamená, že skripty PHP mohou správně běžet s webovým serverem Nginx.

Gratuluji! Úspěšně jste nainstalovali Nginx, MariaDB a PHP7.4 na Ubuntu 20.04. Pro zabezpečení vašeho serveru byste měli odstranit info.php soubor nyní, aby jej hacker neviděl.

sudo rm /usr/share/nginx/html/info.php

Tip pro odstraňování problémů

Pokud narazíte na chyby, můžete zkontrolovat protokol chyb Nginx (/var/log/nginx/error.log ), abyste zjistili, co je špatně.

Automatický restart Nginx

Pokud je z jakéhokoli důvodu váš proces Nginx zabit, musíte jej restartovat spuštěním následujícího příkazu.

sudo systemctl restart nginx

Místo ručního zadávání tohoto příkazu můžeme nechat Nginx automaticky restartovat úpravou nginx.service systémovou servisní jednotku. Abychom přepsali výchozí konfiguraci služby systemd, vytvoříme samostatný adresář.

sudo mkdir -p /etc/systemd/system/nginx.service.d/

Poté vytvořte soubor v tomto adresáři.

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

Přidejte do souboru následující řádky, díky čemuž se Nginx automaticky restartuje 5 sekund po zjištění poruchy. Výchozí hodnota RetartSec je 100 ms , který je příliš malý. Nginx si může stěžovat, že „požadavek na spuštění se opakuje příliš rychle“, pokud RestartSec není dost velký.

[Service]
Restart=always
RestartSec=5s

Uložte a zavřete soubor. Poté znovu načtěte systemd, aby se změny projevily.

sudo systemctl daemon-reload

Chcete-li zkontrolovat, zda by to fungovalo, zabijte Nginx pomocí:

sudo pkill nginx

Poté zkontrolujte stav Nginx. Zjistíte, že se Nginx automaticky restartuje.

systemctl status nginx

Další krok

Doufám, že vám tento tutoriál pomohl nainstalovat LEMP stack na Ubuntu 20.04 LTS . Možná budete chtít nainstalovat phpMyAdmin, což je bezplatný a open source webový nástroj pro správu databází.

  • Jak nainstalovat phpMyAdmin s Nginx (LEMP) na Ubuntu 20.04 LTS

Můžete také nainstalovat WordPress na horní část zásobníku LEMP a vytvořit si vlastní web nebo blog.

  • Nainstalujte WordPress na Ubuntu 20.04 s Nginx, MariaDB, PHP7.4 (LEMP)

Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂


Ubuntu
  1. Jak nainstalovat Nginx na Ubuntu 20.04

  2. Jak nainstalovat Ubuntu Desktop ze serveru Ubuntu

  3. Jak nainstalovat LEMP na Ubuntu 16.04

  1. Jak nainstalovat LEMP Stack na Ubuntu 20.04

  2. Jak nainstalovat LEMP Stack na Debian 10 Buster Server/Desktop

  3. Jak nainstalovat qBittorrent na plochu nebo server Ubuntu 18.04

  1. Nainstalujte NextCloud na Ubuntu 18.04 s Nginx (LEMP Stack)

  2. Jak nainstalovat Plex Media Server na Ubuntu 16.04 Server/Desktop

  3. Nainstalujte NextCloud na Ubuntu 20.04 s Nginx (LEMP Stack)