Apache server è quasi un must se lavoriamo sul web. Abbiamo già visto come installare Apache su Windows o su Linux (come servizio). Se anche in locale lavoriamo con Linux, potrebbe essere comodo installare l'equivalente di un pacchetto AMP (Apache, MySQL e PHP), ovvero XAMPP, per avere un'alternativa al servizio Apache. Questo è spesso molto utile in locale, per avere due istanze di Apache diverse sulla stessa macchina e sperimentare diverse soluzioni client-server.
Chi ha già lavorato con LAMPP dovrebbe trovarsi a proprio agio con XAMPP, poiché si tratta dello stesso software, che negli ultimi anni ha cambiato nome per enfatizzare il fatto di essere cross-platform (da cui la lettera X, cross).
Iniziamo con scaricare XAMPP, ad esempio in questo articolo. Dovremmo ritrovarci con un file del tipo
xampp-linux-1.7.7.tar.gz
Se abbiamo già installato XAMPP (o LAMPP) in passato, la documentazione ufficiale afferma che le versioni precedenti saranno sovrascritte con la nuova installazione. Questo non è sempre vero: prima di procedere conviene quindi rimuovere manualmente la vecchia installazione, digitando ad esempio
sudo rm -rf /opt/lampp
Dopodiché ci spostiamo nella directory dove abbiamo scaricato il file gz e digitiamo
sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /opt
Al termine dell'installazione XAMPP sarà disponibile nel percorso
/opt/lampp
Possiamo finalmente avviare (e arrestare) l'intero pacchetto tramite i comandi
sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop
Attenzione però: questo comando tenterà di avviare Apache web server, il database MySQL e altri strumenti accessori. Questo va bene se non abbiamo già installato Apache o MySQL come servizi, altrimenti, per evitare conflitti, dovremo prima arrestare gli eventuali servizi, ad esempio
sudo service apache2 stop
sudo service mysql stop
In questo modo saremo sicuri che i servizi web e il database saranno quelli di XAMPP, e non altri servizi “omonimi” di sistema. Il motivo di questa precisazione sarà chiaro tra poco. Se tutto è andato a buon fine, ovvero abbiamo risolto i conflitti e avviato il pacchetto, potremo accedere all'interfaccia di amministrazione locale via browser, all'indirizzo http://localhost.
Qui potremo verificare lo status dei vari servizi, controllare la configurazione della sicurezza, gestire i database e consultare la documentazione.
Scenari d'uso
Consideriamo adesso uno scenario di lavoro un po' più realistico, che potremmo trovare sia nell'ambiente di sviluppo sia di produzione. Su una macchina Linux spesso convivono diversi web server e database . A volte è quindi necessario arrestare un servizio prima di avviarne altri.
Esempio: vogliamo usare XAMPP per avere Apache2 a portata di mano, ma abbiamo già un “nostro” MySQL. In questo caso probabilmente vorremmo usare XAMPP solo per gestire Apache2, senza portarci dietro un'altra istanza di MySQL.
Per risolvere problemi di questo tipo XAMPP offre la possibilità di essere avviato usando diverse opzioni, che specificano quali servizi avviare e quali no. Una soluzione molto comoda è quella di associare i comandi che ci servono ad un lanciatore, per avviare i servizi con un click.
Nel caso di Ubuntu, ad esempio, potremmo creare dei lanciatori ad hoc: clicchiamo col tasto destro del mouse sulla barra della applicazioni, scegliamo Aggiungi al pannello... e Lanciatore applicazione personalizzato. Considerando l'esempio visto sopra, ovvero il caso in cui vogliamo usare solamente Apache2, potremmo creare i lanciatori
Nome: Start Apache
Comando: gksu /opt/lampp/lampp startapache
e
Nome: Stop Apache
Comando: gksu /opt/lampp/lampp stopapache
dove il comando gksu
serve per eseguire i comandi come amministratore della macchina (super user).
Se dobbiamo usare XAMPP in un ambiente di produzione, è vivamente consigliato chiudere le falle di sicurezza, che sono inizialmente aperte per lavorare in locale senza richiedere un'installazione laboriosa. A tal fine possiamo lanciare l'utility
/opt/lampp/lampp security
che si occupa di chiederci tutte le password necessarie. Possiamo lanciare il comando senza alcun timore, perché ci verrà chiesto caso per caso se cambiare o meno le password. Se vogliamo lasciare tutto così com'è, ci basterà rispondere “no” alle richieste dell'utility.