Ricerca nel sito web

Come installare e configurare LEMP su Debian 8 (Jessie)


Uno dei motivi più comuni per configurare un sistema Linux è lo scopo di ospitare uno o più siti web. Secondo il sondaggio di NetCraft.com del febbraio 2016 sul milione di siti web più trafficati al mondo, circa il 15,60% di essi funziona su Nginx.

Insieme all'elevata probabilità che venga servito qualche tipo di contenuto dinamico nonché una sorta di database back-end per i siti Web, la possibilità per un amministratore di essere in grado di configurare server LEMP è molto vantaggioso sia per chi cerca lavoro che per i datori di lavoro!

Questo tutorial illustrerà le basi dell'installazione e della configurazione di un server Linux (in particolare Debian 8 Jessie) per funzionare come server LEMP.

Cos'è il server LEMP?

Ottima domanda! Come per la maggior parte delle cose nel mondo informatico, LEMP è l'acronimo di Linux, Nginx, MySQL e PHP.

Questo acronimo viene comunemente utilizzato per fare riferimento a raccolte di software su un server Web. Questo tutorial illustra innanzitutto la configurazione di LEMP, in particolare di MySQL e PHP.

Prima di addentrarci negli aspetti di configurazione dei sistemi, è importante conoscere Nginx.

Cos'è Nginx?

Nginx ha iniziato la sua vita nel 2002, quando il mondo informatico ha iniziato a rendersi conto che i siti web con diecimila o più connessioni simultanee erano una possibilità molto reale e di conseguenza Nginx è stato creato da zero per affrontare questo problema.

Installazione e configurazione di MySQL e PHP

1. Questa prima sezione tratterà Debian come server MySQL e PHP. La parte Linux del server LEMP dovrebbe già essere completata installando Debian! Tuttavia, se fosse necessaria una guida su come installare Debian, leggere il seguente articolo su TecMint:

  1. Installazione di Debian 8 Jessie

Una volta che Debian è pronta, il processo di installazione del resto del software necessario può essere completato con un comando rapido utilizzando il metapackager "apt".

apt-get install mysql-server-5.5 php5-mysql php5

A seconda dell'hardware del sistema e della connessione Internet, questo processo potrebbe richiedere del tempo. Al momento della stesura di questo articolo, una nuova installazione di Debian Jessie con tutti gli aggiornamenti applicati richiedeva circa 70 MB di archivi dai repository (non poi così male considerando cosa farà il server una volta terminate le cose)! Durante il processo di installazione, il sistema potrebbe richiedere all'utente di impostare una password utente root SQL. Questa è diversa dalla password effettiva dell'utente root e, per motivi di sicurezza, probabilmente dovrebbe rimanere diversa.

2. Una volta che apt termina l'installazione di tutto il software, i servizi di base saranno attivi e funzionanti. Tuttavia, fermarsi qui costituirebbe un tutorial molto breve! Immergiamoci quindi un po' di più nella configurazione di ciascuno dei software installati a partire da MySQL.

3. Dopo l'installazione di MySQL, è spesso consigliabile che il server SQL esegua alcune operazioni di manutenzione di base sull'installazione predefinita. Ciò è facilmente realizzabile con l'utility mysql_secure_installation.

Questo comando viene semplicemente eseguito dalla riga di comando e richiederà all'utente di rimuovere elementi come utenti anonimi, testare database e rimuovere la possibilità di accesso remoto dell'utente root al database SQL.

mysql_secure_installation

Questo comando avvierà un prompt interattivo che porrà domande riguardanti gli argomenti di cui sopra. Poiché apt ha già richiesto una password root MySQL, sarà necessario inserire tale password per apportare eventuali modifiche. Poiché la password di root era già impostata, No può essere la risposta alla richiesta di modificare la password di root sul server MySQL.

4. La prossima serie di domande riguarderà gli utenti anonimi, il database "test" e l'accesso root al database da remoto. In genere è sicuro rispondere a tutte queste richieste, a meno che non vi sia un motivo particolare per cui l'impostazione necessiti di una di queste opzioni lasciata intatta.

NOTA: potrebbe esserci un errore relativo alla mancata eliminazione di un database chiamato 'test', non preoccuparti di questo poiché il database potrebbe o potrebbe non esistere e nonostante ciò lo script continuerà a fare ciò che è necessario.

A questo punto MySQL è pronto. Senza sapere quali database o utenti saranno necessari, è difficile eseguire ulteriori configurazioni. Tuttavia, la maggior parte dei siti Web spesso crea automaticamente i database e gli utenti necessari quando il software viene installato. Tuttavia, questo dipende molto dal software e richiederebbe una rapida occhiata ai file README del software o alle istruzioni di installazione.

5. Ora che MySQL è configurato, andiamo avanti e configuriamo alcune impostazioni PHP di base per questo particolare server. Sebbene ci siano tantissime impostazioni che possono essere manipolate per PHP, ce ne sono solo alcune di base che quasi sempre dovrebbero essere modificate. Il file di configurazione php si trova in /etc/php5/fpm/php.ini. Apri questo file con qualsiasi editor di testo.

nano /etc/php5/fpm/php.ini

