PHP и переменные среды Apache

Я хочу передать переменную среды в Linux апачу на запуске.

MYVAR=5 экспорта - я определяю свою переменную среды на командной строке

PassEnv MYVAR - апач набора для импорта переменной в апачском файле конфигурации

перезапуск apachectl - когда я перезапускаю апача, я не получаю сообщение об ошибке. Однако я заметил, что, если я не создаю переменную среды в своем первом шаге, я получаю предупреждающее сообщение, так должен работать здесь

$ эха _SERVER ['MYVAR'] - я пытаюсь получить доступ к переменной среды в PHP, но это не определяется

Я заметил, что, если я пробую к PassEnv переменную среды, которая уже выходит (тот, который я havn't создал сам) он хорошо работает. Директива SetEnv также хорошо работает.

Я действительно хотел бы передать переменную среды апачу на лету, не пишущий это в файле. Помогите многому ценившему.

Я использую CentOS, PHP5 и Apache2.

Спасибо.

обновление это кажется переменной среды, передается, если я вызываю апачский запуск непосредственно с httpd и не использую apachectl, который является сценарием оболочки. Я думал бы, что "экспорт" экспортирует переменную в сценарий оболочки нет? Я не гуру Linux, так извините мое отсутствие знаний.

8
задан Simon 31 May 2010 в 04:38
поделиться

2 ответа

Если вы хотите, чтобы переменная окружения передавалась apache, вы должны убедиться, что эта переменная окружения определена для окружения, в котором работает apache. Для этого проще всего добавить строку export MYVAR=value в envvars (должен находиться в /etc/apache2) или в скрипт, запускающий apache (в /etc/init.d), и добавить вашу PassEnv MYVAR туда, где она нужна в конфигурации apache.

Перезапуск apache должен убедиться, что переменная окружения MYVAR передана. AFAIK вы не сможете изменить значение этой переменной во время работы apache, хотя...

Некоторая соответствующая информация для CentOS : http://php.dzone. com/news/inserting-variable-headers-apa&default=false&zid=159&browser=16&mid=0&refresh=0

11
ответ дан 5 December 2019 в 11:22
поделиться

Вы должны получить доступ к переменным среды, используя суперглобальный $ _ENV :

$ _ENV ['MYVAR']

http://www.php.net/ manual / en / reserved.variables.environment.php

Обновление

Ваша переменная может фактически находиться в $ _ SERVER после того, как по ссылке ниже. Тем не менее, стоит проверить $ _ ENV .

Согласно http://www.php.net/manual/en/reserved.variables.environment.php#97105

3
ответ дан 5 December 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: