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 ri­chia­ma­ti in ogni momento dall’utente, mostrando sempre lo stesso contenuto. I contenuti dei siti dinamici, invece, vengono creati at­ti­va­men­te nel momento in cui avviene la richiesta. Questo comporta dei vantaggi nel caso in cui i temi del sito abbiano bisogno di continui ag­gior­na­men­ti, per esempio se si vogliono pre­sen­ta­re news, pre­vi­sio­ni del tempo o l’andamento della borsa. Tuttavia, i siti web dinamici devono avere una specifica in­fra­strut­tu­ra, composta da un sistema operativo, un server web, un sistema di database e un in­ter­pre­te di script, offerta spesso su un server LAMP.

Cos’è un server LAMP?

L’acronimo LAMP è composto dalle lettere iniziali dei quattro com­po­nen­ti: Linux, Apache, MySQL e PHP. Insieme si occupano dell’in­fra­strut­tu­ra del server che permette di generare e hostare delle pagine web dinamiche. I singoli com­po­nen­ti si basano gli uni sugli altri e perciò il pacchetto software è anche co­no­sciu­to come LAMP Stack.

Il sistema operativo Linux è la base su cui viene eseguito il server Apache che non può però in­ter­pre­ta­re i contenuti dinamici, ma sa che per questo processo è re­spon­sa­bi­le l’in­ter­pre­te di script PHP. Per questo motivo invia all’in­ter­pre­te PHP, che ha accesso al database MySQL, il relativo codice sorgente con tutte le in­for­ma­zio­ni sui com­por­ta­men­ti dei vi­si­ta­to­ri del sito web. Il risultato verrà inviato nuo­va­men­te ad Apache e mostrato cor­ret­ta­men­te sul browser dell’utente.

I server LAMP sono da sempre con­ve­nien­ti e di­spo­ni­bi­li ve­lo­ce­men­te, e proprio per questo par­ti­co­lar­men­te amati.  No­no­stan­te ciò, i singoli com­po­nen­ti possono anche essere so­sti­tui­ti da altri analoghi. Come sistema operativo possono essere scelti ad es. anche Windows (WAMP) o Mac (MAMP). Al posto di Apache viene spesso uti­liz­za­to il server web nginx. Per quanto riguarda il database, MySQL e MariaDB vengono uti­liz­za­ti quasi in egual misura. Altri in­ter­pre­ti di script e linguaggi di pro­gram­ma­zio­ne sono Perl, Ruby o Python.

Come in­stal­la­re un server LAMP

Prima di in­stal­la­re un server LAMP, ci sono alcune cose da chiarire. Per prima cosa bisogna as­si­cu­rar­si che l’hardware uti­liz­za­to sia ab­ba­stan­za capiente per l’in­stal­la­zio­ne e l’ese­cu­zio­ne di un server LAMP. Ge­ne­ral­men­te un sistema LAMP non ha bisogno di per­for­man­ce ec­ce­zio­na­li, ma bastano quelle basilari. A seconda dei contenuti creati potrebbe essere però ne­ces­sa­rio un sistema con pre­sta­zio­ni più elevate. Esempi di progetti che ne­ces­si­ta­no di pre­sta­zio­ni migliori sono i servizi di ar­chi­via­zio­ne online o le piat­ta­for­me 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 in­nu­me­re­vo­li di­stri­bu­zio­ni di Linux esistenti. La scelta tra Red Hat, openSUSE, Debian, Ubuntu o CentOS deve essere presa basandosi sulle proprie co­no­scen­ze di Linux e sul previsto utilizzo del server LAMP.

Le istru­zio­ni seguenti de­scri­vo­no l’in­stal­la­zio­ne dei quattro com­po­nen­ti di un server LAMP Ubuntu.

Primo passaggio: il sistema operativo

Molte versioni di Linux, trat­tan­do­si di software open source, possono essere scaricate gra­tui­ta­men­te, e questo vale anche per Ubuntu. Ef­fet­tuan­do i passaggi seguenti, si ottiene e si installa questo sistema operativo, basato su Debian:

  1. Scaricare o ac­qui­sta­re 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.
  2. Avviare il sistema dal CD o dalla penna USB.
  3. Impostare la lingua e iniziare l’in­stal­la­zio­ne del server.
  4. Decidere le opzioni lingua, im­po­sta­zio­ni della tastiera, con­fi­gu­ra­zio­ne di rete, nome host, fuso orario e password.
  5. Con­fi­gu­ra­re il disco fisso.
  6. Ora il programma di in­stal­la­zio­ne cerca nel CD i com­po­nen­ti del software e chiede le in­for­ma­zio­ni sulle opzioni di ag­gior­na­men­to. Qui si dovrebbe se­le­zio­na­re la voce che impedisce gli ag­gior­na­men­ti au­to­ma­ti­ci.
  7. Dopo l’in­stal­la­zio­ne si deve riavviare il sistema e poi inserire nella riga di comando il comando seguente:
