I siti Web moderni, per non parlare delle vere e proprie applicazioni basate sul Web, non sono una semplice raccolta di pagine HTML collegate tra loro da link, ma strutture dinamiche che si appoggiano ad un'infrastruttura software complessa. Sono Francesco Caccavella di HTML.it e vi parlerò di Linux, Apache, PHP e MySQL: in una parola LAMP.
Prima di introdurre i software dobbiamo capire la differenza fra sito statico e sito dinamico. In un sito statico il contenuto della pagina viene fissato al momento della pubblicazione. Per modificarlo quindi dobbiamo scaricare la pagina stessa, modificarla e inviarla di nuovo al server. Il server invierà al browser sempre la stessa identica pagina, quella che abbiamo salvato.
In un sito web dinamico quando il browser richiede una pagina, il server non procede ad inviarla immediatamente ma trasferisce la richiesta ad un componente chiamato scripting engine ('motore di scripting') o preprocessore. Il preprocessore modifica la pagina in base alle variabili contenute nella richiesta o incluse nelle istruzioni stesse del documento e la restituisce al browser che provvederà a visualizzarla.
L'uso di un interprete intermedio, il preprocessore, permette di includere nelle pagine Web istruzioni che le possono rendere più dinamiche, più ricche e personalizzabili. Ma non solo. Il preprocessore è anche in grado di collegare le pagine Web ad un database in cui sono conservati cataloghi di prodotti, articoli e notizie e comporre le pagine in base ai dati richiesti.
Facciamo un esempio: in un sito di commercio elettronico statico si dovrebbe creare una pagina diversa per ogni prodotto. Adottando un'architettura dinamica la pagina da creare è solamente una, quella che contiene il template o modello del documento e che verrà riempita successivamente dal preprocessore con i contenuti richiesti dal browser e conservati nel database.
I software per ottenere un sito così descritto sono diverse ma una si è imposta sia a livello amatoriale sia a livello professionale per la semplicità di utilizzo, per il fatto di essere gratuita e per essere supportata da una folta comunità di sviluppatori: la soluzione basata sul sistema operativo
Linux, sul server Apache, sul linguaggio
PHP e sul database relazionale MySQL.
Apache è il noto Web Server sviluppato dalla
Apache Foundation. è ad oggi disponibile in due rami differenti, entrambi aggiornati di frequente: l'1.3 e il 2.0. La prima è la versione storica di Apache molto diffusa soprattutto in ambiti professionali per la stabilità dimostrata negli anni. La versione 2.0, rilasciata per la prima volta nel 2002, offre una migliore ottimizzazione per sistemi non Unix, Windows in primis, nuovi moduli aggiuntivi e un processo di configurazione semplificato.
PHP è il linguaggio di scripting utilizzato per gestire i contenuti delle pagine Web e il collegamento con il database. Sin dalla prima versione del 1995 PHP è rimasto un linguaggio specificamente scritto per gestire pagine Web. L'ultima versione, PHP 5, introduce un nuovo scripting engine (lo
Zend Engine 2) e un nuovo e approfondito modello di programmazione orientata agli oggetti.
MySQL è un Relational DataBase Management System (RDBMS), ossia un sistema di gestione di database relazionali. Queste tipologie di database consentono una gestione efficace dei contenuti favorendo le relazioni tra dati conservati in tabelle. In più ne consentono la manipolazione attraverso
SQL, un linguaggio standard, sebbene concretizzato in diversi "dialetti" da molte software house. Tutti i software descritti sono multipiattaforma e gratuiti, rilasciati con licenza GPL o simile.