লারাভেল 5.2 এনভিও ফাইলটি পড়ছে না


109

লারাভেল ৫.২ এ আপগ্রেড করার পরে, আমার কোনওটি নেই .env ফাইলের মান পড়ছে না। আমি আপগ্রেড নির্দেশাবলী অনুসরণ করে ; আমার কনফিগারেশন ফাইলের কোনও auth.php ব্যতীত পরিবর্তন করা হয়নি। তারা সকলেই 5.1.19 পূর্ববর্তী সংস্করণে ভাল কাজ করছিল

.env যেমন মান রয়েছে

DB_DATABASE=mydb
DB_USERNAME=myuser

config/database.php রয়েছে

'mysql' => [
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
]

আমি এই ত্রুটি পেয়েছি:

PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)

স্পষ্টতই আমার env কনফিগারেশনে টানছে না। এটি বাগ্সনাগের মতো তৃতীয় পক্ষ সহ আমার কনফিগারেশন ফাইলগুলির প্রতিটিকেই প্রভাবিত করছে।

আমিও চেষ্টা করেছি

php artisan config:clear
php artisan cache:clear

হালনাগাদ

চেষ্টা php artisan tinker

>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]

আমি লারাভেল 5.2 এর একটি নতুন কপি ইনস্টল করার চেষ্টা করেছি। আমি মূলত আমার appফোল্ডারে অনুলিপি করেছি ; কোনও অতিরিক্ত সুরকার প্যাকেজ অন্তর্ভুক্ত করা হয় না। এখনও একই সমস্যা আছে। আমার একই সার্ভারে অন্যান্য লারাভেল 5.2 প্রকল্প রয়েছে যা ভাল কাজ করছে।


1
আপনি কি নিশ্চিত .env ফাইলটির নামমাত্র .env হয়েছে? .Env.example নয়?
জেমস এলিয়ট

অ্যান্ড্রু আপনি ফরজ ইন্টারফেস দ্বারা .env ফাইল সম্পাদনা করছেন বা এটি আপলোড করছেন?
মার্ক ডেভিডসন

@ জামেসিলিওট হ্যাঁ এটি হ'ল.env
অ্যান্ড্রুটবার

1
নাকি আপনি স্থানীয়ভাবে এটি চালাচ্ছেন? যদি আপনার কারিগর অধীনে চলমান থাকে তবে আপনার ক্ষেত্রে এটি পুনরায় আরম্ভ করা দরকার যদি ঘটনাটি ঘটে।
মার্ক ডেভিডসন

@ মার্কড্যাভিডসন কমান্ড লাইনে vi এর মাধ্যমে এটি সম্পাদনা করেছেন, এবং এটি কোনও সম্পূর্ণ সার্ভারে নেই
অ্যান্ড্রুটবার

উত্তর:


90

সরকারী লারাভেল 5.2 আপগ্রেড নোটগুলি থেকে:

আপনি যদি config:cacheমোতায়েনের সময় কমান্ডটি ব্যবহার করছেন তবে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনি কেবলমাত্র কল করছেন callingenv আপনার কনফিগারেশন ফাইলের মধ্যেই ফাংশনটি , আপনার অ্যাপ্লিকেশনটির অন্য কোথাও নয়।

আপনি যদি envনিজের অ্যাপ্লিকেশনটির মধ্যে থেকে কল দিচ্ছেন তবে আপনার কনফিগারেশন ফাইলগুলিতে যথাযথ কনফিগারেশন মান যুক্ত করার envপরিবর্তে সেই অবস্থান থেকে কল করার পরামর্শ দেওয়া হচ্ছে, যাতে আপনার envকলগুলিকে আপনার কলগুলিতে রূপান্তর করতে দেওয়া হয় config

তথ্যসূত্র: https://laravel.com/docs/5.2 / আপগ্রেড আপআপগ্রেড 5-2.2.0


36
php artisan config:cacheআমার জন্য এটি সমাধান - অন্য কিছুই সাহায্য করেনি। এমনকি না php artisan config:clear- ধন্যবাদ!
কায়ার

36
লারাভেল 5.3 php artisan config:clearহ'ল একমাত্র কাজ যা আমার জন্য কাজ করেছিল
পিওন

