Можно ли использовать переменные в httpd.conf? - PullRequest
30 голосов
/ 13 января 2011

Есть ли способ использовать переменные какого-либо рода в файле 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 ]

33 голосов
/ 13 января 2011

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

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

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

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

Обновление

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

7 голосов
/ 14 мая 2013

Попробуйте 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/

...