Laravel 5.2 不读取 env 文件。

13 浏览
0 Comments

Laravel 5.2 不读取 env 文件。

升级到Laravel 5.2版本后,我的.env文件中的值都无法读取。我按照升级指导文件进行操作,除了auth.php配置文件之外,我的所有配置文件都没有修改,它们在之前的版本5.1.19中都可以正常工作。

.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版本,基本上只复制了我的app文件夹,没有包括任何其他composer包。但仍然遇到了相同的问题。我的服务器上还有其他的Laravel 5.2项目可以正常工作。

admin 更改状态以发布 2023年5月22日
0
0 Comments

来自官方的 Laravel 5.2 升级注意事项:

如果您在部署过程中使用了 config:cache 命令,您必须确保您仅从配置文件中调用 env 函数,而不是从您的应用程序中的任何其他位置调用。

如果您在应用程序中调用 env,强烈建议您将适当的配置值添加到您的配置文件中,并从该位置调用 env,从而允许您将您的 env 调用转换为 config 调用。

参考文献:https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0

0
0 Comments

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

SITE_NAME="My website"

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

php artisan config:cache
php artisan config:clear

0