1

它们都配置相同。

环境肯定会投入生产。

根本不会读取数据库凭据 - 它想使用 ''@localhost password: NO 作为默认值。

我设置

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => getenv('DB_HOST'),
    'database'  => getenv('DB_NAME'),
    'username'  => getenv('DB_USERNAME'),
    'password'  => getenv('DB_PASSWORD'),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

在所有 4 个站点 app/config/database.php 中,我在 forge 中设置了相关的环境变量。我尝试将环境字段留空,并输入“生产”。我还尝试在 database.php 中使用 $_ENV['environmentvariable']。

这给了我一个不同的未定义索引 DB_HOST 错误。很明显,环境变量没有被读取。

我已经把所有东西都记下来了,并多次重新创建了 repo 和 laravel 服务器。所有其他 3 个站点的配置相同。它检测引导/启动中的环境

$env = $app->detectEnvironment(function()
{
    return getenv('ENV') ?: 'development';
});

我感谢任何帮助家伙。顺便说一句,它在宅基地上运行良好。

编辑:我可以 ssh 进入 forge 并在任何站点或数据库中做任何我想做的事情,除了问题之一,任何 php artisan 命令都失败,并出现“拒绝访问”@localhost 密码:否”,即使我使用 --env="production" 运行它。

4

1 回答 1

2

我不完全确定您是否在根目录下使用 .env 文件来指定不同的环境变量,但是在我自己经历了这个之后,我意识到当环境是“本地”时它读取“.env.local.php”,而当环境是'生产',它需要'.env.php'。

在文档中,但我几乎每次都忘记了。我希望把这个打出来会有所帮助。:)

于 2014-11-11T21:42:41.523 回答