我使用C和C ++写了一个fastcGI应用程序
如果尚未设置特定的环境变量,我有一个返回字符串的自由函数。该函数如下所示:
namespace
{
std::string getNameString()
{
char * datastr_ = getenv(MY_ENVAR.c_str());
if (datastr_)
return std::string(datastr_);
return DEFAULT_NAME;
}
};
然后我执行以下步骤(按照下面给出的顺序)
当我调试我的应用程序时,我发现尚未设置环境变量。我怀疑运行fastcgi应用程序的环境可能与运行的环境“正常”应用程序不同。
有谁知道如何在fastcgi app中检索环境变量?
答案 0 :(得分:1)
我怀疑默认情况下,fastcgi进程是在“清理”的环境中生成的,根据您的观察结果。 Apache肯定提供了setting environment variables for fastcgi的方法。这还有一个额外的好处,即稍微不那么神秘(谁希望web服务在/ etc / environment更改时表现不同?),像这样你将“web config things”保留为“web config things”。
答案 1 :(得分:0)
您可以在这里查看http://httpd.apache.org/docs/current/env.html并尝试在apache进程中设置env变量。我假设最新的apache版本。