Wéi installéiere ech LEMP Stack op Rocky Linux 8


LEMP ass e populäre Stack deen Open-Source Software enthält déi kollektiv benotzt gëtt fir Webapplikatiounen ze hosten an ze déngen, egal ob an der Produktioun oder all Etapp am Entwécklungszyklus.

D'Terminologie LEMP ass en Akronym fir Linux, Nginx (ausgeschwat als Engine X, also den E) wat e Webbrowser ass, MariaDB oder MySQL - Datebank, a PHP fir dynamesch Inhalter ze veraarbecht). LEMP Stack gëtt populär benotzt fir héich Traffic an héich skalierbar Webapplikatiounen a Websäiten ze hosten.

An dësem Guide léiert Dir wéi Dir de LEMP Stack op Rocky Linux 8.4 installéiere wëllt.

Ier Dir setzt fir de LEMP Stack z'installéieren, gitt sécher datt Dir déi folgend Ufuerderungen op der Plaz hutt.

  • Eng Instanz vu Rocky Linux 8 mat engem Sudo Benotzer konfiguréiert.
  • SSH Zougang zu der Rocky Linux Instanz.

Loosst eis ufänken ...

Schrëtt 1: Installéiert Nginx op Rocky Linux

Den éischte Schrëtt ass den éischte Bestanddeel vum LEMP Stack z'installéieren deen den Nginx Webserver ass. Als éischt, upgrade d'Packagen.

$ sudo dnf update -y

Nodeems den Update fäerdeg ass, installéiert Nginx andeems Dir de folgende Kommando ausféiert. Dëst installéiert Nginx nieft aner Ofhängegkeeten déi vum Webserver erfuerderlech sinn.

$ sudo dnf install nginx 

Wann Nginx op der Plaz ass, aktivéiert et fir op der Bootzäit unzefänken an den Nginx Daemon unzefänken.

$ sudo systemctl enable nginx 
$ sudo systemctl start nginx 

Fir ze bestätegen datt de Webserver leeft, fuert de Kommando aus:

$ sudo systemctl status nginx

Vun der Ausgab kënne mir ofschléissen datt de Webserver op a leeft.

Wann Dir virwëtzeg genuch sidd, kënnt Dir d'Versioun vun Nginx kontrolléieren wéi follegt. D'Ausgab weist datt mir Nginx 1.14.1 lafen.

$ nginx -v

nginx version: nginx/1.14.1

Zousätzlech kënnt Dir bestätegen datt de Browser funktionnéiert andeems Dir d'URL kuckt. Dëst wäert d'Standard Nginx Wëllkomm Säit weisen wat beweist datt alles gutt ass.

http://server-ip or domain name

Wann Dir Probleemer hutt mat der Säit ze gesinn, betruecht de Port 80 opzemaachen oder den HTTP-Traffic op der Firewall z'erméiglechen.

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

Da lued d'Firewall nei a lued d'Säit nei.

$ sudo firewall-cmd --reload

Schrëtt 2: Installéiert MariaDB op Rocky Linux

Fir dëse Guide installéiere mir d'MariaDB Datebank. Dëst ass wéinst der optimiséierter Leeschtung a Räichtum vu Späichermotoren déi et ubitt, wat et vill méi iwwer MySQL mécht.

Fir den MariaDB Datebankserver z'installéieren, fuert de Kommando aus:

$ sudo dnf install mariadb-server mariadb

Eemol gemaach, aktivéiert a start MariaDB wéi gewisen.

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

Dann z'iwwerpréiwen säi Status.

$ sudo systemctl status mariadb

D'Standardastellunge fir MariaDB sinn net sécher genuch an Är Datebank kann einfach verletzt ginn. Als Virsiichtsmoossnahme fir Andréngen op de meescht Basisniveau ofzeschléissen, lafen de Skript hei drënner.

$ sudo mysql_secure_installation

Gitt sécher de Root Passwuert opzestellen.

