laravel

Laravel не чете .env файл след промяна

Laravel не чете .env файл след промяна

Проблем

Това е доста често срещан проблем, който се появява сред новите разработчици на Laravel.

Много хора се опитват да актуализират своите .env, само за да се види, че когато опресняват приложението си, .Конфигурационните стойности на env не се показват.

И по-интересното е, че доста често това се появява, след като надстроите версията си Laravel.

Така например, бихте имали това във вашия .env файл:

DB_DATABASE = laraveldb
DB_USERNAME = laraveluser

Тогава естествено, в конфигурацията / базата данни.php файл ще имате това:

'mysql' => [
'база данни' => env ('DB_DATABASE', 'lar'),
'потребителско име' => env ('DB_USERNAME', 'lar'),
]

forge тук означава стойности по подразбиране. Това означава, че тези стойности ще се използват в случай, че не сте предоставили своя DB_DATABASE и DB_USERNAME ценности във вашия .env файл. Тази информация ще ви бъде полезна след малко.

Сега, откъде знаете, че имате този специфичен проблем, е ако срещнете следното изключение:

PDOException: SQLSTATE [HY000] [1045] Достъпът е отказан за потребител 'lar' @ 'localhost'
(с парола: НЕ)

Това ясно показва, че вашето приложение Laravel извлича стойността по подразбиране от вашата config / база данни.php файл, а не от вашия .env .

Преди да направите каквото и да било друго, можете също да опитате да проверите този проблем и с помощта на php artisan tinker:

>>> env ('DB_DATABASE')
=> нула
>>> getenv ('DB_DATABASE')
=> невярно
>>> config ('база данни.връзки.mysql.база данни')
=> „Lar“
>>> dd ($ _ ENV)
[]

Често ще забележите, че извършването на следното нещо също няма да промени. Разработчиците обаче се опитват да тестват конфигурацията си, като стартират напълно нова инсталация на Laravel и просто копират старата папка на приложението. Те не изпълняват инсталации на композиторски пакети или правят нещо друго.

Освен ако не сте на Linux (ще ви кажа защо малко по-късно), няма да видите промени.

Решение

Както винаги, има много неща, които можете да направите, за да се опитате да разрешите този проблем, но някои от тях са по-склонни да успеят.

Изчистете конфигурационния кеш

Първо, ако не сте, трябва да изчистите конфигурационния кеш, преди да можете да направите нещо друго.

Тъй като нашият код използва толкова много библиотеки в днешно време, ние сме принудени да кешираме нещата, за да направим бърз достъп до тях по време на изпълнение.

Аз лично имах проблеми с това на Windows и Mac, но забелязах, че по някаква причина в Linux (Ubuntu) тези конфигурационни файлове или се изчистват с някаква кука, или изобщо не се кешират, защото успях презаредете приложението с нов .env стойности, без да правите следното.

Уверете се, че сте изчистили конфигурационния кеш, като изпълните следните команди:

php artisan config: кеш
php занаятчийски конфиг: ясно

Проверете за празни места във вашия .env файл

Следващото решение е по отношение на наличието на бели пространства във вашия .env файл. И този, ако повечето хора се провалят и започват да си късат косите.

Много е лесно да пропуснете това, но като пример какво бихте могли да имате във вашия .env файл е нещо подобно:

SITE_NAME = Моето приложение Laravel

Само това няма да работи, тъй като белите пространства ще повредят .env файл.

Това, което трябва да направите, е да увиете вашите стойности в кавичките по следния начин:

SITE_NAME = "Моето приложение Laravel"

Този път всичко трябва да работи добре.

Просто не забравяйте да изчистите конфигурационния кеш всеки път, когато правите промяна. Можем да направим това по същия начин както преди:

php artisan config: кеш
php занаятчийски конфиг: ясно
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...
Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...