Come installare LEMP Stack (Nginx, MariaDB e PHP) su Rocky Linux 8

LEMP è una raccolta di software open source comunemente usati insieme per servire applicazioni web. Il termine LEMP è un acronimo che rappresenta la configurazione di un sistema operativo Linux con un Nginx (pronunciato motore-x, da cui la E nell'acronimo), con i dati del sito archiviati in un database MySQL o MariaDB e contenuti dinamici elaborati da PHP che è comunemente utilizzato per ospitare siti Web estesi grazie alle sue prestazioni e scalabilità.

Nel seguente tutorial imparerai come installare LEMP (Nginx, MariaDB, PHP 8.0) su Rocky Linux 8.

Prerequisiti

  • Sistema operativo consigliato: Rocky Linux 8.+.
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti richiesti: php, mariadb, nginx

Aggiorna il sistema operativo

Aggiorna il tuo Rocky linux sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo dnf upgrade --refresh -y

Il tutorial utilizzerà il comando sudo che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana supponendo che tu abbia lo stato di sudo.

Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@rockylinux ~]$ sudo whoami
root

Per configurare un account sudo esistente o nuovo, visita il nostro tutorial su Come aggiungere un utente a Sudoers su Rocky Linux.

Per utilizzare l' account di root, usa il seguente comando con la password di root per accedere.

su

pubblicità


Installa il repository EPEL

Il primo compito è installare il (EPEL) repository, che sta per (Pacchetti extra per Enterprise Linux). Per i nuovi utenti di Rhel e Rocky Linux, EPEL contiene i pacchetti software più comunemente usati per Enterprise Linux.

Per installare EPEL, utilizzare quanto segue (dnf) comando da terminale:

sudo dnf install epel-release

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Installa Nginx

Per avviare l'installazione dello stack LEMP, è necessario installare il Nginx web server, che può essere fatto con il seguente comando da terminale:

sudo dnf install nginx 

Esempio di output:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Conferma l'installazione controllando la versione build:

nginx -v

Esempio di output:

nginx version: nginx/1.14.1

Per impostazione predefinita, questa è una versione molto vecchia ma stabile di Nginx; con la directory EPEL installata, è possibile installare una versione più recente di Nginx stable o mainline. Per scoprire quali versioni sono disponibili, utilizzare il seguente comando:

sudo dnf module list nginx

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Come puoi vedere, il repository EPEL ti ha dato una nuova versione stabile e principale.

Se desideri procedere con una delle due versioni, rimuovi prima la versione precedente:

sudo dnf autoremove nginx

Quindi, ripristina l'elenco dei moduli Nginx:

sudo dnf module reset nginx

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Ora abilita o stabile OR linea principale:

Abilita l'esempio stabile di Nginx:

sudo dnf module enable nginx:1.20

Abilita l'esempio della linea principale di Nginx:

sudo dnf module enable nginx:mainline

Esempio nel terminale di importazione della linea principale:

Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Ora installa la nuova versione di Nginx:

sudo dnf install nginx
Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Conferma l'installazione controllando la versione build:

nginx -v

Esempio di output:

nginx version: nginx/1.19.10

Per impostazione predefinita, quando si installa Nginx su Rocky Linux, non è abilitato. Per abilitare all'avvio e all'avvio, utilizzare quanto segue:

sudo systemctl enable nginx && sudo systemctl start nginx

Esempio di abilitazione riuscita (collegamento simbolico):

Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

Ora, controlla lo stato del tuo servizio Nginx con il seguente comando da terminale:

systemctl status nginx

Esempio di output che dice che è tutto ok:

Come installare LEMP Stack su Rocky Linux 8

