Kako instalirati LEMP Stack (Nginx, MariaDB i PHP) na AlmaLinux 8

LEMP je zbirka softvera otvorenog koda koji se obično koristi zajedno za posluživanje web aplikacija. Pojam LEMP je akronim koji predstavlja konfiguraciju Linux operativnog sustava s Nginxom (izgovara se motor-x, dakle E u akronimu) web-poslužitelj, s podacima o web-mjestu pohranjenim u MySQL ili MariaDB bazi podataka i dinamičkim sadržajem obrađenim u PHP-u koji se popularno koristi za hosting opsežnih web stranica zbog svoje izvedbe i skalabilnosti.

U sljedećem tutorialu naučit ćete kako instalirati LEMP (Nginx, MariaDB, PHP 8.0) na AlmaLinux 8.

Preduvjeti

  • Preporučeni OS: AlmaLinux 8.
  • Korisnički račun: Korisnički račun sa sudo privilegije or root pristup (su naredba).

Ažuriranje operativnog sustava

Ažurirajte svoj AlmaLinux operativni sustav kako biste bili sigurni da su svi postojeći paketi ažurirani:

sudo dnf upgrade --refresh -y

Tutorial će koristiti sudo naredba i pod pretpostavkom da imate sudo status. Za provjeru sudo statusa na svom računu:

sudo whoami

Primjer izlaza koji prikazuje sudo status:

[joshua@localhost ~]$ sudo whoami
root

Ako niste postavili sudo korisnički račun, a želite, posjetite naš vodič na Kako dodati korisnika u Sudoers na AlmaLinuxu.

Za korištenje root račun, upotrijebite sljedeću naredbu s root lozinkom za prijavu.

su

Oglas


Instalirajte Nginx

Da biste pokrenuli instalaciju LEMP steka, morat ćete instalirati Nginx Web poslužitelj, što se može učiniti sljedećom naredbom terminala:

sudo dnf install nginx

Primjer rezultata:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Potvrdite instalaciju provjerom verzije izrade:

nginx -v

Primjer rezultata:

nginx version: nginx/1.14.1

Prema zadanim postavkama, kada instalirate Nginx na AlmaLinux, on nije omogućen. Da biste omogućili pri pokretanju i pokrenuli, koristite sljedeće:

sudo systemctl enable nginx && sudo systemctl start nginx

Primjer uspješnog omogućavanja (simbol):

Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

Sada provjerite status svoje Nginx usluge sljedećom naredbom terminala:

systemctl status nginx

Primjer izlaza koji kaže da je sve u redu:

Kako instalirati LEMP Stack na AlmaLinux 8

Dobra je ideja dopustiti HTTP promet kroz vatrozid sljedećom naredbom:

sudo firewall-cmd --zone=public --add-service=http --permanent 

Ponovno učitajte vatrozid sljedećom naredbom:

sudo firewall-cmd --reload

Sada možete potvrditi da vaš Nginx web poslužitelj radi unosom HTTP://ip-poslužitelja or HTTP://ime-domene u vašem internet pregledniku, a trebali biste dobiti sljedeće:

Kako instalirati LEMP Stack na AlmaLinux 8

Instalirajte i konfigurirajte MariaDB

Montaža

MariaDB je zamjena za MySQL, a razvili su ga bivši članovi MySQL tima zabrinuti da bi Oracle mogao pretvoriti MySQL u zatvoreni izvorni i potencijalno plaćeni proizvod.

Unesite sljedeću naredbu da instalirate MariaDB:

sudo dnf install mariadb-server mariadb

Primjer rezultata:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Da biste potvrdili instalaciju MariaDB-a i provjerili koja je verzija instalirana, upišite sljedeću naredbu:

mysql --version

Primjer rezultata:

mysql  Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1

Prema zadanim postavkama, MariaDB nije omogućen isto kao i Nginx prije nego što nije. Da biste pokrenuli i omogućili MariaDB pri pokretanju sustava, koristite sljedeće (systemctl) naredba terminala:

sudo systemctl enable mariadb && sudo systemctl start mariadb

Primjer uspješnog omogućavanja (simbol):

Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

Sada provjerite je li sve operativno pomoću sljedeće naredbe:

systemctl status mariadb

Primjer izlaza koji kaže da je sve u redu:

