После обновления до 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. Я в основном только скопировал в мою папку «приложения»; дополнительные пакеты композитора не включены. Все еще с той же проблемой. У меня есть другие проекты Laravel 5.2 на том же сервере, которые работают нормально.
Из официальных замечаний по обновлению Laravel 5.2:
Если вы используете
config:cache
команда во время развертывания, вы
должен убедитесь, что вы звоните толькоenv
функция изнутри
ваши файлы конфигурации, а не из других мест в вашем
приложение.Если вы звоните
env
из вашего приложения, это сильно
Рекомендуется добавить правильные значения конфигурации в вашу конфигурацию
файлы и вызовenv
вместо этого из этого места, что позволяет конвертировать
вашenv
звонки вconfig
звонки.
Вот это да. Печаль во благо. Это потому, что у меня было значение 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
запустите это:
php artisan config:clear
php artisan cache:clear
затем
php artisan config:cache
Простота — это сила:
php artisan config:cache
Вы получите:
Кэш конфигурации очищен!
Конфигурация успешно кэширована!
Когда вы уволили команду php artisan config:cache
тогда он уничтожит все env
переменные и env()
даст нулевые значения, попробуйте выполнить следующую команду env()
снова начать ловить все env
переменная
php artisan config:clear
У меня была такая же проблема в местной среде, я решил