lighttpd 没有使全局环境变量对可执行文件可用

Posted

技术标签:

【中文标题】lighttpd 没有使全局环境变量对可执行文件可用【英文标题】:lighttpd not making global environment variables availble to executables 【发布时间】:2015-05-03 07:07:51 【问题描述】:

如何设置 lighttpd 以使生成的进程可以使用环境变量?

我有一个通过 CGI 作为 URL 调用的可执行文件(例如 http://.../cgi-bin/executable.bin)。

可执行文件需要加载库并使用export FOO=BAR读取在/etc/profile中设置的环境变量。

当我尝试访问该 URL 时,它会生成内部服务器错误 (500),这是由一个空的环境变量引起的,该变量在 /etc/profile 中正确设置。

【问题讨论】:

【参考方案1】:

我最终在modules.conf 中启用了mod_setenv,并像这样包含了我需要的每个环境变量:

##
## mod_setenv
##
setenv.add-environment = ( "PATH" => env.PATH,
                           "WSFC_HOME" => env.WSFC_HOME,
                           "LD_LIBRARY_PATH" => env.LD_LIBRARY_PATH )

【讨论】:

以上是关于lighttpd 没有使全局环境变量对可执行文件可用的主要内容,如果未能解决你的问题,请参考以下文章

Linux下如何使环境变量文件生效

linux系统可执行文件添加环境变量使其跨终端和目录执行

Windows Vista 产品兼容性讲座 - 对可执行文件签名 Code signing Procedure

yarn如何全局安装命令以及和环境变量的关系

命令对可执行文件执行右键单击操作并选择“使用图形处理器运行”之类的选项

更改 GNU 编译器中的 -g 标志使 C++ 可执行 [重复]