После обновления до 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 на том же сервере, которые работают нормально.
источник
.env
Ответы:
Из официальных примечаний к обновлению Laravel 5.2:
Ссылка: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
источник
php artisan config:cache
решил это за меня - больше ничего не помогло. Даже нетphp artisan config:clear
- спасибо!php artisan config:clear
- единственное, что у меня сработалоphp artisan config:clear
у меня работал. Раньше я не делал config: cache, поэтому мне показалось немного странным, что мне пришлось очистить кеш..env
а не.env.example
файлЕсли какая-либо из ваших
.env
переменных содержит пробелы, убедитесь, что вы заключили их в двойные кавычки. Например:SITE_NAME="My website"
Не забудьте очистить кеш перед тестированием:
источник
.env
файле запуститеphp artisan config:cache & php artisan config:clear
команду. Это сработает.Вот это да. Печаль во благо. Это потому, что у меня было значение env с пробелом в нем, а не в кавычках
это
Изменено на это
Починил это. Я думаю, это связано с тем, что Laravel 5.2 теперь обновляет vlucas / phpdotenv с 1.1.1 до 2.1.0
источник
.env
версиях ниже 5.2, а в 5.1 - нет.phpdotenv
, но Laravel все еще знает, что есть.env
файл, который нужно включить, и что это не удалось, но не удосуживается никому сообщить.Для меня это сработало в следующем порядке:
А все остальное перепробовал безуспешно.
источник
У меня была аналогичная проблема по моему ,
config/services.php
и я решил с помощьюconfig clear
иoptimize
команды:источник
Для меня сработало следующее
источник
запустите это:
затем
php artisan config:cache
источник
Когда вы запустили команду,
php artisan config:cache
она уничтожит всеenv
переменные иenv()
выдаст нулевые значения, попробуйте запустить следующую команду иenv()
снова начните ловить всеenv
переменные.источник
У меня была такая же проблема с локальной средой, я решил
источник
Решить проблему можно по следующей рекомендации
Рекомендация 1:
Вы должны использовать файл .env через файлы конфигурации, это означает, что вам требуется прочитать файл .env из файлов конфигурации (таких как /config/app.php или /config/database.php), тогда вы можете использовать конфигурацию файлы из любого места вашего проекта.
Рекомендация 2: укажите значение env в двойных кавычках
Рекомендация 3. Сохраняйте следующую последовательность команд после изменения любой конфигурации или значения env.
Рекомендация 4: если синтаксис1 не работает, вы можете попробовать другой синтаксис2
Рекомендация 5: Если количество пользователей велико / больше, вам необходимо увеличить соответствующий размер памяти в конфигурации сервера .
Рекомендация 6: Установить вероятное значение по умолчанию , когда вы читаете .env переменным.
источник
Я пропустил это в инструкции по обновлению:
Добавление этой строки привело к
.env
правильному чтению локального файла.источник
В простоте - сила:
Вы получите:
Кэш конфигурации очищен!
Конфигурация успешно кэширована!
источник
То же самое происходит, когда: порт находится в вашем локальном .env
снова двойные кавычки делают трюк
а потом
источник
удалить кеш, используя:
источник
Также в дополнение к тому, что предложил @andrewtweber, убедитесь, что у вас нет пробелов между KEY = и значением, если оно не находится между кавычками
.env файл, например:
кому:
источник
Я столкнулся с этой же проблемой на моем локальном компьютере, и я попробовал все ответы здесь, но безрезультатно. Только это сработало для меня,
php artisan config:clear
иrestart server
. Работает как шарм!источник
php artisan config:cache
,php artisan config:clear
тогдаphp artisan cache:clear
Я решил эту проблему, создав новый ключ с помощью команды:
php artisan key:generate
источник
если вы вызывали config: cache во время локальной разработки, вы можете отменить это, удалив файл bootstrap / cache / config.php. и это работа для меня.
источник
если вы вызывали config: cache во время локальной разработки, вы можете отменить это, удалив файл bootstrap / cache / config.php. и это работа для меня.
@Payal Pandav дал комментарий выше.
Хочу подсказать простой обходной путь. Просто отредактируйте файл config.php в папке bootstrap / cache /. И измените учетные данные. Это сработало для меня. Не удаляйте этот файл, так как он может содержать другие важные данные в производственной среде.
источник
В моем случае laravel 5.7
env('APP_URL')
не работает, ноconfig('app.url')
работает. Если я добавлю новую переменную вenv
конфигурацию и в нее - она не работает - но послеphp artisan config:cache
ее запуска работает.источник
php artisan optimize:clear
php artisan config:clear
она очистит ваш кеш конфигурации и больше не будет генерироваться, и когда вы перейдете в производство, вы можете запуститьphp artisan config:cache
кеширование своих конфигурацийЕсли вы запустите эту
php artisan config:cache
команду на консоли, она сохранит все содержимое файла .env в кеше, после этой команды, если вы добавите какое-либо содержимое в файл .env, оно не будет доступно, пока вы не запуститеphp artisan config:clear
командуисточник
Я сталкиваюсь с той же проблемой много раз во время развития личинок. иногда env перестает работать и не возвращает никакого значения. эта причина может быть другой в зависимости от вашей ситуации. но в моем случае несколько дней назад я просто бегал
так что будьте осторожны при использовании этой команды. потому что он сотрет все данные конфигурации из своего кеша. поэтому после этого он не вернет никакого значения. Поэтому в этой ситуации вам нужно сначала использовать это, если вы выполнили команду PHP artisan config :: clear .
источник
Я испытал это. Причина заключалась в том, что apache (пользовательские www-данные) не мог читать .env из-за прав доступа к файлу. Поэтому я изменил права доступа к файлу, чтобы сервер (apache) имел права на чтение файла. Только это и бум, теперь все заработало!
Обновить:
как это сделать, зависит от того, кому принадлежит файл .env, но при условии, что он принадлежит к группе Apache
www-data
, вы можете сделать это:Измените его в зависимости от вашей структуры разрешений.
источник
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.
это на самом деле неправильный подход. У вас должна быть исправлена конфигурация apaxhe, чтобы он служил этому конкретному сайту в качестве владельца, которому принадлежат эти файлы,Я сделал ошибку, сделав dd / die / dump в
index.php
файле. Это приводит к тому, что система не восстанавливает конфигурации.Просто сделайте дамп в просмотре файлов. Изменения в
.env
файле обновляются мгновенно.источник
У меня с этим были проблемы. Похоже, это проблема с правами доступа к файлу где-то в приложении, а не с файлом .env.
Мне пришлось - остановить мой докер - использовать chown, чтобы установить права владения для моего собственного пользователя для всего проекта - снова запустить докер
На этот раз это сработало.
источник
Пробовал почти все вышеперечисленное. Закончил делать
chmod 666 .env
который работал. Эта проблема, кажется, продолжает возникать в приложении, которое я унаследовал, однако в последний раз это было после добавления .env.testing. Запуск Laravel 5.8
источник