Kako instalirati LEMP Stack na AlmaLinux 8

konfiguracija

Sada kada je MariaDB pokrenut i radi na vašem AlmaLinux sustavu, morate pokrenuti sigurnosnu skriptu nakon instalacije jer je potrebno pregledati zadane postavke jer često nisu sigurne. Ovo je vrlo preporučljivo da ne preskačete.

Prvo pokrenite naredbu za sigurnu instalaciju MariaDB kako slijedi:

sudo mysql_secure_installation

Zatim ćete dobiti upit da unesete svoju (MariaDB root lozinku). Za sada pritisnite (UNESI) ključ jer root lozinka još nije postavljena kao u nastavku:

Zatim, upišite (I) i pritisnite enter za postavljanje (Root) lozinka kao u nastavku:

Sljedeći niz pitanja možete sigurno pogoditi (UNESI), koji će odgovoriti (I) na sva naredna pitanja koja od vas traže (uklonite anonimne korisnike, onemogućite udaljenu root prijavu i uklonite testnu bazu podataka), Obratite pažnju na (I) je veliko, što znači da je to zadani odgovor kada pritisnete (UNESI) ključ.

Primjer u nastavku:

Kako instalirati LEMP Stack na AlmaLinux 8

Pregled onoga što je gore trebalo učiniti:

  • Postavljanje lozinke za korijen računi.
  • Uklanjanje root računa koji su dostupni izvan lokalnog hosta.
  • Uklanjanje računa anonimnih korisnika.
  • Uklanjanje testne baze podataka kojoj prema zadanim postavkama mogu pristupiti anonimni korisnici.

Ovaj korak je bitan za sigurnost MariaDB baze podataka i ne smije se mijenjati ili preskakati osim ako ne znate što radite.

Sada se prijavite na terminal baze podataka MariaDB sa sljedećom naredbom:

sudo mysql -u root -p

Od vas će se tražiti da unesete root lozinku koju ste postavili bilo u instalacijskoj skripti ili sigurnosnoj skripti nakon instalacije. Jednom u instanci usluge MySQL, možete izvršiti sljedeću naredbu kao test da biste je vidjeli u radu.

Upišite sljedeće Naredba SHOW DATABASE:

SHOW DATABASES;

Za one koji su novi u MySQL-u i MariaDB-u, sve naredbe moraju završavati s "."

Primjer:

Kako instalirati LEMP Stack na AlmaLinux 8

Da biste izašli iz terminala baze podataka MariaDB, upišite (exit;) kako slijedi:

exit;

Oglas


Instalirajte PHP (PHP-FPM)

Uvezite PHP 8.0 spremište

Posljednji dio za instalaciju u vašoj LEMP instalaciji je PHP. Morat ćete instalirati (PHP-FPM) što je skraćenica za (FastCGI Process Manager). Toplo se preporučuje instalacija PHP-a (Remi) spremište. Za one koji nisu svjesni, Remi je održavatelj PHP izdanja u obitelji Rhel. Za tutorial ćemo instalirati najnoviji PHP 8.0:

Prvi zadatak je instalirati (EPEL) spremište, što znači (Dodatni paketi za Enterprise Linux). Za novije korisnike Rhela i AlmaLinuxa, EPEL sadrži najčešće korištene softverske pakete za Enterprise Linux.

Da biste instalirali EPEL, koristite sljedeće (dnf) naredba terminala:

sudo dnf install epel-release

Primjer rezultata:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Sada kada ste dodali EPEL spremište, omogućite (repozitorij Remi) sa sljedećim:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Zatim upotrijebite (dnf) naredba za ažuriranje popisa spremišta:

sudo dnf update

U svom terminalu ćete primijetiti upit o uvozu (GPG ključ) za Remi repozitorij kao u nastavku:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Imajte na umu da ćete biti upitani još dva puta da upišete (I) još dva puta za uvoz više GPG ključeva. Ovo je dobro za napraviti.

Zatim će se od vas tražiti da nadogradite EPEL izdanje:

Primjer:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Vaše EPEL spremište je sada ažurirano i spremni ste za nastavak na sljedeći dio vodiča.

Omogućite PHP 8.0 (Remi) spremište

