【发布时间】:2015-03-16 08:36:16
【问题描述】:
我最近将生产系统上的网络服务器环境更改为 Apache2.4/mod_fcgid 2.3.9。在重新启动 Apache 时,我意识到我的依赖于 PHP getenv() 的脚本被破坏了。进一步检查,我可以使用getenv("PATH") 检索 Windows PATH,但不能检索我的应用程序安装设置的其他几个变量,甚至是其他一些变量(例如PSModulePath)。
使用 phpinfo(),当我将 PHP 作为 apache 模块 (mod_php) 运行时,我无法看到这些 Windows 环境变量。
我已经在 Serverfault (https://serverfault.com/questions/675736/apache-2-4-with-mod-fcgid-getenv-not-working-in-php) 上列出了我的 httpd.conf 的其他详细信息,该问题的详细版本尚未得到解答。
基本上,php getenv() 在mod_fcgid 上运行时应该只检索某些变量(我猜可能是最初随操作系统安装的变量),但忽略那些随后由其他应用程序?
我已经在 Google 上搜索了将近 48 小时,但没有发现任何有形的东西。任何人都可以帮助提供见解。
谢谢。
【问题讨论】:
-
我相信绝大多数 PHP 安装都是基于某种 Unix/Linux 的,所以你可能很难得到答案。对不起。是否有理由必须直接在 Windows 环境中运行 PHP?你不能在虚拟机中运行它吗?
-
@GordonM。感谢您的光临。我确实理解 PHP 和 Unix 在基因上更接近。问题是:我从来没有真正在 Unix 上做过任何认真的工作,而且,在这个特定的模块更改之前,这个特殊的问题从未浮出水面。再次:如果我在 Unix 内部的 Windows VM 中运行 PHP,它还不是“Windows”吗?
标签: php apache mod-fcgid getenv