Hvordan installere LEMP Stack på Rocky Linux 8


LEMP er en populær stabel som består av åpen kildekode-programvare som brukes til å være vert for og betjene nettapplikasjoner, enten det er i produksjon eller på et hvilket som helst stadium i utviklingssyklusen.

Terminologien LEMP er et akronym for Linux, Nginx (uttales som Engine X, derav E) som er en nettleser, MariaDB eller MySQL – database og PHP for behandling av dynamisk innhold). LEMP stack er populært brukt for å være vert for høytrafikk og svært skalerbare nettapplikasjoner og nettsteder.

I denne veiledningen lærer du hvordan du installerer LEMP-stakken på Rocky Linux 8.4.

Forutsetninger

Før du begynner å installere LEMP-stabelen, sørg for at du har følgende krav på plass.

  • En forekomst av Rocky Linux 8 med en sudo-bruker konfigurert.
  • SSH-tilgang til Rocky Linux-forekomsten.

La oss komme i gang…

Trinn 1: Installer Nginx på Rocky Linux

Det første trinnet er å installere den første komponenten i LEMP-stakken som er Nginx-nettserveren. Først oppgraderer du pakkene.

sudo dnf update -y

Etter at oppdateringen er fullført, installer Nginx ved å kjøre følgende kommando. Dette installerer Nginx sammen med andre avhengigheter som kreves av webserveren.

sudo dnf install nginx 

Når Nginx er på plass, aktiver den til å starte ved oppstartstid og start Nginx-demonen.

sudo systemctl enable nginx 
sudo systemctl start nginx 

For å bekrefte at webserveren kjører, kjør kommandoen:

sudo systemctl status nginx

Fra utdataene kan vi konkludere at webserveren er oppe og går.

Hvis du er nysgjerrig nok, kan du sjekke versjonen av Nginx som følger. Utdataene indikerer at vi kjører Nginx 1.14.1.

nginx -v

nginx version: nginx/1.14.1

I tillegg kan du bekrefte at nettleseren fungerer ved å bla gjennom URL-en som vises. Dette vil vise standard Nginx velkomstside som indikerer at alt er bra.

http://server-ip or domain name

Hvis du har problemer med å se siden, bør du vurdere å åpne port 80 eller tillate HTTP-trafikk på brannmuren.

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

Last deretter inn brannmuren på nytt og last inn siden på nytt.

sudo firewall-cmd --reload

Trinn 2: Installer MariaDB på Rocky Linux

For denne veiledningen vil vi installere MariaDB-databasen. Dette er på grunn av den optimaliserte ytelsen og vell av lagringsmotorer den gir, noe som gjør den mye mer overlegen MySQL.

For å installere MariaDB-databasetjeneren, kjør kommandoen:

sudo dnf install mariadb-server mariadb

Når du er ferdig, aktiver og start MariaDB som vist.

sudo systemctl enable mariadb
sudo systemctl start mariadb

Bekreft deretter statusen.

sudo systemctl status mariadb

Standardinnstillingene for MariaDB er ikke sikre nok og databasen din kan lett bli brutt. Som en forholdsregel for å avskrekke inntrengere på det mest grunnleggende nivået, kjør skriptet nedenfor.

sudo mysql_secure_installation

Sørg for å sette opp root-passordet.

For de resterende spørsmålene, skriv ganske enkelt 'Y' for å fjerne anonyme brukere, nekte ekstern rotpålogging, fjerne testdatabasen og til slutt lagre endringene som er gjort.

For å logge på databaseserveren, kjør kommandoen:

sudo mysql -u root -p

Oppgi passordet og trykk ENTER.

Trinn 3: Installer PHP på Rocky Linux

Den siste komponenten som skal installeres er PHP via PHP-FPM, som står for FastCGI Process Manager. Dette er en effektiv og svært avansert prosessor for PHP som gir funksjoner som garanterer optimal ytelse, og sikkerhet for nettsteder med høy trafikk.

Til å begynne med vil vi installere Remi-depotet, som er et tredjeparts gratis depot som gir de nyeste PHP-versjonene.

For å aktivere Remi-depotet, kjør kommandoen:

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

Når Remi-depotet er aktivert, sjekk ut listen over PHP-moduler som er vert ved hjelp av kommandoen som vises.

sudo dnf module list php

Fra utdataene kan vi se at standardversjonen er 7.2 – med taggen [d]. Vi skal imidlertid installere den nyeste modulen som er Remi 8.0.

Tilbakestill derfor standard PHP-moduler og aktiver den nyeste Remi PHP-modulen.

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

Deretter oppdaterer du systemet og installer PHP og PHP-FPM sammen med PHP-utvidelsene du foretrekker.

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

Når installasjonen er fullført, aktiver og start PHP-FPM som vist.

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

Deretter bekrefter du kjørestatusen til PHP-FPM.

sudo systemctl status php-fpm

Normalt kjører PHP-FPM som Apache-bruker, men siden vi bruker Nginx, må vi sette den til Nginx<. Så åpne følgende konfigurasjonsfil.

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