PHP 7.2 je zadani PHP izbor za standardnu ​​instalaciju na Rhel/Alma Linux s Remijevim repozitorijom. Brzi savjet je korištenje (popis php-a) naredbu da vidite dostupne opcije i zadane. Sljedeća naredba to može učiniti:

sudo dnf module list php

Dobit ćete sljedeći izlaz kao u nastavku. Obratite pažnju na (D) oznaka za zadani PHP koji će se instalirati:

Kako instalirati LEMP Stack na AlmaLinux 8

Kao što možete vidjeti gore, oznaka (d) nalazi se uz PHP 7.2, koji ćete morati resetirati i promijeniti da biste nastavili s instaliranjem PHP 8.0 na AlmaLinux. Resetiranje PHP popisa jednostavno je sljedećom naredbom:

sudo dnf module list reset php

Zatim omogućite PHP 8.0 sljedećom naredbom:

sudo dnf module enable php:remi-8.0 -y

Primjer izlaza nakon završetka:

Kako instalirati LEMP Stack na AlmaLinux 8

Napomena, ti može omogućiti PHP-7.4 slijedeći naredba za resetiranje dnf modula i korištenjem Umjesto toga, dnf modul omogućuje naredbu php:remi-7.4. Odaberite verziju koju trebate za aplikaciju i ovo bio je samo primjer posjedovanja najnovije PHP verzije za bilo koji PHP izbor za koji se odlučite.

Instalirajte PHP 8.0

Sada kada ste dodali Remi PHP repozitorij i omogućili PHP 8.0 da bude zadana verzija na vašem AlmaLinux sustavu, možete instalirati PHP 8.0 sljedećom naredbom:

sudo dnf install php

Primjer rezultata:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Ako želite instalirati najčešće korištena proširenja za PHP 8.0, koristite sljedeću naredbu:

sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml

Napomena, uklonite opcije koje ne želite ovo nije obavezno.

Primjer rezultata:

Kako instalirati LEMP Stack na AlmaLinux 8

Tip (Y), zatim pritisnite (ENTER TIPKA) nastaviti.

Sada kada ste instalirali PHP 8.0 i proširenja provjerite verziju sljedećom naredbom:

php -v

Primjer rezultata:

PHP 8.0.10 (cli) (built: Aug 24 2021 15:40:40) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.10, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.10, Copyright (c), by Zend Technologies

Na kraju, PHP-FPM poput Nginxa i MariaDB prije nego što nije omogućen prema zadanim postavkama, da biste omogućili PHP-FPM pri pokretanju sustava i da biste ga pokrenuli, koristite sljedeće (systemctl) naredba:

sudo systemctl enable php-fpm && sudo systemctl start php-fpm

Primjer uspješnog omogućavanja (simbol):

Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

Sada, kao i prije s provjerom statusa ostalih zahtjeva u vašoj LEMP instalaciji, koristite sljedeće (systemctl) naredba terminala za provjeru statusa kako biste bili sigurni da sve radi:

systemctl status php-fpm

Ako nema pogrešaka, trebali biste dobiti sljedeći izlaz:

Kako instalirati LEMP Stack na AlmaLinux 8

Za razliku od LEMP instalacija na Debian/Ubuntu koje koriste (www-podaci) korisnika, to nije slučaj s instalacijama obitelji RHEL. Prema zadanim postavkama na AlmaLinuxu, PHP-FPM usluga je dizajnirana za pokretanje (Apači) korisnika, što je netočno budući da koristimo Nginx i to je trebalo ispraviti.

Prvo, otvorite sljedeće (www.conf) konfiguracijska datoteka:

sudo nano /etc/php-fpm.d/www.conf

Zatim zamijenite (Apači) korisnika i grupe s (Nginx) korisnik i grupa:

Kako instalirati LEMP Stack na AlmaLinux 8

Za spremanje pritisnite (CTRL+O) zatim izađi (CTRL+X).

Sada ćete i vi ponovno učitati ili ponovno pokrenuti svoju PHP-FPM uslugu:

sudo systemctl restart php-fpm

Stvorite probnu PHP odredišnu stranicu

Da biste testirali PHP-FPM s Nginx web poslužiteljem, morate stvoriti datoteku u webroot direktoriju.

Za vodič, dat ćete ime datoteke (info.php) kako slijedi:

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

Zalijepite sljedeće (info.php) Datoteka:

<?php