Utilizzando le capacità di ricerca di nano ctrl+w cerca la stringa "memory_limit" (omettendo le virgolette). In un'installazione predefinita questa riga sarà già impostata su 128M ma qualora un'applicazione ne avesse bisogno di più, questa riga può essere modificata per soddisfare i requisiti.

Un'altra opzione importante da controllare è "max_execution_time" e, di nuovo, per impostazione predefinita sarà impostato su 30. Se un'applicazione richiede di più, questa opzione può essere modificata. Alcune persone preferiscono impostare anche la registrazione php in un file/directory speciale. Se questo fosse un requisito, cerca la stringa “error_log =” e quindi decommenta la riga rimuovendo il punto e virgola che generalmente è presente per impostazione predefinita.

A questo punto è possibile aggiungere un valore per il file di registro alla fine della riga. Assicurarsi che il percorso esista nel sistema. Una volta terminate le modifiche necessarie al file php.ini, salva le modifiche e chiudi l'editor di testo. A questo punto, MySQL e PHP5 sono pronti per iniziare a ospitare siti. Ora è il momento di configurare Nginx.

Installazione e configurazione di Nginx

6. Nginx (motore X) è un server web alternativo e molto potente. Questa sezione di questo tutorial illustra la configurazione di una pagina Web che Nginx può ospitare. Il primo passo per configurare Nginx è installare i pacchetti necessari utilizzando l'utilità "apt".

apt-get install nginx

Supponendo che tutte le dipendenze siano soddisfatte, la navigazione verso l'indirizzo IP del server in un browser Web dovrebbe produrre il sito Web Nginx predefinito.

NOTA: ci sono casi in cui dopo aver installato Nginx, il server non viene avviato automaticamente. Se la navigazione verso l'indirizzo IP del server in un browser Web non restituisce la pagina seguente, esegui il seguente comando per assicurarti che Nginx sia avviato.

service nginx start

Nginx ora ospita con successo la pagina predefinita. Sebbene la pagina predefinita di Debian sia un sito Web appariscente, la maggior parte degli utenti vorrà ospitare qualcosa di personalizzato.

7. I passaggi successivi illustrano la configurazione di Nginx per ospitare un sito Web diverso. Nginx, proprio come Apache 2, ha la propria directory di configurazione situata in /etc/nginx. Passa a questa directory utilizzando l'utilità cd.

cd /etc/nginx

Per questo tutorial ci sono diversi file e directory importanti per la configurazione di un sito Web utilizzando Nginx. Le prime due directory importanti sono le directory "siti disponibili" e "siti abilitati". Proprio come Apache 2, Nginx utilizza file di configurazione per ciascun sito nella directory sites-available che, quando attivi, sono simbolicamente collegati nella directory sites-enabled.

La prima cosa necessaria per sbarazzarsi del sito predefinito è rimuovere il collegamento simbolico nei siti abilitati.

rm sites-enabled/default

8. Ora è necessario creare e collegare un nuovo file di configurazione del sito affinché Nginx possa pubblicare la pagina. La creazione del file di configurazione del sito può essere semplificata copiando e modificando la configurazione predefinita dei siti.

cp sites-available/default sites-available/tecmint-test

Questo creerà un nuovo file di configurazione del sito con cui lavorare. Apri questo file in un editor di testo per modificare il percorso in cui Nginx servirà i file.

nano sites-available tecmint-test

All'interno di questo file ci sono diverse opzioni importanti da modificare affinché Nginx possa servire un sito. La prima è la riga che inizia con "root" poiché questa riga definisce dove Nginx dovrebbe servire i file per questo particolare sito.

Questo tutorial lascerà il valore predefinito "/var/www/html" e inserirà semplicemente i file html da servire in questa directory. Tuttavia, assicurati di modificare questo percorso se su questo server devono essere presenti più siti o una configurazione personalizzata.

La riga successiva di importanza è la riga "indice". Poiché questo articolo riguarda l'installazione di LEMP e un sito potrebbe potenzialmente servire pagine php, Nginx deve essere informato che la pagina predefinita potrebbe essere una pagina php. Per fare ciò, aggiungi semplicemente "index.php" alla fine dell'elenco dell'indice dei file.

Prima di abilitare il nuovo sito, deve esserci qualcosa che Nginx possa servire. La pagina indice predefinita esiste già ma per confermare che un altro sito funziona, sostituiamo il contenuto della pagina predefinita con qualcos'altro.

echo “It's ALIVE!” > /var/www/html/index.html

9. Il passaggio successivo è abilitare il nuovo sito collegando il file di configurazione appena creato alla directory sites-enabled. Ciò è facilmente realizzabile con l'uso del comando ln e quindi ricaricando la configurazione di Nginx con l'utilità di servizio.

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

A questo punto Nginx dovrebbe servire la nuova pagina web “semplice”. Ciò può essere confermato accedendo all’indirizzo IP del server tramite un browser web!

Ancora una volta, questo articolo intende illustrare configurazioni molto semplici di LEMP. La maggior parte dei siti richiederebbe un'ulteriore configurazione di tutte le parti coinvolte, ma le opzioni di configurazione potrebbero variare a migliaia! Buona fortuna per qualsiasi configurazione scelta per ospitare i siti Web.