Home topics lamp stack Cos'è uno stack LAMP?
Scopri perché alcune delle applicazioni web open source più diffuse di oggi sono eseguite su questo collaudato stack di Linux, Apache, MySQL e PHP.
Sfondo blu e nero
Cos'è uno stack LAMP?

Probabilmente hai sentito parlare dello stack LAMP. La cosa non sarebbe sorprendente, tenendo conto del fatto che alcune delle attuali applicazioni web open source di più ampio utilizzo - ad esempio  WordPress e Drupal - vengono tutte eseguite su LAMP.

Ma LAMP ha molto di più al suo attivo. È stato uno dei primi stack software open source per il web e rimane uno dei modi più comuni per fornire applicazioni web. È talmente diffuso che probabilmente lo utilizzerai spesso nel corso della tua carriera per aggiornare o eseguire l'hosting di applicazioni esistenti. Ed è considerato da molti la piattaforma ideale per lo sviluppo di nuove applicazioni web personalizzate. 

Stabile, semplice, potente: queste sono le parole più usate per descrivere LAMP. Tutto questo rende la sua conoscenza utile e costituisce una aggiunta preziosa al curriculum di qualsiasi sviluppatore.

Componenti dello stack LAMP

LAMP è l'acronimo di Linux, Apache, MySQL e PHP. Insieme, offrono un set collaudato di software per fornire applicazioni web ad elevate prestazioni. Ogni componente contribuisce alle funzionalità essenziali dello stack:

  • Linux: il sistema operativo. Linux è un sistema operativo (SO) gratuito e open source che esiste dalla metà degli anni '90. Oggi dispone di una vasta base di utenti a livello mondiale che si estende in diversi settori. Parte della popolarità di Linux è da attribuire al fatto che offre più flessibilità e opzioni di configurazione rispetto agli altri sistemi operativi.

  • Apache: il server web. Il server web Apache elabora le richieste e distribuisce le risorse web via HTTP in modo che l'applicazione sia accessibile a chiunque nel pubblico dominio attraverso un semplice URL web. Sviluppato e gestito da una community aperta, Apache è un server avanzato e ricco di funzionalità che gestisce una gran parte dei siti web attualmente su Internet. 

  • MySQL: il database. MySQL è un sistema di gestione di database relazionale open source per la memorizzazione dei dati delle applicazioni. Con MySQL, puoi archiviare tutte le tue informazioni in un formato su cui è facile eseguire query con il linguaggio SQL. SQL è un'ottima scelta se ti stai occupando di un dominio di business ben strutturato e vuoi convertire tale struttura nel backend. MySQL è adatto anche per l'esecuzione di siti grandi e complessi. Consulta "SQL vs. NoSQL Databases: What's the Difference?" per ulteriori informazioni sui database SQL e NoSQL.

  • PHP: il linguaggio di programmazione. Il linguaggio di script open source PHP interagisce con Apache per aiutarti a creare pagine web dinamiche. Non puoi utilizzare HTML per eseguire processi dinamici come l'estrazione di dati da un database. Per fornire questo tipo di funzionalità, ti basta inserire del codice PHP nelle parti di una pagina che desideri siano dinamiche. 

PHP è progettato per l'efficienza. Rende la programmazione più facile - e più divertente - consentendoti di scrivere nuovo codice, premere il tasto per aggiornare e vedere immediatamente le modifiche senza che sia necessaria la ricompilazione. Se preferisci, puoi sostituire PHP con Perl o il sempre più popolare linguaggio Python.

LAMP ha una classica architettura a livelli, con Linux alla base. Il livello successivo è composto da Apache e MySQL, seguito da PHP. Anche se PHP è formalmente al livello superiore o di presentazione, il componente PHP si trova all'interno di Apache.

Come lavorano insieme gli elementi dello stack LAMP

Uno sguardo approfondito all'ordine di esecuzione dello stack LAMP mostra come interagiscono gli elementi. Il processo inizia quando il server web Apache riceve le richieste di pagine web dal browser di un utente. Se la richiesta è per un file PHP, Apache passa la richiesta a PHP, che carica il file ed esegue il codice in esso contenuto. PHP comunica anche con MySQL per recuperare qualsiasi dato a cui si fa riferimento nel codice. 

PHP usa poi il codice nel file e i dati dal database per creare l'HTML richiesto dai browser per visualizzare le pagine web. Lo stack LAMP è efficiente nel gestire non solo pagine web statiche, ma anche pagine dinamiche in cui il contenuto può cambiare ogni volta che viene caricato a seconda della data, dell'ora, dell'identità dell'utente e di altri fattori. 

Dopo aver eseguito il codice del file, PHP passa i dati risultanti nuovamente al server web Apache per l'invio al browser. Può anche archiviare questi nuovi dati in MySQL. E naturalmente, tutte queste operazioni sono abilitate dal sistema operativo Linux in esecuzione alla base dello stack.

Flessibilità dello stack LAMP

Anche se LAMP usa Linux come sistema operativo, puoi usare gli altri componenti con un sistema operativo alternativo per soddisfare le tue esigenze specifiche. Ad esempio, è disponibile lo stack WAMP, che usa Microsoft Windows; MAMP con Mac OS; e anche WIMP, che usa Windows e il server web Internet Information Services di Microsoft. 

Poiché LAMP è completamente open source e non proprietario, puoi evitare di essere vincolato a specifici fornitori. Hai la flessibilità di selezionare i componenti giusti per progetti o requisiti aziendali specifici.

LAMP offre flessibilità anche in altri modi. Apache ha un design modulare e scoprirai che esistono dei moduli personalizzabili a tua disposizione per molte estensioni differenti. Questi moduli vanno dal supporto per altri linguaggi alle funzionalità di autenticazione. 

Un altro vantaggio di LAMP è la sua architettura sicura e le pratiche di crittografia ben consolidate che sono state collaudate in azienda.

Stack LAMP ed efficienza dello sviluppo

LAMP può aiutarti a ridurre il tempo di sviluppo. Poiché LAMP è uno stack open source disponibile da più di un decennio, ne esiste oggi un notevole ecosistema. Puoi sviluppare ulteriormente quello che gli altri hanno fatto in passato e farlo tuo. Lavora all'interno di un modulo Apache che ti accompagna per l'80% del percorso verso il tuo obiettivo e personalizza l'ultimo 20%, risparmiando così molto tempo.

Soluzioni correlate
Configurazione di LAMP

Fornisci applicazioni web ad alte prestazioni sul tuo classico server virtuale configurato con lo stack LAMP.

Esplora la configurazione di LAMP
Risorse Cos'è un database relazionale?

Un database relazionale organizza i dati tra più tabelle uniti insieme mediante chiavi. SQL (Structured Query Language) è il linguaggio di programmazione standard per interagire con i database relazionali.

Cos'è lo stack MEAN?

MEAN - acronimo di MongoDB, Express.js, AngularJS e Node.js - è uno stack JavaScript end-to-end ampiamente utilizzato per le applicazioni pronte per il cloud.

Passa alla fase successiva

Pronto a iniziare a lavorare con LAMP? Questo semplice tutorial ti insegnerà come automatizzare il provisioning e la configurazione di uno stack LAMP su VPC (virtual private cloud), dalla creazione di un ambiente VPC e il provisioning di una VSI (virtual server instance) all'installazione dello stack LAMP e l'hosting, il provisioning e la configurazione di WordPress. (Richiede un account IBM Cloud.)

Prova il tutorial LAMP