Apache 是否可以通过cgi设置环境变量?

Apache 是否可以通过cgi设置环境变量?,apache,environment-variables,cgi,setenv,Apache,Environment Variables,Cgi,Setenv,我想知道,如果您在共享web主机上调用setenv(),通常允许这样做吗?或者,在设置全局环境变量时,在大多数主机上是否会禁用此功能。也就是说,如果您有一个cgi程序,那么在大多数web主机上setenv会真正工作吗? 想知道这是否是一个安全问题,他们已将其禁用 我问这个问题的原因是,对于某些程序,将路径变量设置为setenv调用将非常有用,但如果此功能不能移植到所有服务器,并且某些服务器禁用了此功能,那么如果您更改服务器,则此代码将不是非常可移植的 我不是指cgi变量或post变量,我是指在u

我想知道,如果您在共享web主机上调用setenv(),通常允许这样做吗?或者,在设置全局环境变量时,在大多数主机上是否会禁用此功能。也就是说,如果您有一个cgi程序,那么在大多数web主机上setenv会真正工作吗? 想知道这是否是一个安全问题,他们已将其禁用

我问这个问题的原因是,对于某些程序,将路径变量设置为setenv调用将非常有用,但如果此功能不能移植到所有服务器,并且某些服务器禁用了此功能,那么如果您更改服务器,则此代码将不是非常可移植的


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

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


这在一般情况下是正确的,并不特定于CGI
setenv()
只影响当前程序的环境和(通常)任何子进程的环境。“系统范围”环境变量的设置是在各种启动脚本中完成的,等等。

感谢您的提示,我正在考虑使用setenv设置GOPATH,并在cgi程序中启动编译器,因为go很挑剔,需要GOPATH(当然不需要,但有时最好设置这个变量,因为它几乎是一个要求,但并不完全。)