لا يقرأ Laravel ملف .env بعد التغيير

Laravel Is Not Reading



مشكلة

هذه مشكلة شائعة إلى حد ما تظهر بين مطوري Laravel الجدد.

يحاول الكثير من الأشخاص تحديث ملف .env الخاص بهم فقط ليروا أنه عند تحديث تطبيقهم ، لا تظهر قيم التكوين .env.







والأكثر إثارة للاهتمام هو أنه في كثير من الأحيان ، سيظهر هذا بعد ترقية إصدار Laravel الخاص بك.



على سبيل المثال ، سيكون لديك هذا في ملف .env الخاص بك:



DB_DATABASE=Laraveldb
DB_USERNAME=Laraveluser

ثم بطبيعة الحال ، سيكون لديك داخل ملف config / database.php:





'mysql'=> [
' قاعدة البيانات '=>الحسد('DB_DATABASE'و'فخذ')و
'اسم االمستخدم'=>الحسد('DB_USERNAME'و'فخذ')و
]

تشكل هنا القيم الافتراضية. هذا يعني أنه سيتم استخدام هذه القيم في حالة عدم تقديمك DB_DATABASE و DB_USERNAME القيم داخل ملف .env الخاص بك. هذه المعلومات ستكون مفيدة بعد قليل.

الآن ، كيف تعرف أن لديك هذه المشكلة تحديدًا إذا واجهت الاستثناء التالي:



استثناء: SQLSTATE[HY000] [1045]الوصول مرفوض لـ المستعمل 'lar' @ 'localhost'
( استخدام كلمه السر : لا )

يوضح هذا بوضوح أن تطبيق Laravel الخاص بك يسحب القيمة الافتراضية من ملف config / database.php ملف وليس من الخاص بك .env.

قبل القيام بأي شيء آخر ، يمكنك أيضًا محاولة التحقق من هذه المشكلة باستخدام php artisan tinker أيضًا:

>>>الحسد('DB_DATABASE')
=> باطل
>>>غيتنف('DB_DATABASE')
=> خاطئة
>>>التكوين(' قاعدة البيانات .connections.mysql. قاعدة البيانات ')
=>فخذ
>>>ي(_ENV دولار)
[]

غالبًا ما ترى أن القيام بما يلي لن يحدث فرقًا أيضًا. ومع ذلك ، يحاول المطورون اختبار التكوين الخاص بهم عن طريق تشغيل تثبيت Laravel جديد تمامًا ونسخ مجلد التطبيق القديم فقط. لا يقومون بتشغيل أي تثبيتات لحزم الملحن أو يفعلون أي شيء آخر.

ما لم تكن تستخدم Linux (سأخبرك عن السبب لاحقًا) ، فلن ترى أي تغييرات.

حل

كما هو الحال دائمًا ، هناك العديد من الأشياء التي يمكنك القيام بها لمحاولة حل هذه المشكلة ولكن من المرجح أن ينجح القليل منها.

امسح ذاكرة التخزين المؤقت للتهيئة

أولاً ، إذا لم تقم بذلك ، يجب عليك مسح ذاكرة التخزين المؤقت للتهيئة قبل أن تتمكن من فعل أي شيء آخر.

نظرًا لأن الكود الخاص بنا يستخدم العديد من المكتبات في الوقت الحاضر ، فنحن مضطرون إلى تخزين الأشياء مؤقتًا للوصول إليها بسرعة أثناء وقت التشغيل.

أنا شخصياً واجهت مشاكل مع هذا على نظامي التشغيل Windows و Mac ، ومع ذلك ، لاحظت أنه لسبب ما ، على Linux (Ubuntu) يتم مسح ملفات التكوين هذه بنوع من الخطاف أو لا يتم تخزينها مؤقتًا على الإطلاق ، لأنني كنت قادرًا على أعد تحميل التطبيق بقيم .env الجديدة دون القيام بما يلي.

تأكد من مسح ذاكرة التخزين المؤقت للتكوين عن طريق تشغيل الأوامر التالية:

ملف التكوين الحرفي php:مخبأ
ملف التكوين الحرفي php:صافي

تحقق من وجود مسافات فارغة داخل ملف .env الخاص بك

الحل التالي هو وجود مسافات بيضاء داخل ملف .env الخاص بك. وهذا إذا فشل معظم الناس وبدأوا في تمزيق شعرهم.

من السهل جدًا تفويت هذا ولكن كمثال على ما يمكن أن يكون لديك في ملف .env الخاص بك شيء من هذا القبيل:

اسم الموقع=تطبيق My Laravel

هذا وحده لن يعمل لأن المساحات البيضاء سوف تفسد ملف .env.

ما عليك القيام به هو التفاف القيم الخاصة بك داخل علامات الاقتباس مثل هذا:

اسم الموقع=تطبيق My Laravel

هذه المرة كل شيء يجب أن يعمل بشكل جيد.

فقط تأكد من مسح ذاكرة التخزين المؤقت للتهيئة في كل مرة تقوم فيها بإجراء تغيير. يمكننا أن نفعل هذا كما كان من قبل:

ملف التكوين الحرفي php:مخبأ
ملف التكوين الحرفي php:صافي