La configurazione del server web apache viene descritta da delle direttive inserite nei file di configurazione. Il file di configurazione principale è httpd.conf; ulteriori file di configurazione possono essere aggiunti utilizzando la direttiva Include.
Per esempio nelle installazioni di default di ubuntu il file httpd.conf è vuoto, mentre partecipano alla configurazione del server web i file:
Per testare la corretta sintassi di tutti i file di configurazione che partecipano alla personalizzazione del servizio apache è sufficiente utilizzare il comando apache2ctl configtest.
Apache è un server modulare, questo significa che pochi moduli sono abilitati nel core del programma, è possibile però caricarli con la direttiva LoadModule, ed in particolare possono essere create direttive condizionali in base alla presenza di determinati moduli (<IfModule>)
Per verificare quali moduli sono abilitati con la versione in esecuzione è sufficiente il comando apache2 -l
Tutte le direttive che vengono associate al file di configurazione generale avranno effetto sul comportamento del server globale, è però possibile vincolare dei comportamenti solo a determinate directory, file o locazioni grazie alle voci:
-
<Directory>
-
<DirectoryMatch>
-
<Files>
-
<FilesMatch>
-
<Location>
-
<LocationMatch>
In più il nostro Server Web è in grado di servire più siti web in modo contemporaneo grazie all’utilizzo della direttiva <VirtualHost>, all’interno della quale si possono specificare i comportamenti particolari di ogni sito.
L’ultimo argomento riguardante il file di configurazione di apache è il file .htaccess; questo solitamente viene identificato dalla presenza in una determinata posizione del sito di un file .htaccess. La presenza di tale file permette ad apache di decentralizzare la gestione dei file di configurazione, lasciando che le direttive presenti in tale file si applichino a tutti i file e le sottodirectory della locazione corrente del file in questione.
Il file può assumere un nome diverso rispetto ad htaccess, l’importante che venga identificato dalla direttiva AccessFileName, in più esiste una seconda direttiva AllowOverride che permette all’amministratore del server web di controllare quali direttive sono lecite all’interno del file .htaccess