Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Server LAMP

Imparare che cos'è un server LAMP, e quali sono i passi necessari per installarne le componenti principali (Apache, MySQL e PHP) su Ubuntu Server.
Imparare che cos'è un server LAMP, e quali sono i passi necessari per installarne le componenti principali (Apache, MySQL e PHP) su Ubuntu Server.
Link copiato negli appunti

Secondo recenti statistiche, più della metà dei siti web esistenti al mondo è ospitata su server GNU/Linux, con una varietà di distribuzioni, piattaforme hardware e software. Come molti lettori già sapranno, un sito web moderno è costituito nella maggior parte dei casi da una applicazione web opportunamente configurata. Un'applicazione web è un software scritto per girare su una macchina server, la cui interfaccia utente si basa su tecnologie web.

L'evoluzione delle tecnologie su cui oggi si basano le moderne applicazioni web è stata graduale. Come alcuni ricorderanno, agli albori di Internet i siti web erano pagine statiche, memorizzate sul file system del server e trasmesse al browser attraverso il protocollo HTTP. Questa funzionalità viene implementata per mezzo di un server web.

Siti dinamici e script eseguiti dal server web

In seguito, i siti web sono progressivamente diventati sempre più dinamici: il contenuto delle pagine non è più statico. Esso viene infatti prodotto in output da opportuni script, eseguiti dal server web. Questo paradigma ha portato alla nascita di linguaggi di programmazione specifici per lo scopo, come ad esempio il linguaggio PHP.

L'evoluzione dei linguaggi di scripting per il web, introducendo la possibilità di interfacciarsi con le basi di dati, ha sancito definitivamente la nascita delle applicazioni web come oggi le conosciamo.

Lo stack LAMP

Esistono diverse componenti software sulle quali un'applicazione web si basa. Esse implementano tutte quelle funzionalità necessarie affinchè un qualunque servizio web possa funzionare. Ad esempio, un'applicazione web deve implementare il protocollo HTTP sul quale si basa il web, deve poter gestire i dati che la caratterizzano in modo efficiente, e deve essere indipendente dalla piattaforma hardware e software sottostante, per quanto possibile. Tutte queste funzionalità possono essere implementate in componenti generiche, evitando così di "reinventare la ruota" ogni volta. L'insieme di queste componenti è detto stack.

Stack Lamp in Ububutu

LAMP è uno dei più noti e diffusi stack per applicazioni web. Il nome LAMP deriva dalle iniziali delle quattro componenti software su cui si basa:

  • L da Linux, il sistema operativo su cui si basa lo stack software;
  • A da Apache, il noto server web;
  • M da MySQL, un noto RDBMS open source;
  • P da PHP, il linguaggio di scripting con cui sviluppare la particolare applicazione web;
Figura 1. Architettura dello stack LAMP (click per ingrandire)

Architettura dello stack LAMP

Il primo si occupa come è noto di gestire le risorse della macchina, permettendo il corretto funzionamento dei programmi. Il secondo, gestisce le richieste provenienti dai client (il browser web degli utenti dell'applicazione) comunicando attraveso HTTP (o il suo analogo protocollo sicuro HTTPS). Il terzo è un RDBMS (Relational DataBase Management System), un database relazionale usato dall'applicazione per memorizzare i propri dati. Infine, PHP è come già detto l'interprete del linguaggio di programmazione con cui scrivere la propria applicazione web.

Questo paradigma ha permesso agli sviluppatori di concentrarsi sulla sola applicazione, ed ha inoltre comportato una certa uniformità nello sviluppo delle stesse. Molte sono infatti le applicazioni web basate su stack LAMP, tra le quali citiamo ad esempio il CMS WordPress, il gestore di cloud storage OwnCloud, il DBMS front-end phpMyAdmin, la wiki MediaWiki, eccetera.

Installazione dello stack LAMP

Installare uno stack LAMP comporta l'installazione del server Apache, dell'interprete PHP e di MySQL su una macchina con sistema operativo GNU/Linux. Queste operazioni possono essere effettuate manualmente (come spiegato a questo link), ma data la grande diffusione dello stack LAMP molte distribuzioni Linux implementano dei metodi per l'installazione semplificata di tutto il software necessario (ad esempio un metapacchetto LAMP).

In ambiente Ubuntu Server, esiste un task di tasksel dedicato allo scopo. Pertanto, per installare uno stack LAMP completo è sufficiente invocare il comando tasksel da terminale:

Figura 2. Interfaccia del programma tasksel (click per ingrandire)

Interfaccia del programma tasksel

Selezionando la voce LAMP server e premendo il tasto INVIO, tasksel avvierà l'installazione dei pacchetti richiesti. Durante l'installazione, potrebbe essere richiesto di specificare una password per l'utente root del server MySQL. Ciò è necessario poichè il server MySQL si interfaccia alle altre applicazioni attraverso la rete. L'autenticazione mediante password protegge i dati al suo interno da accessi non autorizzati. La password indicata in questa fase permetterà l'accesso completo al server. Tasksel richiede la digitazione della password due volte, prevenendo errori di digitazione.

Nel caso in cui non si voglia ricorrere a tasksel, è possibile installare tutti i pacchetti richiesti usando il comando apt-get. Ubuntu mette a disposizione il metapachetto lamp-server, che installa tutto il software richiesto. Basterà digitare:

# apt-get update

seguito dal comando:

# apt-get install lamp-server

Ubuntu server: configurazione

Alla fine dell'installazione, Apache, PHP e MySQL saranno presenti nel sistema con le loro configurazioni di default. Per verificare la corretta installazione del server Apache, basterà collegarsi con un browser all'indirizzo IP del server. Il browser dovrebbe mostrare una pagina simile a quella riportata nell'immagine di seguito:

Figura 3. Pagina web di default di Ubuntu server (click per ingrandire)

Pagina web di default di Ubuntu server

Questa pagina ha una duplice utilità: in primo luogo, è una conferma che il server Apache è stato installato e funziona correttamente. Inoltre, riporta alcune informazioni utili sulla configurazione di default, quali il percorso della documentazione del server Apache (/usr/share/doc/apache2/README.Debian.gz), il percorso della directory con i file di configurazione (/etc/apache2/) e la loro struttura, il percorso della directory principale del server web (/var/www), i comandi per attivare, disattivare o riavviare il server (service) ed i comandi per gestire i vari siti installati sul server (a2ensite, a2dissite).

Nelle prossime lezioni verranno esaminati nel dettaglio gli aspetti principali della configurazione dei servizi installati con lo stack LAMP.

Ti consigliamo anche