Gestione di porzioni di configurazione

Apache prevede direttive per gestire in modo dinamico la configurazione e attivarne blocchi interi se sono riscontrate determinate condizioni:

IfModule viene usata come una direttiva container (anche se non è propriamente un container): tutte le righe di configurazione che stanno al suo interno vengono processate se il modulo specificato è caricato in memoria. Per esempio:
<IfModule mod_dir.c>
    DirectoryIndex index.html
</IfModule>

attiva la direttiva DirectoryIndex index.html solo se il modulo che la gestisce (mod_dir) è attivo.
Il vantaggio di una configurazione simile è che si può rimuovere il caricamento del modulo in questione senza dover modificare altre parti del file di configurazione (se non ci fosse IfModule, Apache, in mancanza di mod_dir non riuscirebbe a partire e darebbe un messaggio di errore per una direttiva, DirectoryIndex, sconosciuta).
IfModule è ampiamente utilizzata nelle configurazioni standard di Apache.

IfDefine ha sintassi simile a quella di IfModule e viene utilizzata per definire pezzi di configurazione che possono essere caricati se Apache viene avviato usando il flag -D Definizione. Per esempio:
<IfDefine Debugga>
<Location /server-info>
    SetHandler server-info
</Location>
<Location /server-status>
    SetHandler server-status
</Location>
    ExtendedStatus On
    LogLevel debug
</IfDefine>

In questo modo, se si lancia Apache con httpd -D Debugga verranno attivate una serie di direttive che facilitano le operazioni di troubleshooting e debugging.
Tipicamente la direttiva IfDefine e l'invocazione di Apache tramite httpd -D sono usate in casi particolari per prove, test e verifiche di parti di configurazione, considerando anche che un kill -HUP o un apachectl restart riavviano Apache in modalità normale, senza l'inclusione delle direttive specificate all'interno della direttiva IfDefine.

Oltre a queste direttive che gestiscono il caricamento di parte di configurazioni secondo la presenza di un dato modulo o la definizione invocata con l'opzione -D, esiste la possibilità di includere nella conf principale, altri file di configurazione esterni.
La direttiva Include permette di aggiungere file singoli, file definiti con una wildcard o il contenuto di intere directory, alla configurazione principale. Esempi:
Include conf/virtual-domains.conf aggiunge, dal punto in cui si trova, il contenuto del file virtual-domains.conf (presente nella subdirectory conf rispetto alla ServerRoot) alla configurazione di Apache;
Include /etc/httpd/conf.d/*.conf aggiunge tutti i file che terminano con .conf presenti nella directory (assoluta) /etc/httpd/conf.d/;
Include /etc/httpd/conf.d aggiunge tutti i file presenti nella directory /etc/httpd/conf.d.

Privacy Policy