laravel

Laravel ei loe .env-fail pärast muutmist

Laravel ei loe .env-fail pärast muutmist

Probleem

See on üsna levinud probleem, mis ilmub uute Laraveli arendajate seas.

Paljud inimesed on proovinud neid värskendada .env-fail lihtsalt selleks, et näha, et kui nad oma rakendust värskendavad, .env konfiguratsiooniväärtusi ei kuvata.

Ja huvitavam on see, et üsna sageli ilmneb see pärast Laraveli versiooni täiendamist.

Nii et näiteks oleks see teil oma .env-fail:

DB_DATABASE = laraveldb
DB_USERNAME = laraveluser

Siis loomulikult konfiguratsiooni / andmebaasi sees.php-fail, mis teil oleks:

'mysql' => [
'andmebaas' => env ('DB_DATABASE', 'lar'),
'kasutajanimi' => env ('DB_USERNAME', 'lar'),
]

forge tähistab siin vaikeväärtusi. See tähendab, et neid väärtusi kasutatakse juhul, kui te pole oma väärtust sisestanud DB_DATABASE ja DB_USERNAME väärtused teie sees .env-fail. See teave on natuke kasulik.

Nüüd saate teada, et teil on see konkreetne probleem, kui teil tekib järgmine erand:

PDOException: SQLSTATE [HY000] [1045] Juurdepääs keelatud kasutajale 'lar' @ 'localhost'
(kasutades parooli: EI)

See näitab selgelt, et teie Laraveli rakendus tõmbab teie vaikeväärtust config / andmebaas.php faili ja mitte teie .env .

Enne midagi muud võite proovida seda probleemi kontrollida ka php-käsitööliste abil:

>>> env ('DB_DATABASE')
=> null
>>> getenv ('DB_DATABASE')
=> vale
>>> config ('andmebaas.ühendused.mysql.andmebaas ')
=> "Lar"
>>> dd ($ _ ENV)
[]

Sageli näete, et järgmise asja tegemine ei muuda ka midagi. Arendajad proovivad siiski oma konfiguratsiooni testida, käivitades täiesti uue Laraveli installi ja kopeerides lihtsalt vana rakenduste kausta. Nad ei käivita ühtegi helilooja pakettide installimist ega tee midagi muud.

Kui te ei kasuta Linuxi (ma ütlen teile selle natuke hiljem), ei näe te muudatusi.

Lahendus

Nagu alati, saate selle probleemi lahendamiseks teha palju asju, kuid mõned neist õnnestuvad tõenäolisemalt.

Tühjendage oma konfiguratsiooni vahemälu

Esiteks, kui te pole seda teinud, peate enne midagi muud tegema oma konfiguratsiooni vahemälu tühjendama.

Kuna meie kood kasutab tänapäeval nii palju raamatukogusid, oleme sunnitud asju vahemällu salvestama, et neile oleks kiire käitamine.

Mul oli sellega Windowsis ja Macis isiklikult probleeme, kuid märkasin, et mingil põhjusel Linuxis (Ubuntu) kustutatakse need konfiguratsioonifailid kas mingisuguse konksuga või neid ei salvestata üldse vahemällu, sest suutsin laadige rakendus uuesti uuega .env väärtused ilma järgmist tegemata.

Tühjendage kindlasti oma konfiguratsiooni vahemälu, käivitades järgmised käsud:

php käsitööliste config: vahemälu
php käsitööliste konfiguratsioon: selge

Kontrollige oma ruumi tühje kohti .env-fail

Järgmine lahendus seisneb selles, et teie sees on tühikud ruumid .env-fail. Ja see, kui enamik inimesi ebaõnnestub ja hakkavad oma juukseid kiskuma.

Sellest on väga lihtne mööda vaadata, kuid näiteks, mis teil võiks olla .env-fail on umbes selline:

SITE_NAME = Minu Laraveli rakendus

Ainuüksi see ei toimi, kuna tühikud ruumid rikuvad .env-fail.

Mida peate tegema, on pakkida oma väärtused jutumärkidesse selliselt:

SITE_NAME = "Minu Laraveli rakendus"

Seekord peaks kõik hästi toimima.

Iga kord, kui muudate, tühjendage kindlasti oma konfiguratsiooni vahemälu. Saame seda teha samamoodi nagu varem:

php käsitööliste config: vahemälu
php käsitööliste konfiguratsioon: selge
Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...