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.