phplaravelphpdotenv

Laravel not reading changes to .env file


After upgrading to Laravel 5.2, none of my .env file values are being read. I followed the upgrade instructions; none of my config files were changed except auth.php. They were all working fine in the previous version, 5.1.19

.env contains values such as

DB_DATABASE=mydb
DB_USERNAME=myuser

config/database.php contains

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

I get this error:

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

Not pulling in my env config. This is affecting every single one of my config files, including third parties such as Bugsnag.

I also tried

php artisan config:clear
php artisan cache:clear

Update

Trying php artisan tinker

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

I have tried installing a fresh copy of Laravel 5.2. I only copied it into my app folder; no additional composer packages are included. I still have the same issue. Other Laravel 5.2 projects on the same server are working fine.


Solution

  • If any of your .env variables contains white space, make sure you wrap them in double-quotes. For example:

    SITE_NAME="My website"

    Don't forget to clear your cache before testing:

    php artisan config:cache
    php artisan config:clear