Kako namestiti LEMP Stack na Rocky Linux 8


LEMP je priljubljen sklad, ki obsega odprtokodno programsko opremo, ki se skupaj uporablja za gostovanje in postrežbo spletnih aplikacij, bodisi v produkciji ali kateri koli fazi razvojnega cikla.

Terminologija LEMP je akronim za Linux, Nginx (izgovarja se kot Engine X, od tod E), ki je spletni brskalnik, MariaDB ali MySQL – baza podatkov in PHP za obdelavo dinamične vsebine). Sklad LEMP se popularno uporablja za gostovanje spletnih aplikacij in spletnih mest z velikim prometom in zelo razširljivimi.

V tem priročniku se boste naučili, kako namestiti sklad LEMP na Rocky Linux 8.4.

Preden se odločite za namestitev sklada LEMP, se prepričajte, da imate naslednje zahteve.

  • Primerek Rocky Linuxa 8 s konfiguriranim uporabnikom sudo.
  • SSH dostop do primerka Rocky Linux.

Začnimo…

1. korak: Namestite Nginx na Rocky Linux

Prvi korak je namestitev prve komponente sklada LEMP, ki je spletni strežnik Nginx. Najprej nadgradite pakete.

$ sudo dnf update -y

Ko je posodobitev končana, namestite Nginx tako, da zaženete naslednji ukaz. S tem se Nginx namesti poleg drugih odvisnosti, ki jih zahteva spletni strežnik.

$ sudo dnf install nginx 

Ko je Nginx na mestu, mu omogočite zagon ob zagonu in zaženite demon Nginx.

$ sudo systemctl enable nginx 
$ sudo systemctl start nginx 

Če želite potrditi, da spletni strežnik deluje, izvedite ukaz:

$ sudo systemctl status nginx

Iz rezultatov lahko sklepamo, da spletni strežnik deluje in deluje.

Če ste dovolj radovedni, lahko preverite različico Nginxa, kot sledi. Izhod kaže, da izvajamo Nginx 1.14.1.

$ nginx -v

nginx version: nginx/1.14.1

Poleg tega lahko z brskanjem po prikazanem URL-ju potrdite, da brskalnik deluje. To bo prikazalo privzeto pozdravno stran Nginx, ki kaže, da je vse v redu.

http://server-ip or domain name

Če imate težave pri ogledu strani, razmislite o odprtju vrat 80 ali dovolitvi prometa HTTP na požarnem zidu.

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

Nato znova naložite požarni zid in znova naložite stran.

$ sudo firewall-cmd --reload

2. korak: Namestite MariaDB na Rocky Linux

Za ta priročnik bomo namestili zbirko podatkov MariaDB. To je posledica optimizirane zmogljivosti in množice motorjev za shranjevanje, ki jih ponuja, zaradi česar je veliko boljši od MySQL.

Če želite namestiti strežnik baze podatkov MariaDB, zaženite ukaz:

$ sudo dnf install mariadb-server mariadb

Ko končate, omogočite in zaženite MariaDB, kot je prikazano.

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

Nato preverite njegovo stanje.

$ sudo systemctl status mariadb

Privzete nastavitve za MariaDB niso dovolj varne in vašo bazo podatkov je mogoče zlahka zlomiti. Kot previdnostni ukrep za odvračanje vsiljivcev na najosnovnejši ravni zaženite spodnji skript.

$ sudo mysql_secure_installation

Ne pozabite nastaviti root gesla.

Za preostale pozive preprosto vnesite Y, da odstranite anonimne uporabnike, zavrnete prijavo na daljavo, odstranite testno bazo podatkov in končno shranite izvedene spremembe.

Za prijavo v strežnik baz podatkov zaženite ukaz:

$ sudo mysql -u root -p

Vnesite geslo in pritisnite ENTER.

3. korak: Namestite PHP na Rocky Linux

Zadnja komponenta za namestitev je PHP prek PHP-FPM, kar pomeni FastCGI Process Manager. To je učinkovit in zelo napreden procesor za PHP, ki zagotavlja funkcije, ki zagotavljajo optimalno delovanje in varnost za spletna mesta z velikim prometom.

Za začetek bomo namestili repozitorij Remi, ki je brezplačno skladišče tretjih oseb, ki ponuja najnovejše različice PHP.

Če želite omogočiti skladišče Remi, zaženite ukaz:

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

Ko je repozitorij Remi omogočen, si oglejte seznam modulov PHP, ki gostujejo s prikazanim ukazom.

$ sudo dnf module list php

Iz izhoda lahko vidimo, da je privzeta različica 7.2 – z oznako [d]. Vendar bomo namestili najnovejši modul, ki je Remi 8.0.

Zato ponastavite privzete module PHP in omogočite najnovejši modul Remi PHP.

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

Nato posodobite sistem in namestite PHP in PHP-FPM poleg PHP razširitev po vaši želji.

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

Ko je namestitev končana, omogočite in zaženite PHP-FPM, kot je prikazano.

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

Nato preverite stanje delovanja PHP-FPM.

$ sudo systemctl status php-fpm

Običajno PHP-FPM deluje kot uporabnik Apache, a ker uporabljamo Nginx, ga moramo nastaviti na Nginx. Torej, odprite naslednjo konfiguracijsko datoteko.

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

