这应该很容易,但事实并非如此。这是 Laravel 5 中 MySQL 数据库的默认设置。
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
我在生产服务器上运行了 php artisan env
并获得了 production
。我在 Forge 上使用正确的键设置我的环境变量。但是当我在生产服务器上运行 artisan
时,我得到一个错误:'Access denied for user 'forge'@'localhost' (using password: NO)' The reason I think it's saying password: NO如果未设置环境变量,DB_PASSWORD 的默认值为空字符串。
我认为正在发生的事情是 Forge 没有读取我的环境变量,而是使用指定的默认值。如果我更改环境变量的值,我会收到相同的错误消息,这似乎证实了这一点。我已经重新启动了 Digital Ocean 生产服务器,认为这会强制服务器读取变量。但是虚无。我是否需要在 Forge 中做其他事情才能让它读取变量。 Jeffrey Way's Laracast并不表示我需要。
这是怎么回事?
最佳答案
Laravel 5 尚未处于测试阶段。
Taylor 已经在最近的播客中提到他需要更改 Forge 以适应 Laravel 5 环境设置。
我记得他提到了从 Forge 编辑 .env
文件的能力。
现在 - 您只需将所有设置放入 Web 服务器根目录下的 .env
文件中,它就会起作用。
关于php - Forge 不读取我的 Laravel 5 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119984/