Sett brukeren og gruppen til Nginx.

user = nginx
Group = nginx

Deretter laster du PHP-FPM-demonen på nytt.

sudo systemctl reload php-fpm

For å bekrefte at vi har installert den nyeste versjonen av PHP, kjør kommandoen.

php -v

En annen fin måte å teste PHP på er å lage en enkel PHP-fil og plassere den i webroot-katalogen som ligger i /usr/share/nginx/html. Så, lag en enkel info.php-fil i /usr/share/nginx/html webrotkatalogen.

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

Legg til følgende innhold og lagre filen.

<?php

phpinfo();

?>

For å utføre endringene, last inn Nginx-nettserveren på nytt.

sudo systemctl restart nginx

Til slutt får du tilgang til følgende URL.

http://server-ip/info.php

En nettside med detaljert informasjon om den installerte PHP-versjonen sammen med andre PHP-utvidelser vil bli vist.

På dette tidspunktet er LEMP-oppsettet vårt fullført. I neste trinn skal vi være vert for et eksempelnettsted ved å konfigurere en Nginx-serverblokk.

Trinn 3: Konfigurer Nginx Server Block i Rocky Linux

En serverblokk lar administratorer være vert for flere nettsteder på én server ved å definere forskjellige rotkataloger for nettstedsdokumenter. Dette er katalogene som inneholder nettsidefilene.

Her vil vi lage en enkelt Nginx-serverblokkfil for å være vert for et eksempelnettsted.

Trinn 1: Opprett en nettstedskatalog

Først oppretter du nettstedets dokumentkatalog som vil inneholde nettstedets data som vil være tilgjengelig for besøkende på nettstedet. Anta at du har et domene kalt example.com. Opprett nettstedets domenekatalog som følger. Sørg for å erstatte example.com med nettstedets fullt kvalifiserte domenenavn eller registrerte domene.

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

Trinn 2: Angi eierskap og tillatelser på nettstedet

Domenets katalogstruktur er nå satt til å være vert for nettstedets filer. For øyeblikket er det rotbrukeren som eier filene. Vi må angi eierskapet slik at det er den vanlige brukeren som eier filen.

For å endre filenes eierskap til den påloggede brukeren, bruk chown-kommandoen.

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

Variabelen $USER tar verdien til den påloggede brukeren og gir brukeren eierskap til html-filene og underkatalogene. Gi i tillegg lesetillatelse til den generelle webrotkatalogen slik at besøkende på nettstedet kan få tilgang til sidene.

sudo chmod -R 755 /var/www

Nettstedkatalogen er nå godt konfigurert for å betjene nettstedets nettsider.

Trinn 3: Opprett en demoside

La oss nå lage et eksempelteststed. Vi vil lage en veldig enkel index.html-fil i domenets html-katalog.

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

Lim inn innholdet nedenfor. Som du kan se, er det ganske grunnleggende siden vi bare bruker det til testformål.

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

Lagre og avslutt HTML-filen.

Trinn 4: Lag en Nginx-serverblokk for nettstedet

En serverblokkfil er en fil som inneholder nettstedets konfigurasjon. Den forklarer hvordan Nginx-nettserveren svarer på forespørsler fra nettstedets besøkende. Vi begynner med å lage to kataloger:

  • /etc/nginx/sites-available – Dette er katalogen som skal inneholde serverblokkfilen.
  • /etc/nginx/sites-enabled – Katalogen varsler Nginx om at serverblokkfilen er klar til å betjene forespørsler.

Opprett derfor katalogene som følger:

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

Deretter redigerer du Nginxs hovedkonfigurasjonsfil.

sudo mkdir /etc/nginx/nginx.conf

Lim inn følgende linjer. Den første linjen spesifiserer banen til katalogen som inneholder ytterligere konfigurasjonsfiler. Den andre linjen øker minnet som er allokert til å analysere domenenavn.

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

Lagre og lukk.

Deretter oppretter du en serverblokkfil.

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

Lim inn innholdet nedenfor. Erstatt example.com med ditt fullt kvalifiserte domenenavn (FQDN) eller serverens IP-adresse.

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

Lagre og avslutt filen.

Trinn 5: Aktiver Nginx Server Block

Til slutt må vi aktivere serverblokkfilen. For å gjøre det, oppretter vi en symbolsk lenke for serverblokkfilen til den nettstedaktiverte katalogen.

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

Start deretter Nginx på nytt for at endringene skal utføres.

sudo systemctl restart nginx

Trinn 6: Test Nginx-nettstedet

For å teste konfigurasjonen, start nettleseren og besøk nettstedets domene

http://example.com

Dette skal vise serverblokkens nettsted slik vi konfigurerte i trinn 3.

Og dette avslutter det. I denne veiledningen har vi ledet deg gjennom installasjonen av LEMP-stakken på Rocky Linux 8 og gikk et skritt videre for å opprette og konfigurere en serverblokkfil der vi var vert for en tilpasset nettsted.