Come installare LEMP Stack su Debian 11 – Nginx MariaDB PHP

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 Debian 11.

Prerequisiti

  • Sistema operativo consigliato: Debian 11 Bullseye
  • Account utente: Un account utente con privilegi sudo o accesso root (comando su).

Aggiornamento del sistema operativo

Aggiorna il tuo Debian 11 sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo apt update && sudo apt upgrade

Accesso root o sudo

Per impostazione predefinita, quando crei il tuo account all'avvio con Debian rispetto ad altre distribuzioni, non riceve automaticamente lo stato di sudoers. Devi avere accesso a password di root usare il comando su o visita il nostro tutorial su Come aggiungere un utente a Sudoers su Debian.


Annuncio


Installa Nginx

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

sudo apt install nginx

Esempio di output:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Tipo Y, quindi premere il tasto Invio per procedere con l'installazione.

Conferma l'installazione controllando la versione build:

sudo nginx -v

Esempio di output:

versione nginx: nginx/1.18.0

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

sudo systemctl status nginx

Esempio di output che dice che è tutto ok:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Per impostazione predefinita, quando si installa Nginx su Debian, dovrebbe essere abilitato; in caso contrario, utilizzare il comando seguente per avviare Nginx e consentirne il caricamento all'avvio.

sudo systemctl abilita nginx && sudo systemctl avvia nginx

Esempio di abilitazione riuscita (collegamento simbolico):

Sincronizzazione dello stato di nginx.service con lo script del servizio SysV con /lib/systemd/systemd-sysv-install. Eseguendo: /lib/systemd/systemd-sysv-install abilita nginx

Per gli utenti che desiderano utilizzare una versione stabile o principale più aggiornata di Nginx per Debian 11, visita il nostro tutorial Come installare l'ultima Nginx Mainline o Stable su Debian 11.

Installazione e configurazione di MariaDB

Installazione

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

Immettere il seguente comando per installare MariaDB su Debian:

sudo apt install mariadb-server mariadb-client

Esempio di output di seguito:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Tipo quindi premere il tasto Invio per procedere con l'installazione:

Ora, controlla lo stato del tuo servizio di database MariaDB e se è operativo con il seguente comando:

sudo systemctl status mariadb

Esempio di output che dice che è tutto ok:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Come con Nginx, per impostazione predefinita, MariaDB dovrebbe essere abilitato. In caso contrario, per avviare e abilitare MariaDB all'avvio del sistema, utilizzare quanto segue (systemctl) comando da terminale:

sudo systemctl enable mariadb && sudo systemctl start mariadb

Esempio di abilitazione riuscita (collegamento simbolico):

Sincronizzazione dello stato di mariadb.service con lo script del servizio SysV con /lib/systemd/systemd-sysv-install. Eseguendo: /lib/systemd/systemd-sysv-install enable mariadb

Per verificare quale versione di MariaDB è installata sul tuo sistema Debian, digita il seguente comando:

mysql --versione

Esempio di output:

mysql Ver 15.1 Distrib 10.5.11-MariaDB, per debian-linux-gnu (x86_64) utilizzando il wrapper EditLine

Per gli utenti che desiderano utilizzare una versione stabile o principale più aggiornata di Nginx per Debian 11, visita il nostro tutorial Come installare MariaDB 10.6 su Debian 11.

Configurazione

Ora che MariaDB è attivo e funzionante sul tuo sistema Debian, 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à data una richiesta che ti chiede 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:

Quindi, digita (sì) e premere invio per impostare il (radice) password come di seguito:

