Server LAMP: una soluzione conveniente per siti web dinamici
Esistono due tipi di siti web: statici e dinamici. I siti web statici sono dei documenti tecnici scritti in HTML, che sono hostati sul relativo server web e che possono essere richiamati in ogni momento dall’utente, mostrando sempre lo stesso contenuto. I contenuti dei siti dinamici, invece, vengono creati attivamente nel momento in cui avviene la richiesta. Questo comporta dei vantaggi nel caso in cui i temi del sito abbiano bisogno di continui aggiornamenti, per esempio se si vogliono presentare news, previsioni del tempo o l’andamento della borsa. Tuttavia, i siti web dinamici devono avere una specifica infrastruttura, composta da un sistema operativo, un server web, un sistema di database e un interprete di script, offerta spesso su un server LAMP.
Cos’è un server LAMP?
L’acronimo LAMP è composto dalle lettere iniziali dei quattro componenti: Linux, Apache, MySQL e PHP. Insieme si occupano dell’infrastruttura del server che permette di generare e hostare delle pagine web dinamiche. I singoli componenti si basano gli uni sugli altri e perciò il pacchetto software è anche conosciuto come LAMP Stack.
Il sistema operativo Linux è la base su cui viene eseguito il server Apache che non può però interpretare i contenuti dinamici, ma sa che per questo processo è responsabile l’interprete di script PHP. Per questo motivo invia all’interprete PHP, che ha accesso al database MySQL, il relativo codice sorgente con tutte le informazioni sui comportamenti dei visitatori del sito web. Il risultato verrà inviato nuovamente ad Apache e mostrato correttamente sul browser dell’utente.
I server LAMP sono da sempre convenienti e disponibili velocemente, e proprio per questo particolarmente amati. Nonostante ciò, i singoli componenti possono anche essere sostituiti da altri analoghi. Come sistema operativo possono essere scelti ad es. anche Windows (WAMP) o Mac (MAMP). Al posto di Apache viene spesso utilizzato il server web nginx. Per quanto riguarda il database, MySQL e MariaDB vengono utilizzati quasi in egual misura. Altri interpreti di script e linguaggi di programmazione sono Perl, Ruby o Python.
Come installare un server LAMP
Prima di installare un server LAMP, ci sono alcune cose da chiarire. Per prima cosa bisogna assicurarsi che l’hardware utilizzato sia abbastanza capiente per l’installazione e l’esecuzione di un server LAMP. Generalmente un sistema LAMP non ha bisogno di performance eccezionali, ma bastano quelle basilari. A seconda dei contenuti creati potrebbe essere però necessario un sistema con prestazioni più elevate. Esempi di progetti che necessitano di prestazioni migliori sono i servizi di archiviazione online o le piattaforme di streaming. In aggiunta devono essere calcolati anche il traffico dati generato e la quantità di accessi.
Una volta trovato l’hardware, bisogna scegliere tra una delle innumerevoli distribuzioni di Linux esistenti. La scelta tra Red Hat, openSUSE, Debian, Ubuntu o CentOS deve essere presa basandosi sulle proprie conoscenze di Linux e sul previsto utilizzo del server LAMP.
Le istruzioni seguenti descrivono l’installazione dei quattro componenti di un server LAMP Ubuntu.
Primo passaggio: il sistema operativo
Molte versioni di Linux, trattandosi di software open source, possono essere scaricate gratuitamente, e questo vale anche per Ubuntu. Effettuando i passaggi seguenti, si ottiene e si installa questo sistema operativo, basato su Debian:
- Scaricare o acquistare la versione server sull’homepage di Ubuntu; in seguito si potrà salvare o creare un file .iso del sistema operativo su una chiave USB o su un CD.
- Avviare il sistema dal CD o dalla penna USB.
- Impostare la lingua e iniziare l’installazione del server.
- Decidere le opzioni lingua, impostazioni della tastiera, configurazione di rete, nome host, fuso orario e password.
- Configurare il disco fisso.
- Ora il programma di installazione cerca nel CD i componenti del software e chiede le informazioni sulle opzioni di aggiornamento. Qui si dovrebbe selezionare la voce che impedisce gli aggiornamenti automatici.
- Dopo l’installazione si deve riavviare il sistema e poi inserire nella riga di comando il comando seguente:
sudo apt-get update
Si conclude così l’installazione di Ubuntu ed è tutto pronto per la configurazione degli altri componenti del server LAMP Ubuntu.
Secondo passaggio: il server web
Qualora non si fosse installato il server web Apache durante l’installazione di Ubuntu, si può rimediare in qualsiasi momento, inserendo questo comando:
sudo apt-get install apache2
Alla fine si verifica la corretta installazione di Apache 2 (“2” è l’ultima versione del software), richiamando tramite il browser la pagina localhost o l’indirizzo IP. Se compare il messaggio „It works!“, si può cominciare la configurazione. Si consiglia di prendere alcuni accorgimenti:
- La funzione Keep-Alive migliora la velocità del sito web, ma occupa molto spazio. Per questo, specialmente nei sistemi con prestazioni basse, si dovrebbe modificare l’opzione Keep-Alive nel file principale di configurazione /etc/apache2/apache2.conf in “KeepAlive Off“.
- Il comune Multi-Processing-Module (MPM) di Apache è il modulo event, mentre il PHP utilizza il modulo prefork. Sotto il percorso /etc/apache2/mods-available si trova il file mpm_prefork.conf che deve essere configurato nel modo seguente:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 6
MaxSpareServers 12
MaxRequestWorkers 39
MaxConnectionsPerChild 3000
</IfModule>
- Infine, bisogna disattivare il modulo event e attivare il modulo prefork:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
- Per terminare bisogna riavviare il server:
sudo service apache2 restart
Terzo passaggio: il database
Il sistema di gestione del database MySQL opera come server in cui possono essere creati più database. Per ogni database possono essere definite diverse tabelle. Uno o più client inviano richieste al server MySQL che deve essere installato tramite il comando seguente:
sudo apt-get install mysql-server
Durante l’installazione è possibile scegliere la password dell’utente Root MySQL, cosa che va fatta comunque in ogni caso. Il prossimo passaggio si occupa della sicurezza del database MySQL. Installando l’opzione MySQL Secure, si ha la possibilità di cambiare la password, di cancellare gli account degli utenti anonimi e di creare database di test o impedire i login come amministratore (utente Root) che non avvengono da un indirizzo locale. Il comando di installazione è:
sudo mysql_secure_installation
Per creare un database, ci si deve loggare prima di tutto su MySQL:
mysql -u root –p
Infine, può essere creato il database con tutti gli utenti e i relativi permessi:
create database webdata;
grant all on webdata.* to “username” identified by “password”
Quarto passaggio: l’interprete di script
L’ultimo passaggio dell’installazione aggiunge al server LAMP l’interprete di script PHP e la biblioteca PEAR (PHP Extension and Application Repository), che comprende dei moduli utili e delle estensioni per il PHP. L’installazione inizia con il comando:
sudo apt-get install php5 php-pear
Vale la pena installare anche il supporto MySQL per il PHP5:
sudo apt-get install php5-mysql
Non appena il processo di installazione è completato, il file di configurazione PHP, che si trova seguendo il percorso /etc/php5/apache2/php.ini, deve essere modificato così:
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30
L’utente riceve in questo modo i report dettagliati degli errori e ottiene una migliore performance. Inoltre è possibile salvare gli errori nel file error.log. Infine, bisogna solo creare una cartella di log per il PHP e dare i diritti di amministratore al server Apache:
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
Con un reload di Apache, si conclude l’installazione del server LAMP:
sudo service apache2 reload
Server LAMP: software open source per ogni tipo di progetto web
Il vantaggio di un software open source non è solo che è disponibile gratuitamente. Un altro punto a favore, a cui il server LAMP deve anche il suo nome, è l’accessibilità del codice di programmazione, aperto a tutti. Così gli utenti possono modificare il codice in ogni momento e in autonomia, oltre che sviluppare delle nuove estensioni. Per questo motivo è facile per gli utenti esperti dare supporto sul prodotto, diversamente da quanto accade per i software proprietari.
Vale la pena di installare un server LAMP non solo per via dell’alta flessibilità e dei costi bassi, ma anche perché i componenti utilizzati si combinano bene gli uni con gli altri. Inoltre, i server LAMP consentono il funzionamento di pagine web statiche e dinamiche. Tra gli altri ad es. il software wiki, MediaWiki, che è gestito da Wikipedia, si basa su un sistema LAMP.