phpinfo();

?>

Spremite datoteku (CTRL+O), zatim izađi (CTRL+X).

Sada u adresnoj traci internetskog preglednika unesite (ip-adresa poslužitelja/info.php). Ako ste instalirali Nginx na svoje lokalno računalo, upotrijebite zadano (127.0.0.1/info.php) or (localhost/info.php).

Trebali biste vidjeti PHP informacije vašeg poslužitelja:

Kako instalirati LEMP Stack na AlmaLinux 8

Ove informacije pokazuju da se PHP skripte mogu ispravno izvoditi s Nginx web poslužiteljem.

Iz sigurnosnih razloga, trebali biste ukloniti datoteku. Da biste to učinili, koristite sljedeću naredbu:

sudo rm -f /var/www/html/info.php

Ako biste radije sačuvali datoteku za buduće svrhe, dodajte sljedeće u blok datoteku Nginx poslužitelja u poslužitelj {} odjeljak:

    location ^~ /info.php {
     allow <YOUR IP ADDRESS>; 
     deny all;
    }

To će omogućiti pristup datoteci samo navedenoj IP adresi. Preporuča se sakriti što više informacija o sustavu od potencijalnih hakera i zlonamjernih aktera.


Oglas


Napravite blok Nginx poslužitelja

Blok Nginx poslužitelja je ekvivalent virtualnom hostu u Apacheu, koji sadrži konfiguraciju za vaš Nginx web poslužitelj koji odgovara javnim posjetiteljima. Ispod je potpuni primjer kako to postići imajući na umu PHP-FPM.

Izradite direktorije blokova poslužitelja

Franjevački (.conf) datoteke se obično nalaze u (stranice-dostupne) i (omogućeno za web-lokacije). Korisnici koji dolaze iz različitih distribucija primijetili bi da je to već instalirano; međutim, za AlmaLinux, morat ćete ih kreirati.

Napravite dva potrebna (stranice) direktorij sa sljedećom naredbom:

sudo mkdir /etc/nginx/sites-available && sudo mkdir /etc/nginx/sites-enabled

Uredite Nginx konfiguracijsku datoteku

Nakon kreiranja potrebnih direktorija, uredite Nginxovu glavnu konfiguracijsku datoteku (nginx.conf) kako slijedi:

sudo nano /etc/nginx/nginx.conf

Zatim zalijepite sljedećih nekoliko redaka u (HTTP) dio (nginx.conf) konfiguracijska datoteka:

include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;

Primjer:

Kako instalirati LEMP Stack na AlmaLinux 8

Bilješka, (size_names_hash_bucket_size) povećava memoriju dodijeljenu raščlanjivanju imena domena.

Spremite konfiguraciju sa (CLTR+O) a zatim (CTRL+X) izaći.

Stvorite konfiguracijsku datoteku bloka poslužitelja

Sada stvorite datoteku bloka poslužitelja pomoću bilo kojeg uređivača teksta, koji će koristiti vodič (nano):

sudo nano /etc/nginx/sites-available/example.com.conf

Zatim morate postaviti konfiguracijsku datoteku s radnim primjerom s omogućenim PHP-FPM.

U nastavku je naveden primjer koji možete kopirati i zalijepiti. Napomena za zamjenu (ime_poslužitelja) s imenom vaše domene ili IP-om:

server {
  listen 80;
  listen [::]:80;
  server_name example.com www.example.com;
  root /var/www/html/example.com/;
  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-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

  }

 # 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;
  }
}

Sada spremite blok poslužitelja sa (CTRL+O), zatim izađite sa (CTRL+X).

Izradite probnu odredišnu stranicu

Dobra ideja je stvoriti ogledno mjesto za testiranje. Ispod je standardna postavka testa index.html:

Ako još niste stvorili svoj stalni ili probni web imenik:

sudo mkdir -p /var/www/htmlexample.com/

Morat ćete konfigurirati dopuštenja, a možete ih postaviti kao korisnika koji je trenutno prijavljen s KORISNIK $ varijabla:

sudo chown -R $USER:$USER /var/www/html/example.com/

Posljednja postavka dopuštenja je dopustiti javnosti čitanje web imenika (pristup vašoj web-lokaciji) korištenjem dopuštenja chmod 755:

sudo chmod -R 755 /var/www

