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 🙂