升级到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"文件夹中; 没有包含额外的作曲家包.还有同样的问题.我在同一台服务器上有其他Laravel 5.2项目正常工作.
从官方Laravel 5.2升级说明:
如果
config:cache
在部署期间使用该命令,则 必须确保仅从env
配置文件中调用该函数,而不是从应用程序中的任何其他位置调用该函数.如果您
env
在应用程序中进行呼叫,强烈建议您在配置文件中添加正确的配置值,并env
从该位置进行呼叫,以便将env
呼叫转换为config
呼叫.
参考:https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
如果您的任何.env
变量包含空格,请确保将它们用双引号括起来.例如:
SITE_NAME="My website"
在测试之前不要忘记清除缓存:
php artisan config:cache php artisan config:clear
哇.好悲伤.这是因为我有一个带有空格的env值,而不是用引号括起来
这个
SITE_NAME=My website
改成了这个
SITE_NAME="My website"
固定它.我认为这与Laravel 5.2有关,现在将vlucas/phpdotenv从1.1.1 升级到2.1.0
我有一个类似的问题,我config/services.php
解决了使用config clear
和optimize
命令:
php artisan config:clear php artisan optimize
运行这个:
php artisan config:clear php artisan cache:clear
然后
php artisan config:cache
对我来说,它按以下顺序工作:
php artisan config:cache php artisan config:clear php artisan cache:clear
而且我尝试了所有其他方法而没有运气。
我对当地环境有同样的问题,我解决了
php artisan配置:清除
php artisan config:cache
然后取消php artisan serve命令,然后重新启动.
我在升级说明中错过了这个:
在
app.php
配置文件中添加一个env配置选项,如下所示:'env' => env('APP_ENV', 'production')
添加此行.env
可以正确读取本地文件.
当你发出命令php artisan config:cache
然后它将消灭所有env
变量env()
并将给出空值,尝试运行follwing命令并繁荣那里你env()
再次开始捕获所有env
变量
php artisan config:clear
对我来说,以下工作
- php artisan config:cache - php artisan config:clear - php artisan cache:clear
简单就是力量:
php artisan config:cache
您将收到:
配置缓存已清除!
配置缓存成功!
使用以下方法删除缓存:
php artisan config:clear php artisan config:cache
当:port在本地.env中时,也会发生同样的事情
再次使用双引号可以解决问题
APP_URL="http://localhost:8000"
然后
php artisan config:clear