从控制台运行时,Laravel无法检测Forge设置的环境变量

时间:2014-11-21 15:38:51

标签: laravel laravel-4

例如,如果我通过Forge设置值DB_HOST的环境变量localhost,它会在fastcgi_param DB_HOST "localhost";

的nginx文件中创建一个条目

当我进入控制台并尝试运行任何命令时,如果我执行getenv('DB_HOST'),则依赖于该环境变量的任何命令都将返回false。

但是,如果我从浏览器运行该站点,则没有问题。只有控制台应用程序似乎有这个问题。

什么是在控制台中删除环境变量的内容或阻止它们被读取?

2 个答案:

答案 0 :(得分:0)

当您从命令行运行时,没有设置与HTTPD相同的环境。控制台请求不通过nginx,只需PHP。

您可以使用--env选项为您正在运行的命令设置环境。例如:

php artisan migrate --env=develop

答案 1 :(得分:0)

我找不到将环境变量保存在一个地方(nginx配置文件)的方法,但有一种解决方法是在你的app根目录中创建一个.env.php文件,这使它们可用于生产。

为此,我将以下内容添加到我的.env.php文件中:

return [
    'DB_HOST' => 'localhost',
    'DB_NAME' => 'thename',
    'DB_USER' => 'theuser',
    'DB_PASS' => 'thepass'
];