L'installazione di Apache non si presenta difficoltosa: dopo aver scaricato
dal sito www.apache.org la versione
di Apache per win32 (che occupa poco meno di 3 Mb compressa), basterà
lanciare l'eseguibile e attendere la nota schermata di installazione. La
versione attualmente più aggiornata è la 1.3.9 (quella utilizzata
per la stesura di questo articolo), che viene presentata come una beta
ma che, per imparare ad utilizzare Apache, è più che stabile;
ovviamente, se dovete fare un uso serio ed intensivo di questo webserver,
cercate una versione stabile.
Durante il processo di installazione, non dovremo fare molto, ma solo
limitarci a rispondere al tipo di installazione che si vuole effettuare:
tipica, minima e personalizzata. L'installazione tipica va generalmente bene, ma se volete vedere cosa in effetti verrà installato sul vostro sistema scegliete l'installazione personalizzata. Qui infatti vi sarà
proposto cosa installare:
- Application files
- Web Server Source Code
- Web Server Manual
- Web Server Additional modules
- Server icons
Per non sbagliare, scegliete pure tutto (in totale
sono poco più di 15 Mb), in modo da non avere intoppi dovuti alla
mancanza di qualcosa necessario ad Apache: in teoria, questa 'configurazione'
dovrebbe essere simile all'installazione standard.
Attendiamo che l'installazione termini e potremo utilizzare Apache,
ricordando però prima l'alberatura dell'installazione: tutti i file
necessari sono contenuti in C:ProgrammiApache GroupApache, compreso
l'eseguibile e tutta la documentazione.
A questo punto, Apache sarà installato sul vostro sistema, ma non siamo ancora arrivati alla fine.
Se, infatti, provate a lanciare l'eseguibile da finestra DOS (giusto per avere il tempo necessario alla lettura del messaggio d'errore), vedrete:
C:ProgrammiApache GroupApacheApache
APACHE.EXE: cannot determine local host name.
Use the ServerName directive to set it manually
Cosa significa? Semplicemente che non avete ancora deciso un nome per
il vostro host, che dovrete settare come più vi piace nel file C:ProgrammiApache
GroupApacheconfhttpd.conf, che è il file principale di Apache.
Addentriamoci quindi nella configurazione del server, iniziando proprio dall'editing di questo file (associate l'estensione .conf a wordpad o al Blocco Note, in modo da non dover ogni volta specificare con quale applicazione aprire il file).
La prima cosa da fare è sicuramente
decidere un nome per il nostro host: qui utilizzeremo host.com, ma voi
potrete utilizzare quello che preferite, stando attenti che il nome da
voi scelto non esista già. Quindi cerchiamo in httpd.conf la riga
che inizia con ServerName, decommentiamola (per i 'non addetti ai lavori'
decommentare una riga significa togliere il simbolo '#': questo è
utilizzato quando si vuole che una riga non sia letta dall'applicazione
che ne fa uso) e aggiungiamo il nome del nostro host, in modo che risulti:
A questo punto, torniamo alla nostra finestra DOS (in seguito potremo
abbandonarla, ma per ora sarà utile a leggere i messaggi del server)
e lanciamo apache: il risultato sarà simile a questo:
C:ProgrammiApache GroupApache>Apache
Apache/1.3.9 (Win32) running..
Se tutto fila liscio, potrete aprire il vostro browser preferito e scrivere
localhost e vi vedrete comparire la schermata di Apache che vi informerà
che tutto è andato bene e vi fornirà il link alla documentazione,
che avrete in locale senza dover scaricare niente dalla rete (sempre che
l'abbiate installata). In seguito, se volete, potrete scrivere un semplice
file batch per automatizzare l'avvio di Apache al boot o quando preferite.
Prima di vedere come configurare Apache, vediamo in breve l'alberatura
dell'installazione.
Come già accennato, la directory principale è C:ProgrammiApache
GroupApache
di ogni directory (per comodità, le directory saranno contrassegnate
tra [ ] ):
[Apache]
|
|___ [bin] --> troverete due eseguibili.
|
|___ [cgi-bin] --> la directory dove inserire i vostri script
CGI.
|
|___ [conf] --> in questa directory sono presenti i file di
configurazione di Apache.
|
|___ [htdocs] --> tutta la documentazione che vi serve e il
file index.html, la pagina principale del server.
|
|___ [icons] --> immagini, icone e simili.
|
|___ [logs] --> i logs di Apache.
|
|___ [modules] --> moduli.
|
|___ [proxy]
|
|___ [src] --> il codice sorgente di Apache.
|
|___ Apache.exe --> l'eseguibile.
|
|___ Licence --> la licenza: può essere interessante leggerla.
|
|___ Readme --> il readme di Apache.
|
|___ Readme-NT --> un Readme dedicato agli utilizzatori di NT.
|
|___ [users] --> questa directory non c'è, ma la dovrete
creare se avete degli utenti che vogliano avere delle directory proprie.
La directory conf sarà vista fra poco, quando parleremo della
configurazione, assieme alla directory modules.
La directory logs contiene due importanti file:
- access.log
- error.log
Leggere quest'ultimo file è assai importante per diversi motivi
tra i quali: capire se Apache ha qualcosa che non va, debuggare i CGI o
almeno capire dove si presentano degli errori e così via.
Passiamo ora alla parte principale del nostro lavoro: la configurazione
vera e propria di Apache.
Il punto di partenza è il file httpd.conf, organizzato in varie
sezioni.
ServerType standalone - la modalità inetd è supportata
solamente su sistemi Unix, quindi dovrete lasciare il default, ovvero standalone;
- la directory principale
del server, dove questo tiene i file di log, di configurazione e simili;
lasciate quella di default, che deve corrispondere alla directory decisa
durante l'installazione;
PidFile logs/httpd.pid
- il file nel quale Apache terrà il suo
numero di identificazione; lasciate quello di default;
Timeout 300
tra la chiamata e la risposta; cinque minuti dovrebbero essere una buona
scelta;
LoadModule .....
ognuna delle quali identifica un modulo. Se volete che questo venga caricato
all'avvio di Apache, togliete il simbolo '#' davanti alla riga corrispondente.
Port 80
la 80 va bene, ma se volete cambiarla attenti che la porta da voi selezionata
non risulti occupata da qualche altro processo;
ServerAdmin you@your.address
del sistema;
ServerName host.com
in precedenza, per questi esempi verrà utilizzato host.com;
DocumentRoot "C:/Programmi/Apache Group/Apache/htdocs"
nella quale andranno i vostri file html; vanno bene anche links;
In seguito sono elencate alcune direttive: spiegarle ad una ad una
vorrebbe dire iniziare un discorso troppo ampio: lasciatele come sono e,
se volete saperne di più, consultate la documentazione di Apache)
UserDir "C:/Programmi/Apache Group/Apache/users/
- non essendoci le
home directory, con questa opzione facciamo in modo che le directory personali
degli utenti che utilizzeranno Apache siano sotto la cartella users; potete
cambiarla a vostro piacimento, ma attenzione a non disperdere troppi file
per il disco. Ovviamente, se questa directory non esiste, dovrete crearla.
DirectoryIndex index.html
Index.html va bene, ma se volete aggiungerne altri (ad esempio index.htm)
potete farlo separando le entries con uno spazio;
AccessFileName .htaccess
regola, per ogni directory, i permessi di accesso. Se volete ad esempio,
impostare delle restrizioni con nome utente e password ad una directory,
dovrete utilizzare questo file;
NOTA1: ovviamente, servirà una copia di questo file per
ogni directory che volete proteggere.
NOTA2: se vi chiedete perché; il nome di questo file inizi
con un punto, sappiate che, nei sistemi Unix, i file nascosti iniziano
sempre con il punto.
HostnameLookups Off
solamente i loro indirizzi IP; se impostato su ON usa i nomi, su OFF gli
indirizzi;
ErrorLog logs/error.log
errori. Error.log può andare bene;
LogLevel warn
nei file di log; può essere definito fra: debug, info, notice,
warn, error, crit, alert e emerg;
CustomLog logs/access.log common
i log degli accessi;
ServerSignature On
generate dal server (errori, listing di pagine FTP e simili). Può
essere impostato su On, Off, EMail. Se impostato su EMail, in queste pagine
sarà presente anche un link del tipo mailto: seguito dall'indirizzo
dell'amministratore;
ScriptAlias /cgi-bin/ "C:/Programmi/Apache Group/Apache/cgi-bin/"
questa riga è molto importante: in pratica indica che gli script
CGI chiamati con http://host.com/cgi-bin/nome_script.cgi saranno fisicamente
presenti in C:/Programmi/Apache Group/Apache/cgi-bin/nome_script.cgi.
Tramite queste impostazioni, potrete creare degli host virtuali all'interno
del vostro host principale. Vediamo come si impostano: l'esempio presentato
nel file httpd.conf di Apache si presenta come segue:
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log
common
#</VirtualHost>
Immaginiamo di voler impostare l'host miosito.host.com all'interno del
nostro host.com; dovremo (oltre a decommentare le righe) inserire
qualcosa del tipo:
<VirtualHost xxx.xxx.xxx.xxx>
# L'ip di miosito.host.com
ServerAdmin webmaster@miosito.host.com
# L'indirizzo e-mail dell'amministratore di miosito.host.com
DocumentRoot C:/Programmi/Apache Group/Apache/users/miosito.host.com/
# La directory principale di miosito.host.com
ServerName miosito.host.com
# Il nome del server virtuale
ErrorLog logs/miosito.host.com-error_log
# Dove verranno tenuti i log di miosito.host.com
CustomLog logs/miosito.host.com-access_log common
# Dove verranno tenuti gli altri log di miosito.host.com
</VirtualHost>
Nel caso abbiate bisogno di ulteriori informazioni sui server virtuali,
andate a http://www.apache.org/docs/vhosts/
E con questo abbiamo finito con httpd.conf, visto abbastanza velocemente
ma, per quello che riguarda i nostri scopi, abbastanza profondamente.
A questo punto dovreste avere il server funzionante, settato come voi
preferite e, soprattutto, performante, con il quale potrete fare i vostri
primi esperimenti.
L'ultimo consiglio è il classico: se qualcosa non
funziona o non va come voi speravate, utilizzate la documentazione: è
abbondante e, al 99% dei casi saprà risolvere ogni vostro problema.
Basta solamente un po' di pazienza.