web-dev-qa-db-fra.com

Est-il possible d'utiliser des variables dans httpd.conf

Existe-t-il un moyen de tiliser certaines variables dans un fichier Apache httpd.conf? Je voudrais définir une valeur et l'utiliser dans un bloc, comme dans

define myvar somename #or whatever the syntax would be
alias /my/path "/some/path/${myvar} #or whatever the syntax would be
30
Paul Spencer

Oui, en quelque sorte. Vous pouvez obtenir des variables d'environnement substituées dans le fichier de configuration au démarrage avec le ${ENVVAR} syntaxe. C'est à vous de comprendre comment définir ces variables avant de démarrer le serveur.

http://httpd.Apache.org/docs/2.2/configuring.html#syntax

Notez que ces variables persisteront donc tous les scripts dans des langages comme php pourront les lire.

Il est également important de noter que ces valeurs ne sont interprétées qu'une seule fois au démarrage du serveur afin qu'elles ressemblent davantage à des constantes qu'à des variables.

Mise à jour

À partir de la version 2.4 de httpd, consultez plutôt cette réponse: https://stackoverflow.com/a/15731921/498798

33
noodl

Essayez mod_macro. Il vous permet en fait d'utiliser ce qui sont essentiellement des variables. Un exemple de la page de documentation du module en donne l'essentiel:

## Define a VHost Macro for repetitive configurations

<Macro VHost $Host $port $dir>
  Listen $port
  <VirtualHost *:$port>

    ServerName $Host
    DocumentRoot $dir

    <Directory $dir>
      # do something here...
    </Directory>

    # limit access to intranet subdir.
    <Directory $dir/intranet>
      Require ip 10.0.0.0/8
    </Directory>
  </VirtualHost>
</Macro>

## Use of VHost with different 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

J'ai trouvé un téléchargement pour cela sur http://www.cri.ensmp.fr/~coelho/mod_macro/

7
Scott Willeke