GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat LEMP Stack na Debian 10 Buster Server/Desktop

Tento tutoriál vám ukáže, jak nainstalovat Nginx, MariaDB a PHP7.3 (LEMP stack) na Debian 10 Buster. Softwarový zásobník je sada softwarových nástrojů spojených dohromady. LEMP znamená L inux, Nginx , M ariaDB/M ySQL a P HP, z nichž všechny jsou open source a lze je používat zdarma. Jedná se o velmi běžný 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.

Všechny čtyři komponenty jsou zdarma a s otevřeným zdrojovým kódem. Protože však MySQL nyní vlastní Oracle a existuje šance, že jej Oracle změní na uzavřený produkt, zvolíme místo MySQL MariaDB.

Předpoklady instalace LEMP Stack na Debian 10 Buster

Abyste mohli sledovat tento tutoriál, potřebujete operační systém Debian 10 spuštěný na vašem místním počítači nebo na vzdáleném serveru.

Pokud hledáte VPS (Virtual Private Server), 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.

Při instalaci softwaru do Debianu musíte mít oprávnění root. Můžete přidat sudo na začátek příkazu nebo použijte su - příkaz pro přepnutí na uživatele root.

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

Než nainstalujeme zásobník LEMP, je dobré aktualizovat úložiště a softwarové balíčky. Spusťte na svém operačním systému Debian 10 následující příkaz.

sudo apt update

sudo apt upgrade

Krok 2:Nainstalujte webový server Nginx na Debian 10

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 by se Nginx měl automaticky spustit. Zkontrolujte jeho stav pomocí systemctl .

systemctl status nginx

Ukázkový výstup:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago
     Docs: man:nginx(8)
 Main PID: 19713 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 4.6M
   CGroup: /system.slice/nginx.service
           ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─19714 nginx: worker process

Tip:Pokud se výše uvedený příkaz okamžitě neukončí, můžete stisknutím klávesy Q získat zpět kontrolu nad oknem terminálu.

Pokud neběží, spusťte jej pomocí systemctl.

sudo systemctl start nginx

Je také dobré povolit Nginx, aby se automaticky spouštěl při spouštění.

sudo systemctl enable nginx

Zkontrolujte verzi Nginx:

sudo nginx -v

Výstup:

nginx version: nginx/1.14.2

Nyní zadejte veřejnou IP adresu vašeho serveru Debian 10 do adresního řádku prohlížeče. Měli byste vidět výchozí webovou stránku „Welcome to nginx“, což znamená, že webový server Nginx běží správně. Pokud instalujete LEMP na místní počítač Debian 10, měli byste zadat 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

Nyní musíme nastavit www-data (uživatel Nginx) jako vlastník kořenového adresáře dokumentu (také známého jako webový kořen). Ve výchozím nastavení je ve vlastnictví uživatele root. (Všimněte si, že Nginx ve výchozím nastavení používá /usr/share/nginx/html/ jako webový kořen, zatímco webový server Apache používá /var/www/html/ jak rootujeme.)

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

Krok 3:Nainstalujte databázový server MariaDB na Debian 10

MariaDB je drop-in náhrada za MySQL. Pro instalaci na Debian 10 zadejte následující příkaz.

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.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20669 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 77.7M
   CGroup: /system.slice/mariadb.service
           └─20669 /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.

Poté stačí stisknout Enter a odpovědět na všechny zbývající otázky. To 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 písmeno Y je velká, což znamená, že se jedná o výchozí odpověď.)

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

sudo mariadb -u root

nebo

sudo mysql -u root

Chcete-li ukončit, spusťte

exit;

Zkontrolujte informace o verzi serveru MariaDB.

mariadb --version

Výstup:

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

Krok 4:Nainstalujte PHP7.3 na Debian 10

V době psaní tohoto článku je PHP7.3 nejnovější stabilní verzí PHP a má oproti předchozím verzím drobné zlepšení výkonu. Chcete-li nainstalovat PHP7.3 a některá běžná rozšíření PHP z úložiště Debian 10, zadejte následující příkaz.

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Zkontrolujte informace o verzi PHP.

php --version

Výstup:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Nyní spusťte php7.3-fpm.

sudo systemctl start php7.3-fpm

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

sudo systemctl enable php7.3-fpm

Zkontrolujte stav:

systemctl status php7.3-fpm

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é vytvořte zcela nový soubor bloku serveru pod /etc/nginx/conf.d/ adresář pomocí textového editoru příkazového řádku, jako je Nano.

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.3-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 pro potvrzení. 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 skriptů se serverem Nginx musíme vytvořit info.php soubor v kořenovém adresáři webu.

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 postupujete 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. Můžete zjistit, že Zend OPcache je povolena.

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 nimž se Nginx automaticky restartuje 5 sekund po zjištění selhání.

[Service]
Restart=always
RestartSec=5s

Uložte a zavřete soubor. Poté znovu načtěte systemd.

sudo systemctl daemon-reload

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

sudo pkill nginx

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

systemctl status nginx

Debian
  1. Jak nainstalovat MySQL Server na Debian 10 Buster

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

  3. Jak nainstalovat LEMP Stack na Debian 10 Buster

  1. Jak nainstalovat Spotify na Debian 10 Buster Linux Desktop

  2. Jak nastavit LEMP server na Debian 10 Buster

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

  1. Jak nainstalovat Nginx, MariaDB, PHP (LEMP stack) na Debian 9

  2. Jak nainstalovat LEMP Stack na Debian 10

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