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 вводить значення за замовчуванням з вашого конфігурація / база даних.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 artisan config: clear

Перевірте наявність порожніх місць у вашому .env файл

Наступне рішення полягає в тому, щоб у вашому просторі були пробіли .env файл. І цей, якщо там, де більшість людей зазнає невдач і починає рвати волосся.

Це дуже легко пропустити, але як приклад те, що ви могли б мати у своєму .env приблизно такий:

SITE_NAME = Моя програма Laravel

Це одне не спрацює, оскільки пробіли пошкодять .env файл.

Що вам потрібно зробити, це обернути свої значення всередині лапок таким чином:

SITE_NAME = "Моя програма Laravel"

Цього разу все повинно працювати нормально.

Просто не забудьте очистити кеш конфігурації кожного разу, коли ви вносите зміни. Ми можемо зробити це так само, як і раніше:

php artisan config: кеш
php artisan config: clear
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...