9
লারাভেল 5.4 - একটি ভিপিএসে মোতায়েন: php artisan config:clearআমার জন্য কাজ করেছে। আমি আগে কনফিগার করিনি: ক্যাশে তাই কিছুটা অদ্ভুত বলে মনে হয়েছিল যে আমাকে ক্যাশে সাফ করতে হবে।
আন্তোনিও


ফাইলের .envপরিবর্তে আপনি সম্পাদনা করছেন তা নিশ্চিত .env.exampleকরুন
কনার জোঁক

83

যদি আপনার কোনও .envভেরিয়েবলের সাদা স্থান থাকে তবে নিশ্চিত হয়ে নিন যে আপনি সেগুলি ডাবল-কোটে মুড়ে রেখেছেন। উদাহরণ স্বরূপ:

SITE_NAME="My website"

পরীক্ষার আগে আপনার ক্যাশে সাফ করতে ভুলবেন না:

php artisan config:cache
php artisan config:clear

হ্যাঁ এটা কাজ করছে। .envফাইলের কোনও মান পরিবর্তন করার পরে php artisan config:cache & php artisan config:clearকমান্ডটি চালান । এটা কাজ করবে।
চন্দন শর্মা

40

কি দারুন. শুভ দুঃখ। এর কারণ, আমার কোনও স্থানের সাথে একটি valueর্ষা মান ছিল, চারপাশে কোট নেই

এই

SITE_NAME=My website

এটিতে পরিবর্তন হয়েছে

SITE_NAME="My website"

ঠিক কর. আমি মনে করি এটি লারাভেল 5.2 এর সাথে এখনই করা হয়েছে এখন 1.1.1 থেকে 2.1.0 থেকে ভ্লুকাস / পিএইচপিডোটেনভ আপগ্রেড


একই ধারণা - মনে হয় স্থানগুলি .env5.2 এর নীচে যেখানে 5.1 এর মতো হয় নি ইস্যু তৈরি করে ।
থমথম

5
লারাভেলের সাথে এটি আমার (অনেক) বাগবায়ারগুলির মধ্যে একটি: এতে কখনও কখনও নীরবে বিভিন্ন ধরণের কনফিগারেশন এবং / বা অন্যান্য ধরণের ত্রুটি উপেক্ষা করা এবং গ্রহণ করার অভ্যাস রয়েছে, কোনও ইঙ্গিত ছাড়াই কোনও ভুল হয়নি। প্রদত্ত, এটি একটি "বৈশিষ্ট্য" হতে পারে phpdotenv, তবে লারাভেল এখনও জানে .envযে একটি ফাইল রয়েছে যা অন্তর্ভুক্ত করা দরকার, এবং এটি সফল হয়নি, তবে কাউকে বলতে বিরক্ত করে না।
dKen

2
আমি ইতিমধ্যে এত নির্বোধ কিছুতে ঘন্টা নষ্ট করেছি। আমাকে আরও অপচয় করা বন্ধ করার জন্য আপনাকে ধন্যবাদ!
জেনস্কি

27

আমার জন্য এটি এই ক্রমে এটি কাজ করেছে:

php artisan config:cache
php artisan config:clear
php artisan cache:clear

এবং আমি ভাগ্য ছাড়াই সমস্ত বিশ্রাম চেষ্টা করেছি।


2
এই আদেশটি কয়েক ঘন্টা ডিবাগিংয়ের পরে আমার সমস্যার সমাধান করেছে।
Minion

আমার জীবন সংরক্ষিত. Tks। তবে আইডি বুঝতে পারল না কেন।
ম্যাটিউস গালাসো

এই আদেশ আমাকে বাঁচায়। ধন্যবাদ
আসাদ উল্লাহ

ধন্যবাদ আপনাকে ধন্যবাদ ইন্টারনেট অপরিচিত, এটি এটি শেষ হয়ে গেল!
এডুয়ার্ডো

আমি যখন প্রতিবার এই উত্তরে এসেছি আপনি যদি $ 1 পান তবে আপনি ইতিমধ্যে ধনী হবেন। ধন্যবাদ!
আল্টিন

24

আমার একই ধরণের সমস্যা ছিল config/services.phpএবং আমি config clearএবং optimizeকমান্ডগুলি ব্যবহার করে সমাধান করেছি :

php artisan config:clear
php artisan optimize

23

আমার জন্য নিম্নলিখিত কাজ করে