La prossima serie di domande che puoi tranquillamente rispondere (ACCEDERE), che risponderà (sì) a tutte le prossime domande che ti chiedono (rimuove gli utenti anonimi, disabilita l'accesso root remoto e rimuovi il database di prova). Notare la (sì) è in maiuscolo, il che significa che è la risposta predefinita quando si preme il tasto (ACCEDERE) chiave.

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Esempio di seguito:

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 test, a cui per impostazione predefinita possono accedere utenti anonimi.

Questo passaggio è un requisito di base 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

Ti verrà chiesto di inserire la password di root che hai impostato nella configurazione dell'installazione o nello script di sicurezza post-installazione. Una volta all'interno dell'istanza del servizio MySQL, è possibile eseguire il seguente comando come test per vederlo in funzione.

Digita quanto segue comando MOSTRA DATABASE:

MOSTRA BANCHE DATI;

Per chi non conosce MySQL e MariaDB, tutti i comandi devono terminare con ";"

Esempio:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

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

Uscita;

Annuncio


Installazione di PHP (PHP-FPM)

L'ultima parte da installare nella tua installazione LEMP è PHP. Dovrai installare (PHP-FPM) che è l'abbreviazione di (Responsabile Processo FastCGI). Il processo di installazione dell'ultimo passaggio è piuttosto semplice; alla fine, creerai un .PHP file di test per assicurarsi che tutto funzioni.

Il tutorial copre l'installazione di PHP-FPM 7.4. Per gli utenti che desiderano installare una versione più aggiornata di PHP-FPM 7.4 o le nuove 8.0, 8.1, visita il nostro tutorial Come installare PHP 8 su Debian 11 Bullseye. Se installi PHP-FPM 8.0, ad esempio, dal tutorial, torna qui e salta la parte di installazione.

Installare PHP-FPM, usa il seguente comando:

sudo apt install php7.4 php7.4-fpm

Esempio di output:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Tipo quindi premere il tasto Invio per procedere con l'installazione:

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

sudo apt install php7.4-cli php7.4-curl php7.4-mysqlnd php7.4-gd php7.4-opcache php7.4-zip php7.4-intl php7.4-common php7.4-bcmath php7. 4-imap php7.4-imagick php7.4-xmlrpc php7.4-json php7.4-readline php7.4-memcached php7.4-memcache php7.4-redis php7.4-mbstring php7.4-apcu php7. 4-xml

Esempio di output:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Tipo quindi premere il tasto Invio per procedere con l'installazione:

Nota, per rafforzare la sicurezza, e dovresti davvero installare solo i pacchetti sopra, sai che dovrai usare per precauzioni.

Quindi, conferma l'installazione di PHP controllando la versione e la build installata:

php -v

Esempio di output:

PHP 7.4.21 (cli) (creato: Jul 2 2021 03:59:48) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies con Zend OPcache v7.4.21, Copyright ( c), di Zend Technologies

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

sudo systemctl status php7.4-fpm

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

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

Infine, PHP-FPM come Nginx e MariaDB prima dovrebbe essere abilitato per impostazione predefinita; in caso contrario, per abilitare PHP-FPM all'avvio del sistema e avviarlo, utilizzare quanto segue (systemctl) comando:

sudo systemctl enable php7.4-fpm && sudo systemctl start php7.4-fpm

Esempio di abilitazione riuscita (collegamento simbolico):

Sincronizzazione dello stato di php7.4-fpm.service con lo script del servizio SysV con /lib/systemd/systemd-sysv-install. Eseguendo: /lib/systemd/systemd-sysv-install abilita php7.4-fpm

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

Il (.conf) i file si trovano normalmente in (siti-disponibili) e (abilitato per i siti). Gli utenti provenienti da diverse distribuzioni noteranno che questo è già installato; tuttavia, per Debian, sarà necessario 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 richieste, modifica il file di configurazione principale di Nginx (nginx.conf) come segue:

sudo mkdir /etc/nginx/nginx.conf

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

includi /etc/nginx/sites-enabled/*.conf; nomi_server_hash_bucket_size 64;

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

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

Esempio:

Crea file di configurazione del blocco del 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 { ascolta 80; ascolta [::]:80; nome_server esempio.com www.esempio.com; root /usr/share/nginx/html/; indice index.php index.html index.htm index.nginx-debian.html; posizione / { try_files $uri $uri/ /index.php; } posizione ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; includi fastcgi_params; fastcgi_intercept_errors attivo; } # Una lunga durata della cache del browser può accelerare le visite ripetute alla posizione della pagina ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log spento; log_not_found disattivato; scade 360d; } # disabilita l'accesso alla posizione dei file nascosti ~ /\.ht { access_log off; log_not_found disattivato; negare tutto; } }

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

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 per il (abilitato per i siti) directory utilizzando 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:

nginx: la sintassi del file di configurazione /etc/nginx/nginx.conf è ok nginx: il test del file di configurazione /etc/nginx/nginx.conf è andato a buon fine

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 pronto per PHP-FPM.


Annuncio


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 /var/www/html/example.com/info.php

Incolla quanto segue (info.php) file:

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) o (localhost/info.php).

Dovresti vedere le informazioni PHP del tuo server:

Come installare LEMP Stack su Debian 11 - Nginx MariaDB PHP

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

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 come il software per server web HTTP più utilizzato correttamente configurato e le prestazioni gestite possono dare al tuo server web un potente vantaggio rispetto ad altre configurazioni.

sottoscrivi
Notificami
0 Commenti
Feedback in linea
Visualizza tutti i commenti
0
Mi piacerebbe che i tuoi pensieri, per favore commenta.X