我试图在我的PHP应用程序中使用自定义环境变量进行环境检测。我已在 / etc / environment 中设置系统范围内的变量,重新启动,并检查通过终端使用 printenv 显示该变量。
我还检查过在命令行运行PHP时它是否可见:
php -r 'echo getenv("LOCAL_DEVELOPMENT");'
//returns 'true' as expected
但是当我尝试使用网页脚本时,找不到变量:
var_dump(getenv("LOCAL_DEVELOPMENT"));
//returns 'boolean false' (not expected)
我使用Ubuntu 12.04 LTS与PHP 5.4和Apache 2.2。
为什么变量在Web脚本中不可见,我该如何解决?
答案 0 :(得分:8)
假设您使用的是apache服务器,我认为由于系统环境变量而导致Apache被限制为安全性。
您应该在SetEnv LOCAL_DEVELOPMENT true
之类的apache上设置env变量,或者更好SetEnv APPLICATION_ENV development
通常被视为标准。