2016-11-15 62 views
0

我已经在天蓝色云中的灯服务器上安装了基于PHP的应用程序。 我使用代码getenv('something');为应用程序使用环境变量。我在我的本地主机上以及在heroku上尝试了它,并且它们似乎都能正常工作。应用程序环境设置不正确LAMP Azure Cloud

我在/etc/environment加入Azure云我的Linux服务器上的环境变量,当,当我用命令printenv我可以看到那里列出所有的环境中,例如像这样login_username = root等..

我重新启动服务器,apache2服务器,但没有运气。

我不确定如何查看任何错误或查看哪些环境变量不工作或者是否有人工作。我在网上搜索了很多东西,它说你可以从天蓝色的仪表板上做到这一点,但我也没有运气。

所以基本上我收到显示,现在的唯一的事情就是The application environment is not set correctly.

回答

0

我成功地再现您的问题,在我的情况下,如果在终端php getenv.php直接执行PHP命令,我们就可以顺利拿到环境变量。所以这可能是apache的问题。

如果我们/etc/init.d/apache2潜入的Apache2的脚本,我们可以发现以下部分:

ENV="env -i LANG=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 
if [ "$APACHE_CONFDIR" != /etc/apache2 ] ; then 
     ENV="$ENV APACHE_CONFDIR=$APACHE_CONFDIR" 
fi 
if [ "$APACHE_ENVVARS" != "$APACHE_CONFDIR/envvars" ] ; then 
     ENV="$ENV APACHE_ENVVARS=$APACHE_ENVVARS" 
fi 

所以ENV变量被覆盖,我们需要设置变量/etc/apache2/envvars

以下是我的解决方案,在/etc/environment设置变量:

export VAR="FOO" 

,然后添加下面的文本部分/etc/apache2/envvars

if [ -f /etc/environment ]; then 
    . /etc/environment 
fi 

最后重新启动Apache。

任何进一步的关注,请随时让我知道。

+0

所以我正在搜索我的etc文件,但找不到任何名为apache2的文件夹。 – FaF

+0

如果你没有'apache2',你可以搜索'httpd'。 –

+0

但是我在哪里添加您为envvars提供的代码? – FaF

相关问题