Laravel אינו קורא קובץ .env לאחר השינוי

Laravel Is Not Reading



בְּעָיָה

בעיה זו אם היא נפוצה למדי המופיעה בקרב מפתחי Laravel חדשים.

הרבה אנשים ניסו לעדכן את קובץ ה- .env שלהם רק כדי לראות שכאשר הם מרעננים את היישום שלהם, ערכי התצורה של .env אינם מופיעים.







ומה שיותר מעניין הוא שלעתים קרובות, זה יופיע לאחר שדרוג גרסת Laravel שלך.



כך לדוגמה, יהיה לך את זה בקובץ .env שלך:



DB_DATABASE=laraveldb
DB_USERNAME=laraveluser

אז באופן טבעי, בתוך קובץ config/database.php יהיה לך את זה:





'Mysql'=> [
' מאגר מידע '=>env('DB_DATABASE','יָרֵך'),
'שם משתמש'=>env('DB_USERNAME','יָרֵך'),
]

forge כאן מייצג ערכי ברירת מחדל. המשמעות היא שערכים אלה ישמשו במקרה שלא סיפקת את הערך שלך DB_DATABASE ו DB_USERNAME ערכים בתוך קובץ .env שלך. מידע זה יועיל מעט.

עכשיו, איך אתה יודע שיש לך בעיה ספציפית זו אם אתה נתקל בחריג הבא:



PDOException: SQLSTATE[HY000] [1045]הגישה נדחתה בגין מִשׁתַמֵשׁ 'Lar'@'localhost'
( באמצעות סיסמה : לא )

זה מראה בבירור כי יישום Laravel שלך מושך את ערך ברירת המחדל שלך config/database.php קובץ ולא מתוך .env שלך.

לפני שתעשה משהו אחר, אתה יכול גם לנסות לאמת בעיה זו באמצעות phink artisan tinker גם כן:

>>>env('DB_DATABASE')
=> ריק
>>>getenv('DB_DATABASE')
=> שֶׁקֶר
>>>config(' מאגר מידע .connections.mysql. מאגר מידע ')
=>יָרֵך
>>>dd($ _ENV)
[]

לעתים קרובות תראה שגם עשיית הדברים הבאים לא תשנה. עם זאת, מפתחים מנסים לבדוק את התצורה שלהם על ידי הפעלה של התקנת Laravel חדשה לגמרי והעתקת תיקיית האפליקציות הישנה. הם לא מריצים שום התקנת חבילות מלחינים או עושים שום דבר אחר.

אלא אם כן אתה משתמש ב- Linux (אני אגיד לך למה קצת יותר מאוחר), לא תראה שינויים.

פִּתָרוֹן

כמו תמיד, יש הרבה דברים שאתה יכול לעשות כדי לפתור בעיה זו, אך סביר להניח שכמה מהם יצליחו.

נקה את מטמון התצורה שלך

ראשית, אם לא עשית זאת, עליך לנקות את מטמון התצורה שלך לפני שתוכל לעשות משהו אחר.

מכיוון שהקוד שלנו משתמש בכל כך הרבה ספריות בימינו, אנו נאלצים לשמור במטמון דברים כדי לגשת אליהם במהירות בזמן ריצה.

לי אישית היו בעיות עם זה ב- Windows וב- Mac, עם זאת, שמתי לב שמסיבה כלשהי, ב- Linux (אובונטו) קבצי התצורה האלה או שנמחקו עם סוג של וו או שהם לא נשמרים במטמון כלל, כיוון שהצלחתי טען מחדש את היישום עם ערכי .env חדשים מבלי לבצע את הפעולות הבאות.

הקפד לנקות את מטמון התצורה שלך על ידי הפעלת הפקודות הבאות:

תצורת אומן php:מטמון
תצורת אומן php:ברור

בדוק אם יש רווחים ריקים בתוך קובץ .env שלך

הפתרון הבא הוא מבחינת רווחים לבנים בתוך קובץ .env שלך. וזה אם המקום בו רוב האנשים נכשלים ומתחילים לקרוע את השיער.

קל מאוד לפספס את זה, אך כדוגמה מה שאתה יכול לקבל בקובץ .env הוא משהו כזה:

שם אתר=יישום Laravel שלי

זה לבדו לא יעבוד מכיוון שמרחבים לבנים ישחיתו את קובץ .env.

מה שאתה צריך לעשות הוא לעטוף את הערכים שלך בתוך הציטוטים כך:

שם אתר=יישום Laravel שלי

הפעם הכל אמור לעבוד בסדר גמור.

רק הקפד לנקות את מטמון התצורה שלך בכל פעם שאתה מבצע שינוי. אנו יכולים לעשות זאת כמו קודם:

תצורת אומן php:מטמון
תצורת אומן php:ברור