例如,如果我通过Forge设置值DB_HOST
的环境变量localhost
,它会在fastcgi_param DB_HOST "localhost";
当我进入控制台并尝试运行任何命令时,如果我执行getenv('DB_HOST')
,则依赖于该环境变量的任何命令都将返回false。
但是,如果我从浏览器运行该站点,则没有问题。只有控制台应用程序似乎有这个问题。
什么是在控制台中删除环境变量的内容或阻止它们被读取?
答案 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'
];