apache: definire macro con mod_macro

Tags:

mod_macro rende il lavoro di amministrazione di apache più semplice e veloce

per prima cosa dobbiamo installare ed attivare il modulo

apt-get install libapache2-mod-macro
a2enmod macro
/etc/init.d/apache2 restart

vediamo subito un esempio che ci aiuterà a capire il comportamento

<Macro Logfile>
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
LogLevel warn
</Macro>
per usare la macro basterà inserire
Use Logfile
è possibile passare alla macro anche delle variabili:
<Macro Logfiles $sitename>
CustomLog /var/log/apache2/$sitename-access.log combined
ErrorLog /var/log/apache2/$sitename-error.log
LogLevel warn
</Macro>
e per usare la macro
Use Logfiles dominio1.com

In generale la sintassi di "Use" è

Use <Nome_macro> [Variabile 1] [Variabile 2] ... [Variabile x]

l'ideale sarebbe scrivere tutte le macro nel file /etc/apache2/conf.d/macros.conf, in modo che venga automaticamente incluso da apache.

vediamo qualche configurazione più avanzata:

è anche possibile annidare macro:

<Macro VHost $tipo $hostname>
<VirtualHost *>
    ServerName $hostname
   ServerAlias www.$hostname
   ServerAdmin webmaster@$hostname
 
   DocumentRoot /srv/www/$hostname
    Use VHTipo_$tipo $hostname
   CustomLog /var/log/apache2/$hostname-access.log combined
   ErrorLog /var/log/apache2/$hostname-error.log
   LogLevel warn
 
   ServerSignature Off
 
</VirtualHost>
</Macro>
<Macro VHTipo_static_pages_with_cgi $hostname>
   ScriptAlias /cgi-bin/ /srv/www/$hostname/cgi-bin/
</Macro>
L'uso sarà
Use VHost only_static_pages dominio1.com
Use VHost static_pages_with_cgi dominio2.com
Use VHost with_php dominio3.com