Serveur Apache HTTP Version 2.4
Description: | Ce module permet d'utiliser des macros dans les fichiers de configuration Apache. |
---|---|
Statut: | Base |
Identificateur�de�Module: | macro_module |
Fichier�Source: | mod_macro.c |
Ce module permet d'utiliser des macros dans les fichiers de configuration � l'ex�cution du serveur HTTP Apache afin de faciliter la cr�ation de nombreux blocs de configuration similaires. Quand le serveur d�marre, les macros sont ex�cut�es avec les param�tres fournis, et le r�sultat obtenu est trait� au m�me titre que le reste du fichier de configuration.
On d�finit une macro � l'aide des blocs <Macro>
qui contiennent la portion de votre
configuration qui intervient de mani�re r�p�titive, y compris les
variables pour les parties qui devront �tre substitu�es.
Par exemple, vous pouvez utiliser une macro pour d�finir un bloc
<VirtualHost>
, afin de pouvoir
d�finir de nombreux serveurs virtuels similaires :
<Macro VHost $name $domain> <VirtualHost *:80> ServerName $domain ServerAlias www.$domain DocumentRoot /var/www/vhosts/$name ErrorLog /var/log/httpd/$name.error_log CustomLog /var/log/httpd/$name.access_log combined </VirtualHost> </Macro>
Comme les directives de configuration httpd, les noms des macros sont insensibles � la casse, � la diff�rence des variables qui y sont, elles, sensibles.
Vous pouvez alors invoquer cette macro autant de fois que vous le voulez pour cr�er des serveurs virtuels
Use VHost example example.com Use VHost myhost hostname.org Use VHost apache apache.org UndefMacro VHost
Au d�marrage du serveur, chacune de ces invocations
Use
sera remplac�e par une d�finition de serveur
virtuel compl�te, comme d�crit dans la d�finition de la
Macro
.
La directive UndefMacro
permet d'�viter les
conflits de d�finitions qui pourraient provenir de l'utilisation
ult�rieure de macros contenant les m�mes noms de variables.
Vous trouverez une version plus �labor�e de cet exemple plus loin dans la section Exemples.
Les noms de param�tres doivent commencer par un sigil tel que
$
, %
, ou @
, de fa�on � ce qu'ils
soient clairement identifiables, mais aussi afin de faciliter les
interactions avec les autres directives, comme la directive de base
Define
. Dans le cas contraire, vous
recevrez un avertissement. En tout �tat de cause, il est conseill�
d'avoir une bonne connaissance globale de la configuration du serveur,
afin d'�viter la r�utilisation des m�mes variables � diff�rents niveaux,
ce qui peut �tre � l'origine de confusions.
Les param�tres pr�fix�s par $
ou %
ne sont
pas �chapp�s. Les param�tres pr�fix�s par @
sont �chapp�s
entre guillemets.
Evitez de pr�fixer un param�tre par le nom d'un autre param�tre (par
exemple, pr�sence simultan�e des param�tres $win
et
$winter
), car ceci peut introduire de la confusion lors de
l'�valuation des expressions. Si cela se produit, c'est le nom de
param�tre le plus long possible qui sera utilis�.
Si vous d�sirez ins�rer une valeur dans une cha�ne, il est conseill� de l'entourer d'accolades afin d'�viter toute confusion :
<Macro DocRoot ${docroot}> DocumentRoot /var/www/${docroot}/htdocs </Macro>
Un exemple typique d'utilisation de mod_macro
est la
cr�ation dynamique de serveurs virtuels.
## D�finition d'une macro VHost pour les configurations r�p�titives <Macro VHost $host $port $dir> Listen $port <VirtualHost *:$port> ServerName $host DocumentRoot $dir # Racine des documents publique <Directory $dir> Require all granted </Directory> # restriction d'acc�s au sous-r�pertoire intranet. <Directory $dir/intranet> Require ip 10.0.0.0/8 </Directory> </VirtualHost> </Macro> ## Utilisation de la macro VHost avec diff�rents arguments. Use VHost www.apache.org 80 /vhosts/apache/htdocs Use VHost example.org 8080 /vhosts/example/htdocs Use VHost www.example.fr 1234 /vhosts/example.fr/htdocs
Il est recommand� de supprimer la d�finition d'une macro apr�s l'avoir utilis�e. Ceci permet d'�viter les confusions au sein d'un fichier de configuration complexe o� des conflits entre noms de variables peuvent survenir.
<Macro DirGroup $dir $group> <Directory $dir> Require group $group </Directory> </Macro> Use DirGroup /www/apache/private private Use DirGroup /www/apache/server admin UndefMacro DirGroup
Description: | D�finition d'une macro dans un fichier de configuration |
---|---|
Syntaxe: |
<Macro nom [par1 .. parN]>
... </Macro> |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire |
Statut: | Base |
Module: | mod_macro |
La directive Macro
permet de d�finir une macro
dans un fichier de configuration Apache. Le premier argument est le nom
de la macro, et les arguments suivants sont les param�tres. Il
est de bon aloi de pr�fixer les noms des param�tres d'une macro
avec un caract�re parmi '$%@
', et d'�viter d'en faire
de m�me avec les noms de macros.
<Macro LocalAccessPolicy> Require ip 10.2.16.0/24 </Macro> <Macro RestrictedAccessPolicy $ipnumbers> Require ip $ipnumbers </Macro>
Description: | Undefine a macro |
---|---|
Syntaxe: | UndefMacro name |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire |
Statut: | Base |
Module: | mod_macro |
La documentation de cette directive n'a pas encore t traduite. Veuillez vous reporter la version en langue anglaise.
Description: | Utilisation d'une macro |
---|---|
Syntaxe: | Use nom [valeur1 ... valeurN]
|
Contexte: | configuration du serveur, serveur virtuel, r�pertoire |
Statut: | Base |
Module: | mod_macro |
La directive Use
permet d'utiliser une macro.
La macro consid�r�e est expans�e. Son nombre d'arguments doit �tre �gal au
nombre de param�tres pr�cis�s dans sa d�finition. Les valeurs pass�es en
argument sont attribu�es aux param�tres correspondants et
substitu�es avant l'interpr�tation du texte de la macro.
Use LocalAccessPolicy ... Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"
est �quivalent, avec les macros d�finies ci-dessus � :
Require ip 10.2.16.0/24 ... Require ip 192.54.172.0/24 192.54.148.0/24