Stefano’s notebook

my technical writings

Apache: definire macro con mod_macro

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