laravel

Laravels nelasa .env fails pēc izmaiņām

Laravels nelasa .env fails pēc izmaiņām

Problēma

Šis ir diezgan izplatīts jautājums, kas parādās jauno Laravel izstrādātāju vidū.

Daudzi cilvēki ir mēģinājuši atjaunināt savus .env failu tikai, lai redzētu, ka, atsvaidzinot lietojumprogrammu, .env konfigurācijas vērtības netiek rādītas.

Un vēl interesantāk ir tas, ka diezgan bieži tas parādīsies pēc Laravel versijas jaunināšanas.

Tā, piemēram, jums tas būtu jūsu .env fails:

DB_DATABASE = laraveldb
DB_USERNAME = laraveluser

Tad dabiski, konfigurācijas / datu bāzes iekšpusē.php fails jums būtu šāds:

'mysql' => [
'datu bāze' => env ('DB_DATABASE', 'lar'),
'lietotājvārds' => env ('DB_USERNAME', 'lar'),
]

forge šeit apzīmē noklusējuma vērtības. Tas nozīmē, ka šīs vērtības tiks izmantotas, ja neesat norādījis savu DB_DATABASE un DB_USERNAME vērtības jūsu iekšienē .env fails. Šī informācija nedaudz noderēs.

Tagad, kā jūs zināt, ka jums ir šī īpašā problēma, ir tas, ka jums ir šāds izņēmums:

PDOException: SQLSTATE [HY000] [1045] Lietotājam 'lar' @ 'localhost' piekļuve liegta
(izmantojot paroli: NĒ)

Tas skaidri parāda, ka jūsu Laravel lietojumprogramma iegūst jūsu noklusējuma vērtību config / datu bāze.php failu, nevis no jūsu .env .

Pirms darīt kaut ko citu, varat arī mēģināt pārbaudīt šo problēmu, izmantojot arī php artisan tinker:

>>> env ('DB_DATABASE')
=> nulle
>>> getenv ('DB_DATABASE')
=> nepatiesa
>>> config ('datu bāze.savienojumi.mysql.datu bāze ')
=> “Lar”
>>> dd ($ _ ENV)
[]

Jūs bieži redzēsiet, ka šādas darbības veikšana arī neko nemainīs. Tomēr izstrādātāji mēģina pārbaudīt savu konfigurāciju, palaižot pilnīgi jaunu Laravel instalāciju un vienkārši nokopējot veco lietotņu mapi. Viņi nedarbina nevienu komponista pakotņu instalāciju un nedara neko citu.

Ja vien jūs neizmantojat Linux (es jums nedaudz vēlāk pastāstīšu, kāpēc), izmaiņas netiks rādītas.

Risinājums

Kā vienmēr, ir daudzas lietas, ko varat darīt, lai mēģinātu atrisināt šo problēmu, bet dažām no tām, visticamāk, izdosies.

Notīriet konfigurācijas kešatmiņu

Pirmkārt, ja neesat to izdarījis, jums ir jādzēš konfigurācijas kešatmiņa, pirms varat darīt kaut ko citu.

Tā kā mūsdienās mūsu kods izmanto tik daudz bibliotēku, mēs esam spiesti saglabāt kešatmiņu, lai izpildes laikā tām ātri piekļūtu.

Man personīgi bija problēmas ar to operētājsistēmās Windows un Mac, tomēr es pamanīju, ka kādu iemeslu dēļ Linux (Ubuntu) šie konfigurācijas faili tiek vai nu notīrīti ar kaut kādu āķi, vai arī tie netiek kešatmiņā vispār, jo es varēju atkārtoti ielādējiet lietojumprogrammu ar jaunu .env vērtības, neveicot šādas darbības.

Noteikti notīriet konfigurācijas kešatmiņu, izpildot šādas komandas:

php artisan config: kešatmiņa
php artisan config: skaidrs

Pārbaudiet, vai jūsu telpā nav tukšu vietu .env fails

Nākamais risinājums ir tāds, ka jūsu iekšpusē ir atstarpes .env fails. Un šis, ja lielākā daļa cilvēku neizdodas un sāk plēst matus.

Tas ir ļoti viegli palaist garām to, bet kā piemēru tam, kas jums varētu būt jūsu .env fails ir apmēram šāds:

SITE_NAME = Mana Laravel lietojumprogramma

Tas vien nedarbosies, jo atstarpes sabojās .env fails.

Kas jums jādara, ir jāievieto vērtības šādās pēdiņās:

SITE_NAME = “Mana Laravel lietojumprogramma”

Šoreiz visam vajadzētu darboties lieliski.

Vienkārši pārliecinieties, ka katru reizi, kad veicat izmaiņas, notīriet konfigurācijas kešatmiņu. Mēs varam to izdarīt tāpat kā iepriekš:

php artisan config: kešatmiņa
php artisan config: skaidrs
Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...
Kā tvert un straumēt spēļu sesiju operētājsistēmā Linux
Agrāk spēļu spēlēšana tika uzskatīta tikai par hobiju, taču laika gaitā spēļu industrija piedzīvoja milzīgu tehnoloģiju un spēlētāju skaita pieaugumu....
Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...