2016-11-15 61 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

相關問題