Laravel 5.2 未读取 env 文件

升级到 Laravel 5.2 后,我的文件值都没有被读取。我按照升级说明进行操作;除了身份验证.php之外,我的配置文件都没有被更改。它们在以前的版本5.1.19中都工作正常.env

.env包含的值,例如

DB_DATABASE=mydb
DB_USERNAME=myuser

config/database.php包含

'mysql' => [
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
]

我收到此错误:

PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)

显然没有拉入我的env配置。这会影响我的每一个配置文件,包括第三方,如bugsnag。

我也试过

php artisan config:clear
php artisan cache:clear

更新

正在尝试php artisan tinker

>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]

我尝试安装Laravel 5.2的新副本。我基本上只复制在我的文件夹中;不包括其他作曲家包。仍然有同样的问题。我在同一台服务器上还有其他Laravel 5.2项目工作正常。app


答案 1

如果任何变量包含空格,请确保用双引号将它们括起来。例如:.env

SITE_NAME="My website"

不要忘记在测试之前清除缓存:

php artisan config:cache
php artisan config:clear

答案 2

来自官方的Laravel 5.2升级说明:

如果在部署期间使用该命令,则必须确保仅从配置文件中调用函数,而不是从应用程序中的任何其他位置调用函数。config:cacheenv

如果从应用程序内部调用,强烈建议您将正确的配置值添加到配置文件中,然后改为从该位置调用,从而允许您将调用转换为调用。envenvenvconfig

参考资料: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0


推荐