Guida: Apache2, PHP, TomCat…installarli e vivere felici (Parte 1 – Apache2)

L’utente Netmaster ha sviluppato una guida per la configurazione di ambienti server in Os X che utilizza per la prima volta dopo aver utilizzato per anni Linux.

La guida è suddivisa in 3 parti. Questa prima parte è dedicata ad Apache2.

Introduzione

Come da titolo in questi due giorni me la sono menata un casino per installare e configurare questi service per lo sviluppo di applicazioni Web (JSP, PHP, Ajax e quant’altro).
Devo ammettere che per certi versi pensavo che la loro installazione su Mac OS X fosse più semplice (la tanta decantata immediatezza del sistema è vera solo per le applicazioni stand alone classiche ma non è altrettanto vera per i service e gli ambienti); quanto meno pensavo fosse come Wincrost dove l’installazione di questi linguaggi, interpreti e servizi avvengono attraverso semplicissimi setup. Invece ho dovuto fare tutto da zero, compilando a manina tutti questi servizi e configurandoli manualmente. Niente di nuovo sotto il sole (per me) dato che le procedure sono identiche a quelle che ho adottato su Linux. E’ qui che OS X mostra il suo lato Unix, tutte queste operazioni si svolgono attraverso la finestra terminale.

E’ stato un pò difficoltoso all’inizio capire i percorsi dove mettere la roba, questo però perché provengo da una distribuzione debian-like (Ubuntu) che differisce dalle distro basate su posix come la freeBSD su cui è basato OS X… Dopo aver perso un pò di tempo cercando di capire dove andavano le cose sono partito con le procedure. Purtroppo anche qui un piccolo intoppo dovuto alla scarsa documentazione relativa all’installazione di questi service sotto OS X. I service derivano esattamente da pacchetti sorrgenti Linux e la documentazione si riferisce ad essa, ovviamente sotto OS X cambia (basti pensare che le librerie non sono .so ma .a, solo questo aspetto può richiedere il cambiamento di alcuni parametri sui makefile per la compilazione). Anzi la documentazione di pacchetti semi-compilati e già predisposti per OS X esistono..peccato che non funzionino a dovere e in alcuni casi sono perfino fuorivianti (esempi sono l’entropy PHP, o i pacchetti riscritti per OS X gestiti da Finck).

Anche se questi pacchetti sono piu semplici da installare vi posso assicurare che non sono performanti, il mio consiglio è quello di compilarsi e configurarsi tutto a mano partendo dai codici sorgenti puri. Dopo questo preambolo passerò con i prossimi post ognuno dei quali spiegherà come installare i vari pacchetti. I pacchetti Core obbligatori Mac OS X di base non possiedono i pacchetti necessari per poter compilare i sorgenti che seguono lo standard Unix, tali pacchetti sono: il compilatore gcc, gli headers del kernel e di vari moduli del sistema, gli headers xcode, librerie di supporto varie.

L’installazione di questi pacchetti si può effettuare semplicemente inserendo il DVD 1 forniti con il proprio Mac e installare i Developer Tools. Operazione molto semplice da eseguire.

Apache 2

Apache è il web server usato da OS X. Di default il sistema monta Apache 1.3 ma è decisamente ormai superato, occorre usare il 2.x per tutte le moderne applicazioni web. Il consiglio come detto all’inizio non è quello di scaricare i pacchetti preimpostati per MacOS (consigliati dal sito Apple) ma è quello di andare a prendere direttamente i sorgenti dal sito www.apache.org. Scaricate le sorgenti in formato tar.gz.

Una volta scaricati metteteli in una cartella preposta a contenere i sorgenti, personalmente l’ho messi nella cartella Developer creata dall’installazione dei core di sviluppo. Copiate li il tar.gz e scompattatelo (da riga di comando lanciate il comando tar -zxcf nomepachetto.tar.gz potete anche cliccarci sopra in alternativa e chiamare il tool grafico che funziona molto bene. A questo punto siete pronti per compilare. Qui dovete per forza usare il terminale e ricordatevi che tutte le procedure devono essere eseguite con diritti di amministratore utilizzando il comando sudo.

Step 1: preparare il make file per la compilazione. Si usa il comando ./configure che si trova nella cartella dei sorgenti che avete appena scompattato.
Il ./configure contiene una nutrita serie di parametri che cambiano da pacchetto a pacchetto, sono opzioni che darete al compilatore proprio per permettere di creare il programma o il servizio con le caratteristiche che vi interessa. Per visualizzare la lista dei parametri basta lanciare il comando ./configure –help
Personalmente ho lanciato il ./configure con questi parametri ./configure –prefix=/usr/local/apache2 –enable-module=most –enable-shared=max Il primo parametro indica dove verranno buttati i programmi e i servizi compilati; seguendo un pò lo standard li ho messi tutti dentro /usr/local/ ma nessuno vi vieta di metterli da un altra parte. Notate che per il ./configure non importa utilizzare il comando sudo.

Step 2: lanciare la compilazione. Se il ./configure termina senza errori potete compilare. Questa volta è necessario avere i diritti di amministratore ed è quindi necessario anteporre al comando make il comando sudosudo make. Notate che sudo vi chiederà la password di un superuser, di norma nella maggior parte degli usi medi di MacOs, l’utente corrisponde al superuser, quindi mettete pure la vostra password.

Step 3: completate l’installazione. Finito di compilare lanciate il comando sudo make install e il sistema installerà i file compilati nel percorso deciso.

Step 4: configurare Apache2. A questo punto dovrete configurare Apache in modo tale che possa pubblicare sul vostro browser le pagine web o i siti web che avete fatto. Il file di configurazione si troverà nella cartella di destinazione di Apache (nel mio caso /usr/local/apache2/conf) dentro troverete un file httpd.conf; editatelo usando il vostro editor preferito ma ricordatevi di lanciarlo con il comando sudo. Qui dovete modificare il Root Directory mettendo il percorso assoluto dove piazzate i vostri siti. I due parametri si chiamano

DocumentRoot “usr/local/apache2”
e
<Directory “/usr/local/apache2”>

mettete il percorso che piu preferite. Ricordatevi che in documentroot potete metterci tutti i siti che volete, i siti stanno solitamente in cartelle percui potreste voler aggiungere degli alias in modo tale da non costringere l’utente ad impostare nel browser il percorso assoluto per arrivare ai siti.

Step 5: Lanciare il servizionella cartella (nel mio caso /usr/local/apache2/bin) troverete il comando per far partire il servizio. Lanciate

sudo apachectl start per farlo partire
oppure
sudo apachectl stop per stopparlo.

Una volta avviato il server Apache andate nel vostro document root e piazzate un qualsiasi file index.html (usate un editor e fate semplicemente “Hello world” senza troppi fronzoli, giusto per vedere se parte).
Aprite il browser e nell’indirizzo digitate http://localhost/ se apparirà la vostra paginetta web significa che il server Apache2 è correttamente installato e funzionante.

Step 6: modificare MacOs in modo tale da far partire il server Apache automaticamente. Purtroppo questo passo non sono riuscito ad eseguirlo, non conosco ancora il sistema OS X a fondo e non saprei ora come ora dove andare a modificare per poter far partire tale server tutte le volte che si avvia la macchina. Ho cercato un pò in giro ma non ho per ora trovato niente di utile.

Apache