Nastavite uporabnika in skupino na Nginx.

user = nginx
Group = nginx

Nato znova naložite demon PHP-FPM.

$ sudo systemctl reload php-fpm

Če želite potrditi, da smo namestili najnovejšo različico PHP, zaženite ukaz.

$ php -v

Drug odličen način Testin PHP je tako, da ustvarite preprosto datoteko PHP in jo postavite v imenik webroot, ki se nahaja v /usr/share/nginx/html. Torej ustvarite preprosto datoteko info.php v spletnem korenskem imeniku /usr/share/nginx/html.

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

Dodajte naslednjo vsebino in shranite datoteko.

<?php

phpinfo();

?>

Če želite izvesti spremembe, znova naložite spletni strežnik Nginx.

$ sudo systemctl restart nginx

Na koncu dostopajte do naslednjega URL-ja.

http://server-ip/info.php

Prikazana bo spletna stran s podrobnimi informacijami o nameščeni različici PHP poleg drugih razširitev PHP.

Na tej točki je naša nastavitev LEMP končana. V naslednjem koraku bomo gostili vzorčno spletno mesto s konfiguracijo strežniškega bloka Nginx.

3. korak: Konfigurirajte blok strežnika Nginx v Rocky Linuxu

Strežniški blok omogoča skrbnikom, da na enem strežniku gostijo več spletnih mest z definiranjem različnih korenskih imenikov dokumentov spletnega mesta. To so imeniki, ki vsebujejo datoteke spletnega mesta.

Tukaj bomo ustvarili eno datoteko blokov strežnika Nginx za gostovanje vzorčnega spletnega mesta.

Najprej ustvarite imenik dokumentov spletnega mesta, ki bo vseboval podatke spletnega mesta, ki bodo na voljo obiskovalcem spletnega mesta. Predpostavimo, da imate domeno example.com. Ustvarite imenik domene spletnega mesta, kot sledi. Ne pozabite zamenjati example.com s popolnoma kvalificiranim imenom domene ali registrirano domeno vašega spletnega mesta.

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

Struktura imenika domene je zdaj nastavljena za gostovanje datotek spletnega mesta. Trenutno je lastnik datotek root uporabnik. Lastništvo moramo nastaviti tako, da je redni uporabnik lastnik datoteke.

Če želite spremeniti lastništvo datotek na trenutno prijavljenega uporabnika, uporabite ukaz chown.

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

Spremenljivka $USER prevzame vrednost trenutno prijavljenega uporabnika in uporabniku dodeli lastništvo datotekam in podimenikom html. Poleg tega odobrite dovoljenje za branje splošnemu spletnemu korenskemu imeniku, tako da lahko obiskovalci spletnega mesta dostopajo do strani mesta.

$ sudo chmod -R 755 /var/www

Imenik spletnega mesta je zdaj dobro konfiguriran za prikazovanje spletnih strani spletnega mesta.

Zdaj ustvarimo vzorčno testno mesto. Ustvarili bomo zelo osnovno datoteko index.html v imeniku html domene.

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

Prilepite spodnjo vsebino. Kot lahko vidite, je precej osnovna, saj jo uporabljamo samo za namene testiranja.

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

Shranite in zaprite datoteko HTML.

Datoteka strežniškega bloka je datoteka, ki vsebuje konfiguracijo spletnega mesta. Navaja, kako se spletni strežnik Nginx odziva na zahteve obiskovalcev spletnega mesta. Začeli bomo z ustvarjanjem dveh imenikov:

  • /etc/nginx/sites-available – to je imenik, v katerem bo datoteka z blokom strežnika.
  • /etc/nginx/sites-enabled – imenik obvesti Nginx, da je datoteka strežniškega bloka pripravljena za serviranje zahtev.

Zato ustvarite imenike na naslednji način:

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

Nato uredite glavno konfiguracijsko datoteko Nginxa.

$ sudo mkdir /etc/nginx/nginx.conf

Prilepite naslednje vrstice. Prva vrstica določa pot do imenika, ki vsebuje dodatne konfiguracijske datoteke. Druga vrstica poveča pomnilnik, dodeljen za razčlenjevanje domenskih imen.

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

Shrani in zapusti.

Nato ustvarite datoteko z blokom strežnika.

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

Prilepite spodnjo vsebino. Zamenjajte example.com s svojim popolnoma kvalificiranim imenom domene (FQDN) ali naslovom IP strežnika.

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

Shranite in zaprite datoteko.

Končno moramo omogočiti datoteko z blokom strežnika. V ta namen bomo ustvarili simbolično povezavo za datoteko strežniškega bloka do imenika, kjer so omogočena spletna mesta.

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

Nato znova zaženite Nginx, da se izvedejo spremembe.

$ sudo systemctl restart nginx

Če želite preizkusiti konfiguracijo, zaženite brskalnik in obiščite domeno svojega spletnega mesta

http://example.com

To bi moralo prikazati spletno mesto strežniškega bloka, kot smo konfigurirali v 3. koraku.

In to zaključi. V tem priročniku smo vas popeljali skozi namestitev sklada LEMP na Rocky Linux 8 in šli še korak dlje, da smo ustvarili in konfigurirali datoteko strežniškega bloka, kjer smo gostili spletno mesto po meri.