Kako instalirati LEMP Stack na Rocky Linux 8


LEMP je popularan stog koji se sastoji od softvera otvorenog koda koji se zajednički koristi za hostovanje i posluživanje web aplikacija, bilo u proizvodnji ili bilo kojoj fazi razvojnog ciklusa.

Terminologija LEMP je akronim za Linux, Nginx (izgovara se kao Engine X, otuda i E) što je web preglednik, MariaDB ili MySQL – baza podataka i PHP za obradu dinamičkog sadržaja). LEMP stog se popularno koristi za hostovanje web aplikacija i web stranica s velikim prometom i vrlo skalabilnim.

U ovom vodiču ćete naučiti kako instalirati LEMP stack na Rocky Linux 8.4.

Preduvjeti

Prije nego što počnete instalirati LEMP stog, uvjerite se da imate sljedeće zahtjeve.

  • Instanca Rocky Linuxa 8 s konfiguriranim sudo korisnikom.
  • SSH pristup Rocky Linux instanci.

Hajde da počnemo…

Korak 1: Instalirajte Nginx na Rocky Linux

Prvi korak je instaliranje prve komponente LEMP steka koji je Nginx web server. Prvo, nadogradite pakete.

sudo dnf update -y

Nakon što se ažuriranje završi, instalirajte Nginx tako što ćete pokrenuti sljedeću naredbu. Ovo instalira Nginx zajedno s drugim ovisnostima koje zahtijeva web server.

sudo dnf install nginx 

Kada se Nginx postavi, omogućite mu da se pokrene u vrijeme pokretanja i pokrenite Nginx demon.

sudo systemctl enable nginx 
sudo systemctl start nginx 

Da biste potvrdili da web server radi, izvršite naredbu:

sudo systemctl status nginx

Iz rezultata možemo zaključiti da je web server pokrenut i radi.

Ako ste dovoljno radoznali, možete provjeriti verziju Nginxa na sljedeći način. Izlaz pokazuje da koristimo Nginx 1.14.1.

nginx -v

nginx version: nginx/1.14.1

Osim toga, možete potvrditi da pretraživač radi tako što ćete pregledati prikazani URL. Ovo će prikazati zadanu Nginx stranicu dobrodošlice koja pokazuje da je sve u redu.

http://server-ip or domain name

Ako imate problema s pregledavanjem stranice, razmislite o otvaranju porta 80 ili dopuštanju HTTP prometa na zaštitnom zidu.

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

Zatim ponovo učitajte zaštitni zid i ponovo učitajte stranicu.

sudo firewall-cmd --reload

Korak 2: Instalirajte MariaDB na Rocky Linux

Za ovaj vodič, mi ćemo instalirati MariaDB bazu podataka. Ovo je zbog optimizovanih performansi i bogatstva mehanizama za skladištenje koje pruža, što ga čini daleko superiornijim u odnosu na MySQL.

Da instalirate MariaDB server baze podataka, pokrenite naredbu:

sudo dnf install mariadb-server mariadb

Kada završite, omogućite i pokrenite MariaDB kao što je prikazano.

sudo systemctl enable mariadb
sudo systemctl start mariadb

Zatim provjerite njegov status.

sudo systemctl status mariadb

Zadane postavke za MariaDB nisu dovoljno sigurne i vaša baza podataka može biti lako probijena. Kao mjeru predostrožnosti za odvraćanje uljeza na najosnovnijem nivou, pokrenite skriptu ispod.

sudo mysql_secure_installation

Obavezno postavite Root lozinku.

Za preostale upite, jednostavno upišite 'Y' da biste uklonili anonimne korisnike, odbili udaljenu root prijavu, uklonili testnu bazu podataka i na kraju sačuvali napravljene promjene.

Da biste se prijavili na server baze podataka, pokrenite naredbu:

sudo mysql -u root -p

Unesite lozinku i pritisnite ENTER.

Korak 3: Instalirajte PHP na Rocky Linux

Posljednja komponenta za instalaciju je PHP preko PHP-FPM, što je skraćenica za FastCGI Process Manager. Ovo je efikasan i vrlo napredan procesor za PHP koji pruža funkcije koje garantuju optimalne performanse i sigurnost za web stranice s velikim prometom.

Za početak ćemo instalirati Remi spremište koje je besplatno spremište treće strane koje pruža najnovije verzije PHP-a.

Da omogućite Remi spremište, pokrenite naredbu:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Kada je repozitorijum Remi omogućen, pogledajte listu PHP modula koji se hostuju pomoću prikazane komande.

sudo dnf module list php

Iz izlaza možemo vidjeti da je zadana verzija 7.2 – sa oznakom [d]. Međutim, mi ćemo instalirati najnoviji modul koji je Remi 8.0.

Stoga, resetirajte zadane PHP module i omogućite najnoviji Remi PHP modul.

sudo dnf module list reset php
sudo dnf module enable php:remi-8.0

Zatim ažurirajte sistem i instalirajte PHP i PHP-FPM uz PHP ekstenzije po vašoj želji.

sudo dnf install php php-fpm php-gd php-mysqlnd php-cli php-opcache

Kada se instalacija završi, omogućite i pokrenite PHP-FPM kao što je prikazano.

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

Zatim provjerite radni status PHP-FPM.

sudo systemctl status php-fpm

Obično, PHP-FPM radi kao Apache korisnik, ali pošto koristimo Nginx, moramo ga postaviti na Nginx<. Dakle, otvorite sljedeću konfiguracijsku datoteku.

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

Postavite korisnika i grupu na Nginx.

user = nginx
Group = nginx