Ora puoi confermare che il tuo server web Nginx è operativo inserendo (HTTP://server-ip) o (HTTP://domain-name) nel tuo browser Internet e dovresti ottenere quanto segue:

Come installare LEMP Stack su Rocky Linux 8

pubblicità


Configura le regole del firewall

Non aggiunge automaticamente le regole del firewall alle porte standard 80 o 443 durante l'installazione di Nginx. Prima di continuare, dovresti impostare le seguenti regole, questo dipenderà dalle porte che utilizzerai, ma tutte le opzioni sono elencate.

Apri la porta 80 o HTTP:

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

Apri la porta 443 o HTTPS:

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

Ricarica il firewall per rendere effettive le modifiche

sudo firewall-cmd --reload

Installa e configura MariaDB

Installazione

MariaDB è un sostituto drop-in per MySQL ed è stato sviluppato da ex membri del team MySQL preoccupati che Oracle potesse trasformare MySQL in un prodotto closed-source e potenzialmente a pagamento.

MariaDB 10.3 per Rocky Linux 8

Inserisci il seguente comando per installare MariaDB su Rocky Linux 8:

sudo dnf install mariadb-server mariadb

Esempio di output:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Per confermare l'installazione di MariaDB e per verificare quale build è installata, digita il seguente comando:

mysql --version

Esempio di output:

mysql  Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1

MariaDB 10.5 per Rocky Linux 8

Come sopra, questa è la stabile ma obsoleta MariaDB 10.3, se desideri la versione 10.5 più recente, che ora è classificata come la vecchia stabile con l'arrivo di MariaDB 10.6.

Elenca i moduli disponibili:

sudo dnf module list mariadb

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Come puoi vedere sopra, il file (D) tag è accanto a MariaDB 10.3, che dovrai reimpostare e modificare per installare MariaDB 10.5 su Rocky Linux. Per ripristinare, utilizzare il seguente comando:

sudo dnf module list reset mariadb

Se hai installato MariaDB 10.3, devi rimuoverlo:

sudo dnf autoremove mariadb -y

Quindi, abilita MariaDB 10.5 con il seguente comando:

sudo dnf module enable mariadb:10.5

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Installa MariaDB 10.5 utilizzando il seguente comando:

sudo dnf install mariadb-server mariadb

Esempio di output:

Come installare LEMP Stack su Rocky Linux 8

Tipologia (Y), quindi premere (TASTO INVIO) procedere.

Per confermare l'installazione di MariaDB e per verificare quale build è installata, digita il seguente comando:

mysql --version

Esempio di output:

mysql  Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using  EditLine wrapper

Per impostazione predefinita, MariaDB non viene abilitato come Nginx prima. Per avviare e abilitare MariaDB all'avvio del sistema, utilizzare quanto segue (sistemactl) comando da terminale:

sudo systemctl enable mariadb && sudo systemctl start mariadb

Esempio di abilitazione riuscita (collegamento simbolico):

Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

Ora, assicurati che tutto sia operativo con il seguente comando:

systemctl status mariadb

Esempio di output che dice che è tutto ok:

Come installare LEMP Stack su Rocky Linux 8

Configurazione

Ora che MariaDB è attivo e funzionante sul tuo sistema Rocky Linux 8, devi eseguire lo script di sicurezza post-installazione poiché le impostazioni predefinite devono essere riviste poiché spesso non sono sicure. Questo è altamente raccomandato per non saltare.

Innanzitutto, esegui il comando di installazione sicura MariaDB come segue:

sudo mysql_secure_installation

Successivamente, ti verrà dato un prompt che ti chiederà di inserire la tua (password di root MariaDB). Per ora, premi il tasto (ACCEDERE) key poiché la password di root non è ancora impostata come di seguito:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Quindi, digita (Y) e premere invio per impostare il (Root) password come di seguito:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

La prossima serie di domande che puoi tranquillamente colpire (ACCEDERE), che risponderà (Y) a tutte le seguenti domande che ti chiedono (rimuovere gli utenti anonimi, disabilitare l'accesso root remoto e rimuovere il database di prova). Notare la (Y) è in maiuscolo, il che significa che è la risposta predefinita quando si preme il tasto (ACCEDERE) chiave.

Questo passaggio è essenziale per la sicurezza del database MariaDB e non deve essere modificato o saltato a meno che tu non sappia cosa stai facendo. Esempio di seguito:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Panoramica di ciò che avrebbe dovuto essere fatto sopra:

  • Impostazione della password per radice conti.
  • Rimozione degli account root accessibili dall'esterno dell'host locale.
  • Rimozione di account utente anonimo.
  • Rimozione del database di prova, a cui per impostazione predefinita possono accedere utenti anonimi.

Questo passaggio è essenziale per la sicurezza del database MariaDB e non deve essere modificato o saltato a meno che tu non sappia cosa stai facendo.

Ora, accedi al terminale del database MariaDB con il seguente comando:

sudo mysql -u root -p

Per uscire dal terminale del database MariaDB, digitare (exit;) come segue:

EXIT;

pubblicità


Installa PHP (PHP-FPM)

L'ultima parte da installare nella tua installazione LEMP è PHP. Dovrai installare (PHP-FPM) che è l'abbreviazione di (Responsabile Processo FastCGI). Si consiglia vivamente l'installazione di PHP (Remi) deposito. Per chi non lo sapesse, Remi è il manutentore delle versioni PHP della famiglia Rhel. Per la guida, installeremo il più recente PHP 8.0.

Innanzitutto, per abilitare il repository Remi, usa il seguente comando:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Successivamente, con il repository Remi abilitato, puoi vedere i moduli PHP disponibili da tutti i repository sul tuo sistema Rocky Linux utilizzando il seguente comando da terminale:

sudo dnf module list php
come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Come puoi vedere sopra, il file (D) tag è accanto a PHP 7.2, che dovrai reimpostare e modificare per installare PHP 8.0 su Rocky Linux. Reimpostare l'elenco PHP è facile con il seguente comando:

sudo dnf module reset php

Quindi, abilita PHP 8.0 con il seguente comando:

sudo dnf module enable php:remi-8.0 -y

Esempio di output una volta completato:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Ora aggiorna il tuo elenco di repository e installa PHP e PHP-FPM:

sudo dnf install php php-fpm
come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Facoltativamente, puoi quindi installare qualsiasi estensione di tua scelta. Di seguito sono riportati alcuni dei più comunemente usati:

sudo dnf install php-cli php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml

Nota, rimuovi tutto ciò che non desideri. Questo è facoltativo, ricorda!

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Successivamente, dovresti controllare la build di PHP 8.0 installata:

php -v

Esempio di output:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Infine, PHP-FPM come Nginx e MariaDB prima che non sia abilitato per impostazione predefinita, per abilitare PHP-FPM all'avvio del sistema e per avviarlo, utilizzare quanto segue (sistemactl) comando:

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

Eesempio di abilitazione riuscita (collegamento simbolico):

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Ora, come prima con il controllo dello stato degli altri requisiti nella tua installazione LEMP, usa quanto segue (sistemactl) comando da terminale per verificare lo stato per assicurarsi che tutto funzioni:

sudo systemctl status php-fpm

Se non sono presenti errori, dovresti ottenere il seguente output:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

A differenza delle installazioni LEMP su Debian/Ubuntu che utilizzano il (www-dati) utente, questo non è il caso delle installazioni Rhel/Rocky Linux. Per impostazione predefinita su Rocky Linux, il servizio PHP-FPM è progettato per essere eseguito (Apache) user, che non è corretto poiché stiamo usando Nginx e questo doveva essere corretto.

Innanzitutto, apri seguendo (www.conf) file di configurazione:

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

Quindi, sostituire il (Apache) utente e gruppo con il (Nginx) utente e gruppo:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Per salvare, premere (CTRL+O) poi esci (CTRL+X).

Ora anche tu ricaricherai o riavvierai il tuo servizio PHP-FPM:

sudo systemctl restart php-fpm

Prova PHP

Per testare PHP-FPM con il server Web Nginx, è necessario creare un file nella directory webroot.

Per la guida, chiamerai il file (info.php) come segue:

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

Incolla quanto segue (info.php) file:

<?php

phpinfo();

?>

Salva il file (CTRL+O), poi esci (CTRL+X).

Ora nella barra degli indirizzi del tuo browser Internet, inserisci (indirizzo-ip-server/info.php). Se hai installato Nginx sul tuo computer locale, usa l'impostazione predefinita (127.0.0.1/info.php) or (localhost/info.php).

Dovresti vedere le informazioni PHP del tuo server:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Queste informazioni mostrano che gli script PHP possono essere eseguiti correttamente con il server web Nginx.

Per motivi di sicurezza, dovresti rimuovere il file. Per fare ciò, utilizzare il seguente comando:

sudo rm -f /var/www/html/info.php

Se preferisci conservare il file per scopi futuri, aggiungi quanto segue al tuo file di blocco del server Nginx in server {} sezione:

    location ^~ /info.php {
     allow <YOUR IP ADDRESS>; 
     deny all;
    }

Ciò consentirà solo all'indirizzo IP specificato di accedere al file. Si consiglia di nascondere il maggior numero di informazioni di sistema da potenziali hacker e attori malintenzionati.


pubblicità


Crea un blocco server Nginx

Un blocco server Nginx è l'equivalente di un host virtuale in Apache, che contiene una configurazione per il tuo server web Nginx che risponde ai visitatori pubblici. Di seguito è riportato un esempio completo di come ottenere ciò con PHP-FPM in mente.

Crea directory di blocchi del server

I (.conf) i file si trovano normalmente in (siti-disponibili) che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana (abilitato per i siti). Gli utenti provenienti da diverse distribuzioni noteranno che questo è già installato; tuttavia, per Rocky Linux, dovrai crearli.

Crea i due richiesti (siti) directory con il seguente comando:

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

Modifica il file di configurazione di Nginx

Dopo aver creato le directory necessarie, modifica il file di configurazione principale di Nginx (nginx.conf) come segue:

sudo nano /etc/nginx/nginx.conf

Quindi incolla le righe successive nel file (HTTP) sezione del (nginx.conf) file di configurazione:

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

Nota, (server_names_hash_bucket_size) aumenta la memoria allocata per l'analisi dei nomi di dominio.

Esempio:

Come installare LEMP Stack su Rocky Linux 8

Nota, (server_names_hash_bucket_size) aumenta la memoria allocata per l'analisi dei nomi di dominio.

Salva la configurazione con (CLTR+O) e poi (CTRL+X) uscire.

Crea file di configurazione del blocco server

Ora crea un file di blocco del server utilizzando qualsiasi editor di testo, verrà utilizzato dalla guida (nano):

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

Successivamente, è necessario impostare il file di configurazione con un esempio funzionante con PHP-FPM abilitato.

Di seguito viene fornito un esempio da copiare e incollare. Nota da sostituire (nome del server) con il tuo nome di dominio o IP:

server {
  listen 80;
  listen [::]:80;
  server_name example.com www.example.com;
  root /var/www/html/example.com/;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Ora salva il blocco del server con (CTRL+O), quindi esci con (CTRL+X).

Crea pagina di destinazione di prova

Una buona idea è creare un sito di prova di esempio. Di seguito è riportato un test standard index.html impostato:

Se non hai già creato la tua directory web permanente o di prova:

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

Dovrai configurare i permessi e puoi impostare come utente attualmente connesso con il $ USER variabili:

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

L'ultima impostazione di autorizzazione è quella di consentire al pubblico di leggere la directory web (accedere al tuo sito) utilizzando l'autorizzazione chmod 755:

sudo chmod -R 755 /var/www

Quindi, crea il file index.html file:

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

Incolla il contenuto qui sotto. Come puoi vedere, è piuttosto semplice in quanto lo usiamo solo a scopo di test.

<html>
  <head>
    <title>You have reached Example.com!</title>
  </head>
  <body>
    <h1>Congratulations! The server block is active!</h1>
  </body>
</html>

Salva la configurazione con (CLTR+O) e poi (CTRL+X) uscire.

Abilita blocco server Nginx

Ora sei nelle fasi finali e ora è il momento di abilitare il file di configurazione del blocco del server. Per fare ciò, è necessario creare un collegamento simbolico (collegamento simbolico) per il file di configurazione del blocco del server in (siti-disponibili) directory nella directory (abilitato per i siti) directory usando il seguente comando:

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

Prova blocco server Nginx

Per finire, dovresti sempre fare una prova prima di riavviare o ricaricare il tuo servizio Nginx, che è fondamentale se lavori in un ambiente live. Digita il seguente comando per testare il file di configurazione del blocco del server:

sudo nginx -t

Se non ci sono errori, otterrai il seguente output:

come installare lemp stack su Rocky Linux 8 con nginx, mariadb e PHP

Quindi, apri il tuo browser Internet e inserisci il tuo indirizzo di dominio (esempio.com) per verificare se il tuo server è raggiungibile.

Congratulazioni, hai creato con successo un blocco server Nginx che è PHP-FPM pronto.

Come installare LEMP Stack su Rocky Linux 8

Opzionale. Proteggi Nginx con il certificato gratuito SSL di Let's Encrypt

Idealmente, vorresti eseguire il tuo Nginx su HTTPS utilizzando un certificato SSL. Il modo migliore per farlo è usare Criptiamo, un'autorità di certificazione gratuita, automatizzata e aperta gestita dal Internet Security Research Group (ISRG) senza scopo di lucro.

Innanzitutto, installa il EPEL repository e il mod_ssl pacchetto per pacchetti e sicurezza più aggiornati.

sudo dnf install epel-release mod_ssl -y

Quindi, installare il pacchetto certbot come segue:

sudo dnf install python3-certbot-nginx -y

Una volta installato, esegui il seguente comando per avviare la creazione del tuo certificato:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Questa è la configurazione ideale che include reindirizzamenti forzati HTTPS 301, intestazione Strict-Transport-Security e Stapling OCSP. Assicurati solo di adattare l'e-mail e il nome di dominio alle tue esigenze.

Ora il tuo URL sarà HTTPS://www.esempio.com invece di HTTP://www.esempio.com.

Nota, se usi il vecchio URL HTTP, reindirizzerà automaticamente a HTTPS.

Facoltativamente, puoi impostare un cron job per rinnovare automaticamente i certificati. Certbot offre uno script che lo fa automaticamente e puoi prima testare per assicurarti che tutto funzioni eseguendo una corsa a secco.

sudo certbot renew --dry-run

Se tutto funziona, apri la finestra di crontab utilizzando il seguente comando da terminale.

sudo crontab -e

Quindi, specifica l'ora in cui dovrebbe rinnovarsi automaticamente. Questo dovrebbe essere controllato almeno giornalmente e, se il certificato deve essere rinnovato, lo script non aggiornerà il certificato. Se hai bisogno di aiuto per trovare un buon momento per impostare, usa il crontab.guru strumento gratuito.

00 00 */1 * * /usr/sbin/certbot-auto renew

Risparmi (CTRL+O) poi esci (CTRL+X), e il cronjob verrà abilitato automaticamente.


pubblicità


Commenti e Conclusione

Nel tutorial, hai imparato come installare lo stack LEMP per proteggere MariaDB, testare PHP e creare un blocco server Nginx. Nel complesso, LEMP è un'opzione alla moda. Ora, Nginx ha superato Apache in quanto il software per server web HTTP più utilizzato, adeguatamente configurato e con prestazioni gestite, può dare al tuo server web un vantaggio decisivo rispetto ad altre configurazioni.

Lascia un tuo commento