Fir déi verbleiwen Ufroen, gitt einfach Y fir anonym Benotzer ze läschen, Remote Root Login ze refuséieren, d'Testdatenbank ze läschen, a schliisslech d'Ännerunge späicheren.

Fir op den Datebankserver aloggen, fuert de Kommando:

$ sudo mysql -u root -p

Gitt d'Passwuert un a dréckt ENTER.

Schrëtt 3: Installéiere PHP op Rocky Linux

Déi lescht Komponent fir z'installéieren ass PHP iwwer PHP-FPM, wat fir FastCGI Process Manager steet. Dëst ass en effizienten an héich fortgeschrattene PHP-Prozessor deen Features ubitt déi optimal Leeschtung garantéieren, a Sécherheet fir Websäite mat héijen Traffic.

Fir unzefänken, installéiere mir de Remi Repository deen en Drëtt Partei gratis Repository ass deen déi lescht PHP Versiounen ubitt.

Fir de Remi Repository z'aktivéieren, fuert de Kommando aus:

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

Wann de Remi Repository aktivéiert ass, kuckt d'Lëscht vun de PHP Moduler déi gehost ginn mat dem gewise Kommando.

$ sudo dnf module list php

Vun der Ausgab kënne mir gesinn datt d'Standardversioun 7.2 ass - mam Tag [d]. Wéi och ëmmer, mir wäerte dee leschte Modul installéieren deen Remi 8.0 ass.

Dofir setzt d'Default PHP Moduler zréck an aktivéiert de leschten Remi PHP Modul.

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

Als nächst, update de System an installéiert PHP a PHP-FPM niewent PHP Extensiounen vun Ärer Preferenz.

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

Wann d'Installatioun fäerdeg ass, aktivéiert a start PHP-FPM wéi gewisen.

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

Als nächst, kontrolléiert de lafende Status vu PHP-FPM.

$ sudo systemctl status php-fpm

Normalerweis leeft PHP-FPM als Apache Benotzer, awer well mir Nginx benotzen, musse mir et op Nginx setzen. Also, öffnen déi folgend Konfiguratiounsdatei.

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

Setzt de Benotzer a Grupp op Nginx.

user = nginx
Group = nginx

Duerno lued de PHP-FPM Daemon nei.

$ sudo systemctl reload php-fpm

Fir ze bestätegen datt mir déi lescht Versioun vu PHP installéiert hunn, fuert de Kommando.

$ php -v

Eng aner flott Manéier vum Testin PHP ass andeems Dir eng einfach PHP-Datei erstellt an se an de Webroot-Verzeichnis placéiert deen an /usr/share/nginx/html läit. Also, erstellt eng einfach info.php Datei am /usr/share/nginx/html Webroot Verzeichnis.

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

Füügt de folgenden Inhalt a späichert d'Datei.

<?php

phpinfo();

?>

Fir d'Ännerungen auszeféieren, lued den Nginx Webserver nei.

$ sudo systemctl restart nginx

Schlussendlech, gitt op déi folgend URL.

http://server-ip/info.php

Eng Websäit mat detailléierter Informatioun iwwer déi installéiert PHP Versioun niewent anere PHP Extensiounen gëtt ugewisen.

Zu dësem Zäitpunkt ass eise LEMP Setup fäerdeg. Am nächste Schrëtt wäerte mir e Probe Site hosten andeems en Nginx Server Block konfiguréiert.

Schrëtt 3: Nginx Server Block a Rocky Linux konfiguréieren

E Serverblock erlaabt Administrateuren verschidde Websäiten op engem Server ze hosten andeems se verschidde Sitedokumentrootverzeichnisser definéieren. Dëst sinn d'Verzeichnisser déi d'Websäitdateien enthalen.

Hei wäerte mir eng eenzeg Nginx Server Blockdatei erstellen fir eng Probe Websäit ze hosten.