Nakon toga, ponovo učitajte PHP-FPM demon.

sudo systemctl reload php-fpm

Da biste potvrdili da smo instalirali najnoviju verziju PHP-a, pokrenite naredbu.

php -v

Još jedan odličan način Testin PHP-a je kreiranje jednostavne PHP datoteke i postavljanje u webroot direktorij koji se nalazi u /usr/share/nginx/html. Dakle, kreirajte jednostavnu datoteku info.php u /usr/share/nginx/html web root direktoriju.

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

Dodajte sljedeći sadržaj i sačuvajte datoteku.

<?php

phpinfo();

?>

Da biste izvršili promjene, ponovo učitajte Nginx web server.

sudo systemctl restart nginx

Konačno, pristupite sljedećem URL-u.

http://server-ip/info.php

Biće prikazana veb stranica sa detaljnim informacijama o instaliranoj verziji PHP-a zajedno sa drugim PHP ekstenzijama.

U ovom trenutku, naše LEMP postavljanje je završeno. U sljedećem koraku ćemo ugostiti oglednu stranicu tako što ćemo konfigurirati blok Nginx servera.

Korak 3: Konfigurirajte blok Nginx servera u Rocky Linuxu

Blok servera omogućava administratorima da hostuju više veb lokacija na jednom serveru definisanjem različitih korenskih direktorijuma dokumenata sajta. Ovo su direktoriji koji sadrže datoteke web stranice.

Ovdje ćemo kreirati jednu datoteku bloka Nginx servera za hostiranje uzorka web stranice.

Korak 1: Kreirajte imenik web stranice

Prvo, kreirajte direktorij dokumenata stranice koji će sadržavati podatke stranice koji će biti dostupni posjetiteljima stranice. Pretpostavimo da imate domenu pod nazivom example.com. Kreirajte direktorij domene web-mjesta na sljedeći način. Obavezno zamijenite example.com potpuno kvalificiranim imenom domene ili registriranom domenom svoje web lokacije.

sudo mkdir -p /var/www/example.com/html

Korak 2: Postavite vlasništvo i dozvole na web stranici

Struktura direktorija domene je sada postavljena za smještaj datoteka web-mjesta. Trenutno je root korisnik taj koji posjeduje datoteke. Moramo postaviti vlasništvo tako da obični korisnik bude vlasnik datoteke.

Da promijenite vlasništvo nad datotekama na trenutno prijavljenog korisnika, koristite chown komandu.

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

Varijabla $USER uzima vrijednost trenutno prijavljenog korisnika i dodjeljuje korisniku vlasništvo nad html datotekama i poddirektorijumima. Dodatno, dodijelite dopuštenje za čitanje opštem web korijenskom direktoriju tako da posjetitelji web-mjesta mogu pristupiti stranicama web-mjesta.

sudo chmod -R 755 /var/www

Direktorij web-mjesta je sada dobro konfiguriran da služi web stranicama web-mjesta.

Korak 3: Kreirajte demo stranicu

Kreirajmo sada ogledno mjesto za testiranje. Napravit ćemo vrlo osnovnu datoteku index.html u html direktoriju domene.

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

Zalijepite sadržaj ispod. Kao što vidite, prilično je osnovno jer ga koristimo samo u svrhe testiranja.

<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success! The server block is active!</h1>
  </body>
</html>

Sačuvajte i izađite iz HTML datoteke.

Korak 4: Kreirajte Nginx serverski blok za web lokaciju

Datoteka bloka servera je datoteka koja sadrži konfiguraciju stranice. Navodi kako Nginx web server odgovara na zahtjeve posjetitelja stranice. Počećemo kreiranjem dva direktorija:

  • /etc/nginx/sites-available – Ovo je direktorij koji će sadržavati datoteku bloka servera.
  • /etc/nginx/sites-enabled – Direktorij obavještava Nginx da je datoteka bloka servera spremna za posluživanje zahtjeva.

Stoga kreirajte direktorije na sljedeći način:

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

Nakon toga, uredite Nginxov glavni konfiguracijski fajl.

sudo mkdir /etc/nginx/nginx.conf

Zalijepite sljedeće redove. Prvi red specificira putanju do direktorija koji sadrži dodatne konfiguracijske datoteke. Drugi red povećava memoriju dodijeljenu raščlanjivanju imena domena.

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

Sačuvaj i izađi.

Zatim kreirajte datoteku bloka servera.

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

Zalijepite sadržaj ispod. Zamijenite example.com sa svojim potpuno kvalificiranim imenom domene (FQDN) ili IP adresom servera.

server {
    listen  80;

    server_name example.com www.example.com;

    location / {
        root  /var/www/example.com/html;
        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }

    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

Sačuvajte i izađite iz datoteke.

Korak 5: Omogućite blokiranje Nginx servera

Konačno, moramo omogućiti serverski blok fajl. Da bismo to učinili, kreirat ćemo simboličku vezu za datoteku bloka servera do direktorija s omogućenim web lokacijama.

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

Zatim ponovo pokrenite Nginx da bi se promjene izvršile.

sudo systemctl restart nginx

Korak 6: Testirajte Nginx web lokaciju

Da biste testirali konfiguraciju, pokrenite pretraživač i posjetite domenu svoje web stranice

http://example.com

Ovo bi trebalo da prikaže lokaciju serverskog bloka kako smo konfigurisali u koraku 3.

I ovo završava. U ovom vodiču smo vas proveli kroz instalaciju LEMP steka na Rocky Linux 8 i otišli korak dalje da kreirate i konfigurišete serverski blok fajl gde smo hostovali prilagođena web stranica.