laravel

Laravel leest niet .env-bestand na wijziging

Laravel leest niet .env-bestand na wijziging

Probleem

Dit is een vrij algemeen probleem dat zich voordoet bij nieuwe Laravel-ontwikkelaars.

Veel mensen hebben geprobeerd hun .env-bestand om te zien dat wanneer ze hun applicatie verversen, de .env-configuratiewaarden worden niet weergegeven.

En wat interessanter is, is dat dit vrij vaak verschijnt nadat je je Laravel-versie hebt geüpgraded.

Dus je zou dit bijvoorbeeld in je hebben .env-bestand:

DB_DATABASE=laraveldb
DB_USERNAME=laravelgebruiker

Dan natuurlijk, binnen de config/database.php-bestand zou je dit hebben:

'mysql' => [
'database' => env('DB_DATABASE', 'lar'),
'gebruikersnaam' => env('DB_USERNAME', 'lar'),
]

forge here staat voor standaardwaarden. Dit betekent dat deze waarden worden gebruikt voor het geval u uw DB_DATABASE en DB_USERNAME waarden in je .env-bestand. Deze informatie zal binnenkort nuttig zijn.

Hoe u weet dat u dit specifieke probleem heeft, is als u de volgende uitzondering tegenkomt:

PDOException: SQLSTATE [HY000] [1045] Toegang geweigerd voor gebruiker 'lar'@'localhost'
(met wachtwoord: NEE)

Dit laat duidelijk zien dat uw Laravel-toepassing de standaardwaarde uit uw . haalt config/database.php bestand en niet van uw .env .

Voordat je iets anders doet, kun je ook proberen dit probleem te verifiëren met behulp van php artisan tinker:

>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> onwaar
>>> config('database.verbindingen.mysql.gegevensbestand')
=> “lar”
>>> dd($_ENV)
[]

Je zult vaak zien dat het volgende ook geen verschil maakt. Ontwikkelaars proberen echter hun configuratie te testen door een volledig nieuwe Laravel-installatie uit te voeren en gewoon de oude app-map te kopiëren. Ze voeren geen installatie van Composer-pakketten uit of doen niets anders.

Tenzij je Linux gebruikt (ik zal je later vertellen waarom), zul je geen veranderingen zien.

Oplossing

Zoals altijd zijn er veel dingen die je kunt doen om dit probleem op te lossen, maar een paar ervan hebben meer kans van slagen.

Wis je configuratiecache

Ten eerste, als je dat nog niet hebt gedaan, moet je je configuratiecache wissen voordat je iets anders kunt doen.

Omdat onze code tegenwoordig zoveel bibliotheken gebruikt, zijn we genoodzaakt om dingen in de cache te plaatsen om er tijdens runtime snel toegang toe te krijgen.

Ik had hier persoonlijk problemen mee op Windows en Mac, maar ik merkte dat om de een of andere reden op Linux (Ubuntu) deze configuratiebestanden ofwel worden gewist met een soort haak of dat ze helemaal niet in de cache worden opgeslagen, omdat ik in staat was om herlaad de applicatie met new .env-waarden zonder het volgende te doen:.

Zorg ervoor dat u uw configuratiecache leegmaakt door de volgende opdrachten uit te voeren:

php artisan config:cache
php artisan config: wissen

Controleer op lege ruimtes in uw .env-bestand

De volgende oplossing is in termen van het hebben van witte ruimtes in uw .env-bestand. En deze als waar de meeste mensen falen en hun haar beginnen te scheuren.

Het is heel gemakkelijk om dit te missen, maar als voorbeeld wat u in uw .env-bestand ziet er ongeveer zo uit:

SITE_NAME=Mijn Laravel-toepassing

Dit alleen zal niet werken, omdat witruimten de .env-bestand.

Wat u moet doen, is uw waarden als volgt tussen de aanhalingstekens plaatsen:

SITE_NAME=”Mijn Laravel-applicatie”

Deze keer zou alles goed moeten werken.

Zorg ervoor dat u uw configuratiecache wist telkens wanneer u een wijziging aanbrengt. We kunnen dit hetzelfde doen als voorheen:

php artisan config:cache
php artisan config: wissen
Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...
AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...
Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...