sudo apt-get update

Si conclude così l’in­stal­la­zio­ne di Ubuntu ed è tutto pronto per la con­fi­gu­ra­zio­ne degli altri com­po­nen­ti del server LAMP Ubuntu.

Secondo passaggio: il server web

Qualora non si fosse in­stal­la­to il server web Apache durante l’in­stal­la­zio­ne di Ubuntu, si può rimediare in qualsiasi momento, inserendo questo comando:

sudo apt-get install apache2

Alla fine si verifica la corretta in­stal­la­zio­ne di Apache 2 (“2” è l’ultima versione del software), ri­chia­man­do tramite il browser la pagina localhost o l’indirizzo IP. Se compare il messaggio „It works!“, si può co­min­cia­re la con­fi­gu­ra­zio­ne. Si consiglia di prendere alcuni ac­cor­gi­men­ti:

  1. La funzione Keep-Alive migliora la velocità del sito web, ma occupa molto spazio. Per questo, spe­cial­men­te nei sistemi con pre­sta­zio­ni basse, si dovrebbe mo­di­fi­ca­re l’opzione Keep-Alive nel file prin­ci­pa­le di con­fi­gu­ra­zio­ne /etc/apache2/apache2.conf in “KeepAlive Off“.
  2. Il comune Multi-Pro­ces­sing-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 con­fi­gu­ra­to nel modo seguente:
<IfModule mpm_prefork_module>
StartServers              2
MinSpareServers           6
MaxSpareServers           12
MaxRequestWorkers         39
MaxConnectionsPerChild    3000
</IfModule>
  1. Infine, bisogna di­sat­ti­va­re il modulo event e attivare il modulo prefork:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
  1. 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 in­stal­la­to tramite il comando seguente:

sudo apt-get install mysql-server

Durante l’in­stal­la­zio­ne è 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. In­stal­lan­do l’opzione MySQL Secure, si ha la pos­si­bi­li­tà di cambiare la password, di can­cel­la­re gli account degli utenti anonimi e di creare database di test o impedire i login come am­mi­ni­stra­to­re (utente Root) che non avvengono da un indirizzo locale. Il comando di in­stal­la­zio­ne è:

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’in­ter­pre­te di script

L’ultimo passaggio dell’in­stal­la­zio­ne aggiunge al server LAMP l’in­ter­pre­te di script PHP e la bi­blio­te­ca PEAR (PHP Extension and Ap­pli­ca­tion Re­po­si­to­ry), che comprende dei moduli utili e delle esten­sio­ni per il PHP. L’in­stal­la­zio­ne inizia con il comando:

sudo apt-get install php5 php-pear

Vale la pena in­stal­la­re anche il supporto MySQL per il PHP5:

sudo apt-get install php5-mysql

Non appena il processo di in­stal­la­zio­ne è com­ple­ta­to, il file di con­fi­gu­ra­zio­ne PHP, che si trova seguendo il percorso /etc/php5/apache2/php.ini, deve essere mo­di­fi­ca­to 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 det­ta­glia­ti degli errori e ottiene una migliore per­for­man­ce. 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 am­mi­ni­stra­to­re al server Apache:

sudo mkdir /var/log/php
sudo chown www-data /var/log/php

Con un reload di Apache, si conclude l’in­stal­la­zio­ne 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 è di­spo­ni­bi­le gra­tui­ta­men­te. Un altro punto a favore, a cui il server LAMP deve anche il suo nome, è l’ac­ces­si­bi­li­tà del codice di pro­gram­ma­zio­ne, aperto a tutti. Così gli utenti possono mo­di­fi­ca­re il codice in ogni momento e in autonomia, oltre che svi­lup­pa­re delle nuove esten­sio­ni. Per questo motivo è facile per gli utenti esperti dare supporto sul prodotto, di­ver­sa­men­te da quanto accade per i software pro­prie­ta­ri.

Vale la pena di in­stal­la­re un server LAMP non solo per via dell’alta fles­si­bi­li­tà e dei costi bassi, ma anche perché i com­po­nen­ti uti­liz­za­ti si combinano bene gli uni con gli altri. Inoltre, i server LAMP con­sen­to­no il fun­zio­na­men­to 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.

Vai al menu prin­ci­pa­le