26 mar 2008

avviare il web server Apache su Mac OS X

Con ogni copia di sistema operativo Mac OS X, tra tutti i servizi utilissimi, viene preinstallato Apache, un web server famoso in ambienti UNIX per la sua affidabilità e potenza.

A seconda della versione di Mac OS installata troverete una corrispondente versione di Apache, ad esempio in Tiger è installata la versione 1.3, in Leopard la versione 2.0 e la versione corrente (alla data del post) è la 2.2.8.

Per chi volesse aggiornare la propria versione con quella più recente può fare riferimento al post sull'aggiornamento di Apache.
L'unico accorgimento che trovo necessario premettere è la posizione della cartella di Apache nei vari sistemi operativi. Nella guida che segue tratterò la procedura di configurazione di Apache per Mac OS 10.4.x Tiger in cui Apache è posizionato nella cartella /etc/httpd. Per coloro che vorranno configurarlo su Leopard basterà invece fare riferimento alla cartella /urs/include/apache2. Tuttavia se non sapete esattamente quello che state facendo vi consiglio vivamente di NON mettere mani in queste directory!!!

Innanzitutto abbiamo bisogno di attivare il servizio di web server su Mac OS X da Preferenze di sistema -> Condivisione e spuntando l'opzione Condivisione Web. Alternativamente possiamo dare il comando da Terminale
sudo apachectl start

(su Leopard sudo /usr/include/apache2/apachectl start). In questo modo avremo il web server Apache avviato e funzionante e per verificarlo basta aprire Safari o un qualsiasi altro web-browser e digitare come indirizzo localhost. Se abbiamo impostato tutto correttamente quello che si ottiene è la pagina di benvenuto preimpostata da Apache che ci avvisa del corretto funzionamento del nostro web server.

A questo punto siamo raggiungibili su Internet attraverso il nostro indirizzo IP esterno, ovvero l'indirizzo IP che l'ISP (Internet Service Provider) ci ha fornito per la connessione a Internet (ATTENZIONE: NON l'IP fornito nella pagine di Preferenze di sitema che invece fa riferimento all'IP assegnato al computer e, nel caso di rete privata con router, sarà del tipo 192.168.x.x) e il nome utente impostato sull'account-utente attivo su Mac OS X. Ad esempio se il nostro IP è 000.000.000.000 e l'account utente imamacuser, allora saremo raggiungibili tramite l'indirizzo http://000.000.000.000/~imamacuser.
[Il simbolo ~ si ottiene con la combinazione di tasti alt+5 su mac oppure alt+126 su win]
La stessa home page visibile all'esterno può essere visualizzata direttamente dal computer su cui è attivo il web server tramite l'indirizzo localhost/~imamacuser.

Da questo punto in poi la strada è tutta in discesa. L'unica cosa da tenere in conto è che tutto ciò che sarà visibile all'esterno si trova nella cartella ~/imamacuser/Siti, pertanto se vogliamo che il web server abbia la funzione di mettere in rete un sito web personale senza appoggiarci a costosi servizi di web hosting basterà posizionare tutti i file e le cartelle del sito in questa cartella. Analogamente, se vogliamo che Apache gestisca uno spazio di file-sharing FTP-like possiamo farlo inserendo le cartelle da condividere direttamente nella cartella Siti. Possiamo anche avere entrambe le cose posizionando tutto nella stessa cartella.

Il risultato sarà una vera e propria directory pubblicata su internet e completamente personalizzabile tramite i file di configurazione di Apache, per modificare i quali vi rimando alla documentazione ufficiale.



Alcune osservazioni:

- Il servizio di web server si appoggia in maniera predefinita alla porta 80 quindi, nel caso la vostra connessione sia composta da computer collegati a un router, dovrete aprire la porta nelle impostazioni di 80NAT del router impostando come IP quello del computer dove è attivo il web server, altrimenti nulla di tutto ciò sarà mai visibile all'esterno.

- per cambiare i parametri di Apache è necessario modificare il file httpd.conf con diritti di root, ma ovviamente se non sapete di cosa sto parlando meglio NON mettere mani!

1 commento:

Anonimo ha detto...

Perché non pensare ad una eventuale ricompilazione, sia di Apache (non necessaria) ma soprattutto di PHP, aggiungendo il supporto a MySQL 5, PostreSQL e soprattutto alle librerie GD?

Se vuoi ti posto qui un piccolo tips per effettuarlo ;)