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

 

10 Comments

  1. Sono approdato da relativamente poco su Mac os (ottobre anno scorso) e da allora ero alla ricerca di una guida passo passo! L’ho trovata! 🙂
    grazie davvero per la realizzazione!

  2. Bello, bravo!!! Molto bene, magari quando si completerà la serie si potrebeb dedicare un numero speciale del Melamorsico a questa guida, così da avere una documentazione in italiano “compatta”!

  3. Grazie; appena ho tempo (il lavoro in questo periodo è quasi opprimente) la completo, stasera penso di poter postare la seconda parte con Postgresql e PHP

  4. si hai ragione, ma come avevo preannunciato all’inizio la soluzione di questi pachetti customizzati sono utili solo se non si hanno particolari esigenze oppure se si ha la fortuna di trovare un pacchetto che contiene tutti e soli i pacchetti che ci servono. Purtroppo però se sei uno sviluppatore che non usa un solo linguaggio o piattaforma ma che sviluppa usando strumenti diversi (io ad esempio ho progetti in php con postgres, mapserver e postgis; ma ho anche un paio di progeti J2EE con tomcat); o chi ha necessità di utilizzare librerie che NON sono presenti in questi pacchetti customizzati, si può trovare in grossa difficoltà in quanto una delle peculiarità di questi pacchetit è quella di non seguire le regole standard unix per il deployment delle librerie, sorgenti e quant’altro.
    E’ per questo che alla fine risulta essere piu conveniente fare tutto da zero partendo dai pacchetti sorgenti ORIGINALI anche se la procedura è piu complicata. Ad esempio il tuo XAMPP installa apache, mysql, php e perl..ma se avessi bisogno di programmare in php su postgres e posggis? diventerebbe un casino in quanto sarei cmq costretto a ricompilare php con i riferimenti alle librerie postgres.

  5. Io ho “risolto” il problema, anche se problema non era, installando il pacchetto XAMPP per Mac OS X, che contiene Apache, MySQL, Php e Perl.

    Per info, qui

  6. Per far partire in automatico Apache ho usato un AppleScrip poi salvato come applicazione ed inserito in autostart nel mio profilo utente.

    Spero possa essere utile. Ciao.

  7. Ho seguito le istruzioni. Apache2 funziona correttamente ma non riesce a trovare i file html che si trovano nella directory da me specificata.
    Nel file httpd.conf ho modificato correttamente le due voci inserendo la mia directory /Users/nomeutente/my_web .
    Come mai non mi funziona?

Cosa ne pensi?