web-dev-qa-db-ja.com

httpd.confで変数を使用することは可能ですか?

Apache httpd.confファイルでse何らかの変数を使用する方法はありますか?値を定義し、ブロック全体で使用したいのですが、

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

はい、そうです。 ${ENVVAR}構文を使用すると、起動時に設定ファイルに環境変数を代入できます。サーバーを起動する前にこれらの変数を設定する方法を理解するのはあなた次第です。

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

これらの変数は永続化されるため、phpなどの言語のスクリプトはすべて読み取ることができます。

また、これらの値はサーバーの起動時に一度だけ解釈されるため、変数よりも定数に近いことに注意することが重要です。

更新

Httpdバージョン2.4以降、代わりに次の回答を参照してください。 https://stackoverflow.com/a/15731921/498798

33
noodl

Mod_macroを試してください。実際には、本質的に変数であるものを使用できます。 モジュールのドキュメントページ の例は、その要点を示しています。

## 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

http://www.cri.ensmp.fr/~coelho/mod_macro/ でダウンロードを見つけました

7
Scott Willeke