- php artisan config:cache
- php artisan config:clear
- php artisan cache:clear


11

স্থানীয় পরিবেশ নিয়ে আমারও একই সমস্যা ছিল, আমি এর দ্বারা সমাধান করেছি

  1. পিএইচপি কারিগর কনফিগারেশন: পরিষ্কার
  2. পিএইচপি কারিগর কনফিগারেশন: ক্যাশে
  3. এবং তারপরে পিএইচপি কারিগর পরিবেশন কমান্ড বাতিল করে আবার চালু করুন।

10

আপনি নিম্নলিখিত সুপারিশ দ্বারা সমস্যা সমাধান করতে পারেন

সুপারিশ 1:

আপনাকে কনফিগারেশন ফাইলগুলির মাধ্যমে .env ফাইলটি ব্যবহার করতে হবে, তার অর্থ আপনি কনফিগারেশন ফাইল (যেমন /config/app.php বা /config/datedia.php) থেকে .env ফাইলটি পড়ার পুনঃস্থাপন করেছেন, তারপরে আপনি কনফিগারেশনটি ব্যবহার করতে পারেন আপনার প্রকল্পের যে কোনও অবস্থান থেকে ফাইল।

প্রস্তাবনা 2: ডাবল উদ্ধৃতিতে আপনার এনভির মান সেট করুন

 GOOGLE_CLIENT_ID="887557629-9h6n4ne.apps.googleusercontent.com"
 GOOGLE_CLIENT_SECRET="YT2ev2SpJt_Pa3dit60iFJ"
 GOOGLE_MAP="AIzaSyCK6RWwql0DucT7Sl43w9ma-k8qU"

সুপারিশ 3: যে কোনও কনফিগারেশন বা এনভির মান পরিবর্তন করার পরে নিম্নলিখিত কমান্ড ক্রম বজায় রাখুন।

 composer dump-autoload
 composer dump-autoload -o

 php artisan clear-compiled
 php artisan optimize

 php artisan route:clear
 php artisan view:clear

 php artisan cache:clear
 php artisan config:cache
 php artisan config:clear

প্রস্তাবনা 4: সিনট্যাক্স 1 যখন কাজ করছে না তখন আপনি অন্য সিনট্যাক্স 2 চেষ্টা করতে পারেন

   $val1 = env('VARIABLE_NAME');     // syntax1
   $val2 = getenv('VARIABLE_NAME');  // syntax2
   echo 'systax1 value is:'.$val1.' & systax2 value is:'.$val2;

প্রস্তাবনা ৫: যখন আপনার ব্যবহারকারীর সংখ্যা বেশি / বেশি হয় তখন আপনাকে সার্ভার কনফিগারেশনে সম্পর্কিত মেমরির আকার বাড়াতে হবে

সুপারিশ 6: আপনি যখন .env ভেরিয়েবলটি পড়ছেন তখন একটি ডিফল্ট সম্ভাব্য মান সেট করুন।

 $googleClinetId=env("GOOGLE_CLIENT_ID","889159-9h6n95f1e.apps.googleusercontent.com");
 $googleSecretId=env("GOOGLE_CLIENT_ID","YT2evBCt_Pa3dit60iFJ");
 $googleMap=env("GOOGLE_MAP","AIzaSyCK6RUl0T7Sl43w9ma-k8qU");

9

আপনি যখন কমান্ড বহিষ্কার করেছেন php artisan config:cacheতখন এটি সমস্ত envভেরিয়েবলগুলি মুছে ফেলবে এবং env()নাল মান দেবে, ফোলউইং কমান্ড চালিয়ে চেষ্টা করবে এবং সেখানে env()আবার আপনারা সমস্ত envভেরিয়েবল ধরতে শুরু করবে

php artisan config:clear

যাদু যেমন আমার জন্য কাজ করেছে - দুর্দান্ত উত্তর!
ডেভিড পার্টকা

8

আমি আপগ্রেড নির্দেশাবলী এ মিস করেছি:

app.phpনীচের মত দেখতে আপনার কনফিগারেশন ফাইলটিতে একটি এনএভিভি কনফিগারেশন বিকল্প যুক্ত করুন: 'env' => env('APP_ENV', 'production')

এই লাইনটি যুক্ত করা লোকাল .envফাইলটিকে সঠিকভাবে পড়তে পেল ।


