如何在Apache(或OS)中设置环境变量并获取PHP中的值?

时间:2016-10-12 19:27:03

标签: php linux apache

我确保安装了env模块:

a2enmod
Your choices are: access_compat
...
Which module(s) do you want to enable (wildcards ok)?
env
Module env already enabled

我尝试通过添加以下部分在“/etc/apache2/apache2.conf”中为localhost设置环境变量:

<VirtualHost *:80>
    ServerName localhost
    ServerAdmin me@somewhere.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SetEnv devmode 1
</VirtualHost>

...使用以下命令重启Apache:

sudo /etc/init.d/apache2 restart

...然后使用以下方法获取PHP中的值:

getenv("devmode")

或:

apache_getenv("devmode")

...但是当通过localhost上的浏览器访问脚本时,没有任何内容显示这些函数,PHP中的值为空。我尝试将命令放在它自己的上面,没有VirtualHost部分:

SetEnv devmode 1

我尝试将以下行添加到envvars:

export devmode=1

更新 我还尝试将VirtualHost部分放在/ etc / apache2 / sites-available中的专用文件中,并使用a2ensite添加该文件。

我正在使用Linux Mint版本17.3。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您是否尝试过apache_getenv

答案 1 :(得分:0)

将VirtualHost部分放入专用文件后,正如我在原始问题中所述,我发现解决方案是再次运行Apache restart命令:

sudo /etc/init.d/apache2 restart

然后devmode变量出现在PHP中。