Zatim stvorite index.html Datoteka:

sudo nano /var/www/html/example.com/index.html

Zalijepite sadržaj u nastavku. Kao što možete vidjeti, prilično je osnovno jer ga koristimo samo u svrhe testiranja.

<html>
  <head>
    <title>You have reached Example.com!</title>
  </head>
  <body>
    <h1>Congratulations! The server block is active!</h1>
  </body>
</html>

Spremite konfiguraciju sa (CLTR+O) a zatim (CTRL+X) izaći.

Omogućite blokiranje Nginx poslužitelja

Sada ste u završnoj fazi i sada je vrijeme da omogućite konfiguracijsku datoteku bloka poslužitelja. Da biste to učinili, morate stvoriti simboličku vezu (simbol) za konfiguracijsku datoteku bloka poslužitelja u (stranice-dostupne) direktorij u (omogućene web-lokacije) koristeći sljedeću naredbu:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Testirajte Nginx poslužiteljski blok

Da biste završili, uvijek biste trebali napraviti suho testiranje prije ponovnog pokretanja ili ponovnog učitavanja usluge Nginx, što je ključno ako radite u živom okruženju. Upišite sljedeću naredbu za testiranje konfiguracijske datoteke bloka poslužitelja:

sudo nginx -t

Ako nema grešaka, dobit ćete sljedeći izlaz:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Zatim otvorite svoj internetski preglednik i unesite adresu svoje domene (primjer.com) za testiranje je li vaš poslužitelj dostupan.

Čestitamo, uspješno ste kreirali blok Nginx poslužitelja koji je PHP-FPM spremni.

Kako instalirati LEMP Stack na AlmaLinux 8

Osigurajte Nginx s Let's Encrypt SSL Free certifikatom

U idealnom slučaju, želite pokrenuti svoj Nginx HTTPS pomoću SSL certifikata. Najbolji način da to učinite je korištenje Hajdemo šifrirati, besplatno, automatizirano i otvoreno certifikacijsko tijelo koje vodi neprofitna grupa za istraživanje internetske sigurnosti (ISRG).

Prvo, instalirajte EPEL spremište i mod_ssl paket za bolje ažurirane pakete i sigurnost.

sudo dnf install epel-release mod_ssl -y

Zatim instalirajte certbot paket kako slijedi:

sudo dnf install python3-certbot-nginx -y

Nakon instalacije, pokrenite sljedeću naredbu da započnete kreiranje certifikata:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Ovo je idealno postavljanje koje uključuje prisilno HTTPS 301 preusmjeravanje, zaglavlje Strict-Transport-Security i OCSP spajanje. Samo pazite da prilagodite e-poštu i naziv domene svojim zahtjevima.

Sada će vaš URL biti HTTPS://www.example.com umjesto HTTP://www.example.com.

Napomena, ako koristite stari HTTP URL, automatski će se preusmjeriti na HTTPS.

Po želji, možete postaviti cron posao za automatsko obnavljanje certifikata. Certbot nudi skriptu koja to radi automatski, a prvo možete testirati kako biste bili sigurni da sve radi tako što ćete izvesti suho izvođenje.

sudo certbot renew --dry-run

Ako sve radi, otvorite prozor crontab pomoću sljedeće terminalske naredbe.

sudo crontab -e

Zatim odredite vrijeme kada se treba automatski obnoviti. To bi trebalo provjeravati najmanje svaki dan, a ako certifikat treba obnoviti, skripta neće ažurirati certifikat. Ako trebate pomoć u pronalaženju dobrog vremena za postavljanje, upotrijebite crontab.guru besplatni alat.

00 00 */1 * * /usr/sbin/certbot-auto renew

UŠTEDI (CTRL+O) zatim izađi (CTRL+X), i cronjob će biti automatski omogućen.


Oglas


Komentari i zaključak

U tutorialu ste naučili kako instalirati LEMP stog za osiguranje MariaDB-a, testirati PHP i stvoriti blok poslužitelja Nginx. Općenito, LEMP je pametna opcija. Sada je Nginx nadmašio Apache kao najčešće korišteni softver HTTP web poslužitelja koji je adekvatno konfiguriran i upravljan performansama može vašem web poslužitelju dati odlučujuću prednost u odnosu na druge postavke.

Ostavite komentar