Можно ли использовать переменные в httpd.conf

есть ли способ использовать какие-то переменные в Apache httpd.файл conf? Я хотел бы определить значение и использовать его во всем блоке, как в

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

2 ответов


Да, вроде того. Вы можете получить переменные среды, замененные в файле конфигурации при запуске с синтаксисом ${ENVVAR}. Это до вас, чтобы выяснить, как установить эти переменные перед запуском сервера.

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

обратите внимание, что эти переменные будут сохраняться, поэтому любые скрипты на таких языках, как php, смогут их читать.

также важно отметить, что эти значения интерпретируется только один раз, когда сервер запускается, поэтому они больше похожи на константы, чем на переменные.

обновление

начиная с httpd версии 2.4, вместо этого см. Этот ответ:https://stackoverflow.com/a/15731921/498798


попробовать 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/