Laravel 5.2 не читает файл env

После обновления до Laravel 5.2 ни один из моих .env файла .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. Я в основном копируется только в папку «приложение»; дополнительные пакеты композиторов не включены. По-прежнему имеет ту же проблему. У меня есть другие проекты Laravel 5.2 на том же сервере, которые работают нормально.

Из официального отчета Larvel 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 

Изменено к этому

 SITE_NAME="My website" 

Починил это. Я думаю, что это связано с Laravel 5.2, теперь обновляющим vlucas / phpdotenv с 1.1.1 до 2.1.0

Если какая-либо из ваших переменных .env содержит пробел, убедитесь, что вы завернули их в двойные кавычки. Например:

SITE_NAME="My website"

Не забудьте очистить кеш до тестирования:

 php artisan config:cache; php artisan config:clear; 

У меня была аналогичная проблема в моем config/services.php и я решил использовать команды config clear и optimize :

 php artisan config:clear php artisan optimize 

Я пропустил это в инструкциях по обновлению:

Добавьте параметр конфигурации env в app.php конфигурации app.php который выглядит следующим образом: 'env' => env('APP_ENV', 'production')

Добавление этой строки .env к правильному чтению локального файла .env .

Простота – это сила:

 php artisan config:cache 

Вы получите:

Очистка кэша конфигурации!

Конфигурация кэширована успешно!

Я решил эту проблему generatin нового ключа php artisan key:generate

Кроме того, в дополнение к тому, что предлагалось @andrewtweber, убедитесь, что у вас нет пробелов между KEY = и значением, если оно не находится между кавычками

.env, например:

 ... SITE_NAME= My website MAIL_PORT= 587 MAIL_FROM_NAME= websitename ... 

чтобы:

 ... SITE_NAME="My website" MAIL_PORT=587 MAIL_FROM_NAME=websitename ... 

выполните следующее:

 php artisan config:clear php artisan cache:clear