Недавно я изменил среду веб-сервера на своей производственной системе на Apache2.4/mod_fcgid 2.3.9. При перезапуске Apache я понял, что мои скрипты в зависимости от PHP getenv()
были сломаны. Кроме того, я мог получить Windows PATH с getenv("PATH")
, но не несколькими другими переменными, установленными установкой моего приложения, или даже некоторыми другими (например, PSModulePath
).PHP getenv() возвращает только несколько параметров в Windows
Использование phpinfo()
, я не вижу эти переменные env Windows, как они были, когда я запускал 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 часов и не нашел ничего ощутимого. Может ли кто-нибудь быть любезным, чтобы помочь с пониманием.
спасибо.
Я считаю, что подавляющее большинство PHP-инсталляций имеют какой-то колорит Unix/Linux, поэтому вы можете попытаться получить ответ на этот вопрос. Сожалею. Есть ли причина, по которой вам нужно напрямую запускать PHP в среде Windows? Не могли бы вы запустить его внутри виртуальной машины? – GordonM
@ GordonM. Спасибо, что ушли. Я понимаю, что PHP и Unix генетически гораздо ближе. Дело в том, что я никогда не делал серьезной работы в Unix, и снова эта конкретная проблема никогда не появлялась, пока этот конкретный модуль не изменился. AGAIN: Если я запускаю PHP в Windows VM внутри Unix, разве это еще не «Windows»? –