Ricerca nel sito web

Come installare LEMP (Linux, Nginx, MariaDB, PHP-FPM) su Debian 9 Stretch


Poiché Debian alimenta una grande percentuale di server web in tutto il mondo, in questo articolo spiegheremo come installare LEMP (Linux + Nginx + MariaDB + PHP-FPM) stack su Debian 9 Stretch come alternativa a LAMP (usa questa guida per installare LAMP su Debian 9).

Inoltre, mostreremo come eseguire una configurazione minima Nginx/PHP-FPM in modo che anche i nuovi amministratori di sistema possano impostare nuovi server Web per impostare pagine dinamiche.

Per fare ciò, sfrutteremo i recenti aggiornamenti ai repository ufficiali della distribuzione. Si presuppone che tu abbia installato Debian 9 su una macchina bare metal, virtuale o VPS o che tu abbia effettuato l'aggiornamento da Jessie.

Installazione di LEMP in Debian 9 Stretch

Forse ti starai chiedendo perché abbiamo menzionato PHP-FPM anziché PHP come parte dello stack LEMP. A differenza di altri server web, Nginx non fornisce supporto nativo per PHP.

Per questo motivo, per gestire le richieste per le pagine PHP viene utilizzato PHP-FPM (Fast Process Manager). Puoi saperne di più su PHP-FPM nel sito ufficiale PHP.

La versione predefinita fornita nei repository Debian php7.0-fpm. Come probabilmente puoi intuire in base al nome del pacchetto, questa versione può persino gestire richieste a pagine che includono codice PHP 7.

NOTA: se Apache è stato installato in precedenza nella stessa macchina, assicurati che sia arrestato e disabilitato prima di procedere.

Detto questo installiamo i componenti dello stack LEMP come segue:

aptitude update 
aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

Una volta completata l'installazione, assicuriamoci innanzitutto che Nginx e PHP-FPM siano in esecuzione e abilitati all'avvio all'avvio:

systemctl status nginx php7.0-fpm

Se indica che uno o entrambi i servizi non sono in esecuzione, fallo.

systemctl start nginx php7.0-fpm
systemctl enable nginx php7.0-fpm

Come nel caso di ogni installazione di MariaDB o MySQL, è importante eseguire mysql_secure_installation per eseguire una configurazione di sicurezza minima e impostare la password per l'account root del database.

mysql_secure_installation

Se non sai come farlo, puoi fare riferimento al passaggio n. 4 in Come installare MariaDB 10 su Debian e Ubuntu.

Configurazione di Nginx per utilizzare PHP-FPM su Debian 9

Il file di configurazione principale di Nginx è /etc/nginx/sites-available/default, dove dovremo apportare le seguenti modifiche all'interno del blocco server:

  • Assicurati che il blocco location che gestisce le richieste PHP sia abilitato, ad eccezione di quello in cui la direttiva fastcgi_pass punta alla NIC di loopback.
  • Aggiungi index.php dopo la direttiva index per indicare che, se trovato, dovrebbe essere servito per impostazione predefinita prima di index.html o altri file.
  • Aggiungi la direttiva server_name che punta all'indirizzo IP o al nome host del tuo server. Nel nostro caso sarà 192.168.0.35.
  • Inoltre, assicurati che la direttiva root punti alla posizione in cui verranno archiviati i file .php (/var/www/html per impostazione predefinita) .

Una volta terminato, puoi utilizzare il comando seguente per verificare la presenza di errori nel file di configurazione.

nginx -t 

A questo punto, il tuo /etc/nginx/sites-available/default dovrebbe apparire come segue, dove i numeri che si riferiscono alla configurazione rappresentano l'elenco precedente:

grep -Ev '#' /etc/nginx/sites-available/default

Test di Nginx e PHP-FPM su Debian 9

Per assicurarci di utilizzare Nginx come server web, creiamo un file denominato info.php all'interno di /var/www/html con i seguenti contenuti:

<?php
	phpinfo();
?>

Quindi vai su http://192.168.0.35/info.php e controlla la parte superiore della pagina dove dovresti vedere questo:

Infine, indirizziamo il nostro browser al file booksandauthors.php che abbiamo creato in Install LAMP (Linux, Apache, MariaDB o MySQL e PHP) Stack su Debian 9.

Come puoi vedere nell'immagine seguente, questo file è ora servito da Nginx:

NOTA: se noti che Nginx fornisce i file .php come download invece di eseguirli, svuota la cache del browser o prova un browser diverso . In particolare, se utilizzi Chrome, potresti voler provare la modalità di navigazione in incognito.

Riepilogo

In questo articolo abbiamo spiegato come installare e configurare Nginx per servire pagine .php dinamiche. È importante notare che dopo questa configurazione iniziale ci sono impostazioni che dovrebbero essere prese in considerazione per proteggere il server web.

Puoi trovare un riepilogo di base nella Guida definitiva per proteggere, rafforzare e migliorare le prestazioni del server Web Nginx.

Se stai cercando un hosting virtuale su Nginx, leggi Come configurare host virtuali basati su nome e IP su NGINX.

Come sempre, non esitate a farci sapere se avete domande o commenti su questo articolo.