1
আমার অনুমান আমি একই ত্রুটি পেয়েছি, যেহেতু আমার অ্যাপটি লারাভেল 4 ছিল, তারপরে 5.0, তারপর 5.1 এ উন্নীত হয়েছে etc. সম্ভবত আমার অ্যাপ্লিকেশনটিতে এই মানটি যুক্ত করা যায়নি। আমাকে অনেক সময় বাঁচানোর জন্য ধন্যবাদ এখানে একটি upvote!
ব্রুনো পি কিনোশিটা



5

একই জিনিসটি ঘটে যখন: পোর্টটি আপনার স্থানীয় .env এ থাকে

আবার ডাবল উক্তিটি কৌশলটি করে

APP_URL="http://localhost:8000"

এবং তারপর

php artisan config:clear

4

@ অ্যান্ড্রুটউবার যা বলেছিল তার অতিরিক্ত এটিও নিশ্চিত করে নিন যে আপনার কেইওয়াই = এবং মানের মধ্যে ফাঁকা নেই যদি না তা কোটের মধ্যে না থাকে

.env ফাইল যেমন:

...
SITE_NAME= My website
MAIL_PORT= 587
MAIL_FROM_NAME= websitename
...

প্রতি:

...
SITE_NAME="My website"
MAIL_PORT=587
MAIL_FROM_NAME=websitename
...

3

আমি আমার স্থানীয় ক্ষেত্রে একই সমস্যায় পড়েছি, এবং আমি এখানে সমস্ত উত্তর চেষ্টা করেছি তবে কোনও ফলসই হয়নি। কেবল এটিই আমার পক্ষে কাজ করেছিল, php artisan config:clearএবং restart server। একটি যাদুমন্ত্র মত কাজ করে!


4
@ রমেশমেত্রে চেষ্টা করুন php artisan config:cache, php artisan config:clearতারপরেphp artisan cache:clear
ডেক্সটার বেনগিল


2

আপনি যদি স্থানীয় বিকাশের সময় কনফিগারেশন: ক্যাশে কল করে থাকেন তবে বুটস্ট্র্যাপ / ক্যাশে / কনফিগারেশন.পিএফ ফাইলটি মুছে ফেলে আপনি এটি পূর্বাবস্থায় ফেরাতে পারেন। এবং এটি আমার পক্ষে কাজ।


2

আপনি যদি স্থানীয় বিকাশের সময় কনফিগারেশন: ক্যাশে কল করে থাকেন তবে বুটস্ট্র্যাপ / ক্যাশে / কনফিগারেশন.পিএফ ফাইলটি মুছে ফেলে আপনি এটি পূর্বাবস্থায় ফেরাতে পারেন। এবং এটি আমার পক্ষে কাজ।

@ পাইয়াল পাণ্ডব উপরের মন্তব্যটি দিয়েছেন।

আমি একটি সাধারণ কাজ বলতে চাই। বুটস্ট্র্যাপ / ক্যাশে / ফোল্ডারে কেবল কনফিগারেশন.এফপি ফাইলটি সম্পাদনা করুন। এবং শংসাপত্রগুলি পরিবর্তন করুন। এটি আমার পক্ষে কাজ করেছে। এটিতে এই ফাইলটি মুছবেন না কারণ এতে পরিবেশের পরিবেশে অন্যান্য গুরুত্বপূর্ণ ডেটা থাকতে পারে।


2

আমার ক্ষেত্রে লারাভেল ৫.7 env('APP_URL')কাজ করে না তবে config('app.url')কাজ করে। যদি আমি envকনফিগারারে এবং নতুন পরিবর্তনশীল যুক্ত করি - এটি কাজ করে না - তবে php artisan config:cacheএটি কাজ শুরু করার পরে ।


3
আপনি যদি বিকাশের পরিবেশে থাকেন তবে আপনার কনফিগারেশন এবং রুটগুলি ক্যাশে করা উচিত নয়। সমস্ত ক্যাশে মুছতে আপনি ব্যবহার করতে পারেন:php artisan optimize:clear
জোহাইব

@ জোহাইবহসান কীভাবে কনফিগারেশন এবং দেব পরিবেশের জন্য রুটের ক্যাশে বন্ধ করবেন?
কামিল কিয়েসজেউস্কি

