apacheHttpd

il Progetto Server Apache HTTP

Il server web che installeremo non è l'unico server disponibile, ne esistono diversi largamente utilizzati e fortunatamente tutti gratis. In pratica sono tre i più usati secondo Netcraft: httpd di Apache (free), nginx (free) e IIS di Microsoft (proprietario).

Quello che vedremo noi è il più conosciuto, il più usato, disponibile per molte piattaforme e free.

httpd

Intanto i nomi: quello del server è "httpd" ma è conosciuto come "Apache" che è il nome del gruppo che lo sviluppa (e che sviluppa molto altro software).

A seconda del tipo di installazione che vogliamo fare (su un server in produzione o per sviluppare) e del sistema operativo in uso cambia cambia il percorso da seguire. Su Linux (qualsiasi distribuzione) normalmente il pacchetto per l'installazione di apache httpd è disponibile nei repository della distribuzione, su Windows è possibile scaricare diversi programmi che installano httpd a volte insieme ad altri server.

Configurazione

È possibile configurare moltissimi parametri di Apache e installare molti moduli aggiuntivi sul server, qui ci occupiamo soltanto di alcune opzioni.

Il file di configurazione di Apache è in verità piuttosto articolato, alcuni parametri valgono per l'intero server, altri per determinati server virtuali (una singola macchina fisica può fornire più siti) e altri ancora per singole cartelle, dipende dove vengono scritti. In alcune installazioni il file stesso di configurazione è diviso in più file.

In buona sostanza quello che però dovremo fare è impostare alcune proprietà come ad esempio la porta su cui il server si mette in ascolto o l'email dell'amministratore!

Attenzione ad una cosa: cambiando alcune impostazioni potrebbe succedere che il server non sia più in grado di avviarsi e in questo caso sarà necessario intervenire sul file di configurazione e sistemare le cose, per facilitare questa operazione è bene inserire commenti (righe che iniziano con "#") quando si fanno modifiche in modo da poter eventualmente rimettere tutto a posto.

La configurazione che prendiamo in considerazione è quella di un singiolo server (senza server virtuali) con un solo file di configurazione.

Il file di configurazione di apache è un file di testo usualmente chiamato apache.conf o httpd.conf situato nella cartella /etc/apache o simile nel caso di un sistema Unix o nella sottocartella \apache\conf\ di XAMPP ad esempio, utilizzando il pannello di controllo di XAMPP è possibile aprirlo anche utilizzando il pulsante "config".

Questo file contiene singole direttive (un nome seguito da un valore) e alcune informazioni raggruppate all'interno di marcatori che assomigliano a tag dell'html.

Configurazioni globali

DocumentRoot
Dice in quale cartella sono contenuti i file che dobbiamo fornire ai client. Poniamo caso che il nostro server sia www.esempio.org e che l'URL richiesta sia http://eee.esempio.org/immagini/peperone.jpg e che il valore di DocumentRoot sia c:\cane\pluto\ il file che verrà inviato al client è c:\cane\pluto\immagini\peperone.jpg.
DirectoryIndex
Specifica un elenco di risorse da cercare (fornisce la prima che trova) quando il client richiede una cartella. Questa direttiva si troverà probabilmentre all'interno di un blocco <IfModule> per indicare che va eseguita soltanto se il modulo specificato (dir_module in questo caso) è stato caricato.
LoadModule
Apache httpd ha la possibilità di attivare funzionalità aggiuntive utilizzando dei moduli (possiamo pensarle comeestensioni) che vanno esplicitamente caricati.
Nella configurazione base di XAMPP ad esempio c'è un lungo elenco di moduli che possono essere caricati o meno, in pratica tutte le linee che iniziano con "#" sono dei commenti quindi il modulo lì descritto non verrà caricato.
Listen
Indica la porta su cui il server deve mettersi in ascolto (con la stessa direttiva è possibile indicare anche l'indirizzo IP in caso la macchina ne abbia più di uno)
ErrorDocument
Specifica il contenuto da fornire in caso di errore. Bisogna specificare due valori: il primo è il codice dell'errore (ad esempio 500) e il secondo può essere o un messaggio tra virgolette o il nome di un file. I valori vanno come sempre separati da spazi.

Configurazioni per cartelle

È possibile configurare anche opzioni per singole cartelle, in questo caso la configurazione va racchiusa in un blocco

<Directory _nome_cartella>
    # configurazione
</Directory>

che imposterà ciò che viene richiesto par la cartella specificata e tutte le sottocartelle.

Options

File di log

Come tutti i server anche Apache registra delle informazioni riguardo al suo funzionamento nei file di log, in particolare ne vengono usati due diversi: uno per gli accessi legittimi e uno per gli errori. Il primo si configura specificando il suo percorso dopo il parametro di configurazione CustomLog e contiene informazioni sugli accessi da parte degli utenti andati a buon fine. Il secondo si configura utilizzando il parametro ErrorLog in maniera analoga e contiene delle informazioni sugli errori interni al server (utile ad esempio in caso che uno script PHP non funzioni).

XAMPP

XAMPP è una distribuzione di Apache completamente gratuita e semplice da installare, contenente MySQL, PHP e Perl. Il pacchetto open source XAMPP è stato creato per essere estremamente facile da installare e utilizzare.

Home page di XAMPP

In pratica XAMPP è un programma che installa una serie di server e un pannello di controllo che ci rende la vita più semplice!