Рейтинг:0

Оператор if, использующий переменную среды

флаг jp

В моей конфигурации apache я пытаюсь активировать фрагмент кода только в том случае, если для переменной среды установлено значение true.

Итак, у меня есть что-то вроде этого:

<If "'${MY_ENV_VAR}' == 'true'">
  # do something
</If>

По какой-то причине это в настоящее время не работает, кто-нибудь знает, что здесь может быть не так?

Большое спасибо

vidarlo avatar
флаг ar
Где установлена ​​переменная? Используя `SetEnv` или в вызывающей оболочке? Если да, то используете ли вы PassEnv?
флаг jp
Он установлен в оболочке
vidarlo avatar
флаг ar
Вы [используете директиву passenv] (https://httpd.apache.org/docs/2.4/mod/mod_env.html)? Пожалуйста, опубликуйте больше вашей конфигурации.
флаг jp
нет, в моей конфигурации немного больше, у меня есть эта переменная среды в оболочке, поэтому, если я наберу «env» в оболочке, я увижу MY_ENV_VAR=true. Я хотел бы использовать этот var для включения или отключения раздела в apache, но не могу точно найти, как это сделать. (Спасибо за ваше время)
Рейтинг:2
флаг ar

Вероятно, это не работает, потому что вы не говорите apache передавать переменные среды с помощью директивы PassEnv.

Вам нужно загрузить mod_env, и вы должны включить строфу, например

PassEnv MY_ENV_VAR

Это довольно хорошо задокументировано в руководство по Apache

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.