是否可以通过cgi设置SetEnv(设置环境变量)?

时间:2017-01-22 03:28:15

标签: apache environment-variables cgi setenv

我想知道你是否在共享的网络主机上调用setenv(),一般来说,这是允许的吗?或者,在设置全局环境变量时,大多数主机上都会禁用此功能。即如果你有一个cgi程序,在大多数web主机上setenv实际上会工作吗? 想知道这是否是一个安全问题,他们已将其禁用..

我问的原因是因为对于某些程序,将PATH变量设置为setenv调用会非常有用,但是如果这个功能不能移植到所有服务器而某些服务器禁用它,那么它就不会是非常便携的代码永远不会改变服务器。

我不是指cgi变量或post变量,我的意思是实际操作系统setenv调用真正在unix上设置一个真实的环境变量,而不仅仅是apache服务器变量或http变量等。

1 个答案:

答案 0 :(得分:0)

是的,它是允许的,但请注意它只会对CGI脚本启动的进程产生影响。

这一般是正确的,而不是CGI特有的。 setenv()仅影响当前程序的环境和(通常)任何子进程的环境。设置"全系统"环境变量在各种启动脚本等中完成。