apache — PHP getenv (), возвращающий только несколько параметров в Windows

Недавно я изменил среду веб-сервера в своей производственной системе на Apache2.4 / mod_fcgid 2.3.9. При перезапуске Apache я понял, что мои скрипты зависят от PHP getenv() были сломаны. Проверяя дальше, я мог бы получить Windows PATH с getenv("PATH") но не несколько других переменных, установленных моей установкой приложения, или даже некоторые другие (например, PSModulePath).

С помощью phpinfo()Я не могу видеть эти переменные Windows env, как они были, когда я запускал PHP как модуль apache (mod_php).

Я выложил другие детали моего httpd.conf на Serverfault (https://serverfault.com/questions/675736/apache-2-4-with-mod-fcgid-getenv-not-working-in-php), где подробная версия этого вопроса еще не получила ответа.

В принципе, есть ли фундаментальная причина, почему php getenv()при работе на mod_fcgidДолжны ли извлекаться только определенные переменные (может быть, те, которые изначально установлены с операционной системой, я предполагаю), но игнорировать те, которые впоследствии устанавливаются другими приложениями?

Я кормил Google почти 48 часов и не нашел ничего осязаемого. Может ли кто-нибудь быть добрым, чтобы помочь с пониманием.

Спасибо.

2

Решение

Подведем итоги. У меня не было проблем (под WAMP), пока я не решил перейти на mod_fcgid по умолчанию запуск PHP в качестве модуля apache. После этого, getenv() называется в моем PHP-код вернулся NULL для большинства переменных среды Windows (хотя они отлично работают, как только я переключился на исходный mod_php).

Вот что решило эту проблему для меня после нескольких дней спотыкания. добавлять PassEnv для каждой из пропущенных переменных, которые вы хотите передать в PHP:

PassEnv Variable1
PassEnv Variable2
PassEnv Variable3

Затем, конечно, перезапустите сервер Apache.

Все еще странно, что такого рода произвольные различия должны существовать и быть настолько плохо отражены в документации Apache или fcgid!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]