1
উপরের কমান্ডটি বন্ধ করে দেবে ১ টি রুট ক্যাশে, ২ টি কনফিগার ক্যাশে, ৩ টি পরিষ্কার দর্শন 4. সাফ অপ্টিমাইজড ফাইল ৫ সাফ ক্যাশে যদি থাকে
জোহাইব

1
শুধুমাত্র কনফিগারেশনের জন্য আপনি এটি ব্যবহার করতে পারবেন php artisan config:clearএটি আপনার কনফিগার ক্যাশে সাফ করবে এবং আবার উত্পন্ন হবে না এবং আপনি যখন প্রোডাকশনে যাবেন তখন php artisan config:cacheআপনার কনফিগারেশনগুলি ক্যাশে চালাতে পারবেন
জোহাইব

1

আপনি এই চালানোর প্রয়োজন হলে php artisan config:cacheকনসোলে কমান্ড তারপর এটি যদি আপনি .env ফাইলে কোনো বিষয়বস্তু যোগ এটি উপলব্ধ যতক্ষণ না আপনি চালনা করা যাবে করা হইনি এই কমান্ড পর ক্যাশের মধ্যে সব .env ফাইল বিষয়বস্তু, সংরক্ষণ করবে php artisan config:clearকমান্ড


1

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

 PHP artisan::config:clear

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

php artisan config:cache  // it will cache all data 
php artisan config:clear
Configuration cache cleared!

1

আমি এটি অভিজ্ঞতা। কারণ হ'ল ফাইল অনুমতিের কারণে অ্যাপাচি (ব্যবহারকারী www-ডেটা) .env পড়তে পারেনি। সুতরাং সার্ভার (অ্যাপাচি) ফাইলটিতে অনুমতি পড়ার অনুমতি পেয়েছে তা নিশ্চিত করার জন্য আমি ফাইলের অনুমতিগুলি পরিবর্তন করেছি। শুধু যে এবং গম্ভীর, এটি এখন সব কাজ!
আপডেট:
কীভাবে এটি করবেন তা নির্ভর করে, .env ফাইলের মালিক কার উপর নির্ভর করে তবে এটি অ্যাপাচি www-dataগ্রুপের অন্তর্ভুক্ত বলে ধরে নিলে আপনি এটি করতে পারেন:

sudo chmod g+r .env

আপনার অনুমতি কাঠামোর উপর নির্ভর করে এটিকে সংশোধন করুন।


So i changed the file permissions to ensure that the server (apache) had read permissions to the file.এটি আসলে ভুল পদ্ধতির। আপনার অবশ্যই এ্যাপেক্স কনফিগার করা উচিত তাই এটি এই বিশেষ সাইটটির মালিক হিসাবে এই ফাইলগুলির মালিক হিসাবে কাজ করে
অরলোস্কি

0

আমি index.phpফাইলটি ডিডি / ডাই / ডাম্প করে ভুল করেছি । এটি সিস্টেমকে কনফিগারগুলি পুনরায় তৈরি করতে না পারে।

শুধু ভিউ ফাইলগুলিতে ডাম্প করবেন না। .envতাত্ক্ষণিকভাবে ফাইল আপডেটে পরিবর্তনগুলি ।


0

এ নিয়ে আমার কিছু সমস্যা ছিল। এটি অ্যাপ্লিকেশনের কোথাও কোনও ফাইল অনুমতি সম্পর্কিত সমস্যা বলে মনে হয়েছিল - .env-file নয়।

আমাকে - আমার ডকার থামাতে হয়েছিল - পুরো প্রকল্পের জন্য আমার নিজের ব্যবহারকারীর মালিকানা-অধিকার নির্ধারণের জন্য ছাউনির ব্যবহার করতে হবে - আবার ডকার শুরু করুন

এবার এটি কাজ করে।


-1

উপরোক্ত প্রায় সব চেষ্টা করেছেন। করতে করতে শেষ

chmod 666 .env

যা কাজ করেছে। এই সমস্যাটি আমি উত্তরাধিকারসূত্রে প্রাপ্ত অ্যাপ্লিকেশনটিতে ক্রপ করে চলেছে বলে মনে হচ্ছে তবে এই অতি সাম্প্রতিক সময়টি একটি .env.esting যোগ করার পরে। চলমান লারাভেল 5.8

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.