Laravel পরিবর্তনের পরে .env ফাইল পড়ছে না

Laravel Is Not Reading



সমস্যা

এটি যদি একটি মোটামুটি সাধারণ সমস্যা যা নতুন লারাভেল ডেভেলপারদের মধ্যে দেখা যায়।

অনেক মানুষ তাদের .env ফাইল আপডেট করার চেষ্টা করছে শুধু দেখতে যে যখন তারা তাদের অ্যাপ্লিকেশন রিফ্রেশ করে, তখন .env কনফিগার মান দেখা যাচ্ছে না।







এবং আরও আকর্ষণীয় বিষয় হল যে প্রায়শই, আপনি আপনার লারাভেল সংস্করণ আপগ্রেড করার পরে এটি প্রদর্শিত হবে।



উদাহরণস্বরূপ, আপনার .env ফাইলে এটি থাকবে:



DB_DATABASE=laraveldb
DB_USERNAME=laraveluser

তারপর স্বাভাবিকভাবেই, config/database.php ফাইলের ভিতরে আপনার এটি থাকবে:





'মাইএসকিউএল'=> [
' তথ্যশালা '=>env('DB_DATABASE','উরু'),
'ব্যবহারকারীর নাম'=>env('DB_USERNAME','উরু'),
]

এখানে ফরজ মানে ডিফল্ট মান। এর মানে হল যে এই মানগুলি ব্যবহার করা হবে যদি আপনি আপনার প্রদান না করেন DB_DATABASE এবং DB_USERNAME আপনার .env ফাইলের ভিতরে মান। এই তথ্য একটু সাহায্য করবে।

এখন, আপনি কীভাবে জানেন যে আপনি এই নির্দিষ্ট সমস্যাটি পেয়েছেন তা হল যদি আপনি নিম্নলিখিত ব্যতিক্রমটি চালান:



PDOException: SQLSTATE[HY000] [1045]জন্য অ্যাক্সেস অস্বীকার করা হয়েছে ব্যবহারকারী 'লার' local 'লোকালহোস্ট'
( ব্যবহার পাসওয়ার্ড : না )

এটি স্পষ্টভাবে দেখায় যে আপনার লারাভেল অ্যাপ্লিকেশনটি আপনার থেকে ডিফল্ট মান টানছে config/database.php ফাইল এবং আপনার .env থেকে নয়।

অন্য কিছু করার আগে, আপনি php কারিগর টিঙ্কার ব্যবহার করে এই সমস্যাটি যাচাই করার চেষ্টা করতে পারেন:

>>>env('DB_DATABASE')
=> খালি
>>>getenv('DB_DATABASE')
=> মিথ্যা
>>>কনফিগ(' তথ্যশালা .connections.mysql তথ্যশালা ')
=>উরু
>>>dd($ _ENV)
[]

আপনি প্রায়ই দেখবেন যে নিচের কাজটি করলেও কোন পার্থক্য হবে না। যাইহোক, ডেভেলপাররা সম্পূর্ণ নতুন Laravel ইন্সটল করে এবং শুধু পুরনো অ্যাপ ফোল্ডারটি কপি করে তাদের কনফিগারেশন পরীক্ষা করার চেষ্টা করে। তারা কোন কম্পোজার প্যাকেজ ইনস্টলেশন চালায় না বা অন্য কিছু করে না।

যদি না আপনি লিনাক্সে থাকেন (আমি আপনাকে একটু পরে বলব), আপনি কোন পরিবর্তন দেখতে পাবেন না।

সমাধান

বরাবরের মতো, এই সমস্যা সমাধানের চেষ্টা করার জন্য আপনি অনেক কিছু করতে পারেন কিন্তু তাদের মধ্যে কয়েকটি সফল হওয়ার সম্ভাবনা বেশি।

আপনার কনফিগ ক্যাশে সাফ করুন

প্রথমত, যদি আপনার কাছে না থাকে তবে অন্য কিছু করার আগে আপনাকে অবশ্যই আপনার কনফিগ ক্যাশে সাফ করতে হবে।

যেহেতু আমাদের কোড আজকাল অনেকগুলি লাইব্রেরি ব্যবহার করছে, তাই রানটাইমের সময় আমরা তাদের কাছে দ্রুত অ্যাক্সেস করতে ক্যাশে করতে বাধ্য হই।

উইন্ডোজ এবং ম্যাক এ আমার ব্যক্তিগতভাবে সমস্যা ছিল, যাইহোক, আমি লক্ষ্য করেছি যে কিছু কারণে, লিনাক্সে (উবুন্টু) এই কনফিগ ফাইলগুলি হয় একরকম হুক দিয়ে সাফ করা হয় বা সেগুলি মোটেই ক্যাশে করা হচ্ছে না, কারণ আমি সক্ষম ছিলাম নিম্নলিখিতগুলি না করে নতুন .env মান সহ অ্যাপ্লিকেশনটি পুনরায় লোড করুন।

নিম্নলিখিত কমান্ডগুলি চালিয়ে আপনি আপনার কনফিগ ক্যাশে সাফ করুন তা নিশ্চিত করুন:

php কারিগর কনফিগারেশন:ক্যাশে
php কারিগর কনফিগারেশন:পরিষ্কার

আপনার .env ফাইলের মধ্যে খালি জায়গা পরীক্ষা করুন

পরের সমাধান হল আপনার .env ফাইলের ভিতরে সাদা জায়গা থাকা। এবং এটি এমন একটি যেখানে বেশিরভাগ মানুষ ব্যর্থ হয় এবং তাদের চুল কাটা শুরু করে।

এটি মিস করা খুব সহজ কিন্তু উদাহরণস্বরূপ আপনি আপনার .env ফাইলে যা থাকতে পারেন তা হল এরকম কিছু:

সাইটের নাম=আমার লারাভেল অ্যাপ্লিকেশন

এটি একা কাজ করবে না কারণ সাদা স্থানগুলি .env ফাইলটিকে দূষিত করবে।

আপনি কি করতে হবে এই মত উদ্ধৃতি ভিতরে আপনার মান মোড়ানো হয়:

সাইটের নাম=আমার লারাভেল অ্যাপ্লিকেশন

এই সময় সবকিছু ঠিক কাজ করা উচিত।

প্রতিবার আপনি একটি পরিবর্তন করার সময় আপনার কনফিগ ক্যাশে সাফ করতে ভুলবেন না। আমরা এটি আগের মতোই করতে পারি:

php কারিগর কনফিগারেশন:ক্যাশে
php কারিগর কনফিগারেশন:পরিষ্কার