Éischt erop, erstellt den Dokumentverzeechnes vum Site deen d'Donnéeën vum Site enthält déi fir de Besucher verfügbar sinn. Gitt un datt Dir en Domain mam Numm example.com hutt. Erstellt den Domain Verzeechnes vum Site wéi follegt. Gitt sécher d'example.com mat Ärem Vollqualifizéierten Domain Numm oder registréierten Domain vun Ärem Site z'ersetzen.

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

D'Domain Verzeechnesstruktur ass elo agestallt fir d'Dateien vum Site ze hosten. De Moment ass et de Root Benotzer deen d'Dateien besëtzt. Mir mussen d'Eegeschaft esou setzen datt et de reguläre Benotzer ass deen d'Datei besëtzt.

Fir d'Besëtzer vun de Dateien op den aktuell ageloggte Benotzer z'änneren, benotzt de Chown Kommando.

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

D'Variabel $USER hëlt de Wäert vum aktuell ageloggte Benotzer a gëtt de Benotzer Besëtzer un d'html Dateien an Ënnerverzeechnungen. Zousätzlech, gitt d'Lieserlaabnes fir den allgemenge Webroot Verzeechnes sou datt Site Besucher op d'Säit Säiten zougräifen.

$ sudo chmod -R 755 /var/www

De Site Verzeechnes ass elo gutt konfiguréiert fir d'Websäiten vum Site ze déngen.

Loosst eis elo e Beispill Test Site erstellen. Mir erstellen eng ganz Basis index.html Datei am HTML Verzeechnes vum Domain.

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

Paste den Inhalt hei drënner. Wéi Dir kënnt gesinn, ass et zimmlech Basis well mir et nëmme fir Testzwecker benotzen.

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

Späichert a gitt d'HTML-Datei aus.

Eng Serverblockdatei ass eng Datei déi d'Konfiguratioun vum Site enthält. Et schreift aus wéi den Nginx Webserver op Ufroe vun de Besucher vum Site reagéiert. Mir fänken un mat zwee Verzeechnes ze kreéieren:

  • /etc/nginx/sites-available - Dëst ass de Verzeichnis deen d'Serverblockdatei hält.
  • /etc/nginx/sites-enabled - De Verzeichnis informéiert Nginx datt d'Serverblockdatei prett ass fir Ufroen ze déngen.

Dofir erstellt d'Verzeichnisser wéi follegt:

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

Duerno ännert d'Nginx Haaptkonfiguratiounsdatei.

$ sudo mkdir /etc/nginx/nginx.conf

Paste déi folgend Zeilen. Déi éischt Zeil spezifizéiert de Wee an de Verzeichnis mat zousätzlech Konfiguratiounsdateien. Déi zweet Linn vergréissert d'Erënnerung, déi fir d'Parsing vun Domainnamen zougewisen ass.

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

Retten an Sortie.

Als nächst erstellt eng Serverblockdatei.

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

Paste den Inhalt hei drënner. Ersetzt example.com mat Ärem Fully Qualified Domain Numm (FQDN) oder Server IP Adress.

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

Späichert a gitt d'Datei aus.

Endlech musse mir d'Serverblockdatei aktivéieren. Fir dat ze maachen, erstelle mir e symbolesche Link fir d'Serverblockdatei an de Site-aktivéierten Verzeechnes.

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

Da starten Nginx nei fir d'Ännerungen auszeféieren.

$ sudo systemctl restart nginx

Fir d'Konfiguratioun ze testen, lancéiert Äre Browser a besicht d'Domain vun Ärem Site

http://example.com

Dëst sollt de Site vum Serverblock weisen wéi mir am Schrëtt 3 konfiguréiert hunn.

An dëst wéckelt et. An dësem Guide hu mir Iech duerch d'Installatioun vum LEMP-Stack op Rocky Linux 8 gaang a sinn e Schrëtt weider gaang fir eng Serverblockdatei ze kreéieren an ze konfiguréieren wou mir eng personaliséiert Websäit gehost hunn.