我有一个由 Apache 调用的 C CGI,均以 SYSTEM 身份运行。
CGI 依赖于 WINDIR 和 TEMPLATES 环境变量的设置。它可以毫无问题地获取 WINDIR 的值,但 getenv("TEMPLATES") 总是返回 NULL。
TEMPLATES 是一个系统变量。
另一篇帖子在 LocalService 帐户下运行的 Win 服务无法访问环境变量建议重新启动,我试过这个但没有用,并确保 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ 具有所需的环境变量,它确实如此。
谢谢。
答案1
通过向我的目录上下文中添加 PassEnv 指令解决了这个问题:
PassEnv TEMPLATES
文档在这里http://httpd.apache.org/docs/2.2/mod/mod_env.html#passenv