ফাইল_পুট_কন্টেন্টস (মেটা / পরিষেবাদি.জসন): স্ট্রিমটি খুলতে ব্যর্থ হয়েছে: অনুমতি অস্বীকার করেছে


168

আমি লারাভেলে নতুন। আমি খোলার চেষ্টা করছিলাম http://localhost/test/public/এবং আমি পেয়ে গেলাম

ব্যতিক্রম হ্যান্ডলারের ত্রুটি।

আমি প্রায় googled এবং স্টোরেজ ডিরেক্টরি ব্যবহার করে অনুমতি পরিবর্তন করেছি chmod -R 777 app/storageকিন্তু কোন ফলসই না।

আমি পৃষ্ঠাটি পরিবর্তন debug=>trueকরে app.phpপরিদর্শন করেছি এবং ব্যতিক্রম হ্যান্ডলারটিতে ত্রুটি পেয়েছি:

"/Var/www/html/test/app/storage/logs/laravel.log" স্ট্রিম বা ফাইলটি খুলতে পারেনি: স্ট্রীমটি খুলতে ব্যর্থ হয়েছে: / var / www / html / পরীক্ষা / বুটস্ট্র্যাপ / সংকলনে অনুমতি অস্বীকার করা হয়েছে। পিএইচপি সমূহঃ 8423

তারপরে আমি কমান্ডটি ব্যবহার করে স্টোরেজ ডিরেক্টরিটির অনুমতিগুলি পরিবর্তন করেছি chmod -R 644 app/storageএবং 'ব্যতিক্রম হ্যান্ডলারের ত্রুটি' ত্রুটি চলে গেছে এবং একটি পৃষ্ঠা লোড হয়েছে। তবে সেখানে আমি এটি পেয়ে যাচ্ছি:

ফাইল_পুট_কন্টেন্টস (/var/www/html/laravel/app/stores/meta/services.json): স্ট্রিম খুলতে ব্যর্থ হয়েছে: অনুমতি অস্বীকার করেছে


2
permition ইস্যু মত দেখাচ্ছে আবার, যাও recursively সব আবেদন ডিরেক্টরি chmod
alou

@ আমার মনে হয় আমি ইতিমধ্যে chmod -R 777 অ্যাপ / স্টোরেজ দিয়ে এটি করেছি। আমি না? এবং অ্যাপ্লিকেশনের অভ্যন্তরে সমস্ত ডিরেক্টরিতে ড্রওএক্সআরডব্লক্সআরডব্লিক্স অনুমতি রয়েছে।
vishnub1626

33
চেষ্টা করুন: php artisan cache:clearতারপরে chmod -R 777 app/storageঅবশেষেphp artisan dump-autoload
ভিসমোরেস

@vsmoraes এটি কাজ করেছে। সমস্যাটি কী ছিল তা যদি আপনি ব্যাখ্যা করতে পারেন তবে এটি সত্যিই সহায়ক হবে।
vishnub1626

7
ভিসমোরেসের মন্তব্যটি সঠিক ছিল তবে 'পিএইচপি আর্টিজান ডাম্প-অটোল্যাড' এর পরিবর্তে 'রচয়িতা ডাম্প-অটোলোয়াড' হওয়া উচিত
এলিয়ট রবার্ট

উত্তর:


320

ভিসমোরেসের পরামর্শ আমার পক্ষে কাজ করেছে:

লারাভেল> = 5.4

php artisan cache:clear 
chmod -R 777 storage/
composer dump-autoload

লারাভেল <5.4

php artisan cache:clear 
chmod -R 777 app/storage 
composer dump-autoload

দ্রষ্টব্য: এটি কোনও রিমোট সার্ভারে (ডেভ বা উত্পাদন) করবেন না

আমি যখন এই প্রশ্নটি জিজ্ঞাসা করেছি, তখন ভার্চুয়াল মেশিনে চলার বিষয়টি আমার লোকালহোস্টে সমস্যা ছিল। সুতরাং আমি ভেবেছিলাম একটি 777 সেট আপ করা যথেষ্ট নিরাপদ ছিল, তবে লোকেরা যখন ঠিক তখনই বলে থাকেন যে আপনার আলাদা সমাধানের সন্ধান করা উচিত। প্রথমে 775 চেষ্টা করুন


8
এটি sudo chmod -R 777 অ্যাপ / স্টোরেজ হওয়া উচিত। অনুমতি ত্রুটি এড়াতে।
ওলিতান মায়োভা

5
# লারাভেল 5 এর জন্য নির্দেশাবলী প্রায় অভিন্ন: php artisan cache:clearতারপরে chmod -R 777 storageএবং তারপরে composer dump-autoload
ডব্লিউএনরোজেনবার্গ

6
আপনি যদি লারাভেল 5.1+ ব্যবহার করছেন তবে এর chmod -R 777 storageপরিবর্তে আপনাকে করতে হবে
জেমস

10
php artisan cache:clearসঠিক উত্তর। তারপরে পড়া / লেখার বা বিশেষত সুযোগ-সুবিধাগুলি না দিয়েsudo chmod -R ug+rw storage আমার জন্য সঠিক অনুমতি দেয় others
জ্যাক মরিস

43
এই উত্তর এবং থ্রেডটি হাইলাইট করে যা আমি লারাভেলকে এতোই অপছন্দ করি কেন: এটি বিকাশকারীদের শিখায় যে আপনি যা খুশি করতে পারেন, যখনই আপনি চান, তত দ্রুত চান, পরিণতির কথা চিন্তা না করে (আমি বুঝতে পেরেছি 777লারাভেল নির্দিষ্ট নয়, তবে লারাভেল বিকাশকারীদের জন্য চিন্তার প্রক্রিয়াটি হ'ল: "এটি এখনই কাজ করে দিন, আমি কীভাবে যত্ন করি না", ঠিক তেমন 777)। একটি সাধারণ নিয়ম হিসাবে, কখনই কোনও 777কাজ করার জন্য কিছু সেট করবেন না । আপনার সার্ভার এবং ব্যবহারকারীদের / ভূমিকাগুলি অন্তর্ভুক্ত করুন এবং সে অনুযায়ী সেট করুন; এটি হ্যাক করবেন না। আপনার ক্লায়েন্টরা এই অধিকারটি করার জন্য আপনাকে বিশ্বাস করে।
ডেকেন

70

গুগলারদের জন্য যারা লারাভেল 5 এর সাথে এই সমস্যার মুখোমুখি হয়েছেন।

এটি বিভিন্ন ব্যবহারকারীর মধ্যে একই লগ ফাইলে লেখার চেষ্টা করার কারণে অনুমোদিত একটি সমস্যা storage/logs বিভিন্ন অনুমোদনের সাথে ফোল্ডারের ।

আপনার ল্যারাভেল কনফিগারেশনটি সম্ভবত দৈনিক ত্রুটিগুলি লগ করার জন্য সেটআপ করা হয় এবং সুতরাং আপনার ওয়েবসভার (অ্যাপাচি / এনগিনেক্স) আপনার পরিবেশের উপর নির্ভর করে কোনও ডিফল্ট ব্যবহারকারীর অধীনে এই ফাইলটি তৈরি করতে পারে _wwwএটি ওএসএক্স বা www-data* এনআইএক্স সিস্টেমে কিছু হতে পারে , তারপরে সমস্যাটি আপনি যখন কিছু কারিগর কমান্ডগুলি চালিত করতে পারেন এবং কিছু ত্রুটি পেয়েছেন তখনই কারিগর এই ফাইলটি লিখবেন তবে ভিন্ন ব্যবহারকারী সহ কারণ টার্মিনালে থাকা পিএইচপি অন্য কোনও ব্যবহারকারী দ্বারা কার্যকর হয় আপনার লগইন ব্যবহারকারী, আপনি এই কমান্ডটি চালিয়ে এটি পরীক্ষা করে দেখতে পারেন :

php -i | grep USER

যদি আপনার লগইন ব্যবহারকারী সেই লগ ফাইলটিকে আপনার ওয়েবসার্ভার তৈরি করে থাকেন তবে আপনি এতে ত্রুটি লিখতে পারবেন না এবং বিপরীত কারণ লারাভেল লগ ফাইলগুলি দিয়ে লিখেন 655 ডিফল্টরূপে অনুমতি যা কেবলমাত্র মালিককে এতে লিখতে দেয়।

এই অস্থায়ী স্থির করতে আপনাকে গ্রুপটির জন্য ম্যানুয়ালি অনুমতি দিতে হবে 664 আপনাকে এই ফাইলটিতে হবে যাতে আপনার লগইন ব্যবহারকারী এবং ওয়েবসার্ভার ব্যবহারকারী উভয়ই সেই লগ ফাইলটিতে লিখতে পারেন।

এই সমস্যাটিকে স্থায়ীভাবে এড়াতে আপনি যখন storage/logsডিরেক্টরি থেকে অনুমতিগুলি উত্তরাধিকার সূত্রে ডায়রের মধ্যে একটি নতুন ফাইল তৈরি করা হয় তখন আপনি একটি উপযুক্ত অনুমতি সেটআপ করতে চাইতে পারেন এই উত্তরটি https://unix.stackexchange.com/a/115632 আপনাকে মোকাবেলা করতে সহায়তা করতে পারে যে।


ফ্যান-ফ্রিজেন-টেস্টিক উত্তর এখানে! আমি ইলাস্টিক বিয়ানস্টালকে চালিয়ে যাচ্ছি এবং আমার কমান্ড-লাইন পিএইচপি ব্যবহারকারী "ইক্য 2-ব্যবহারকারী" তবে আমার অ্যাপ্লিকেশনটি "ওয়েব অ্যাপ" হিসাবে চলবে।
র্যান্ডি এল

1
একটি উত্তর যা সমস্যার ব্যাখ্যা দেয়। অর্থাত্ একটি যথাযথ উত্তর।
ক্র্যাকারজ্যাক

এটি আমাকে ক্লাউডওয়েতে লারাভেলে ফাইল ক্যাশে ত্রুটি কেন পেয়েছে তা বুঝতে সাহায্য করেছিল। ফাইল অনুমতিগুলি পুনরায় সেট করতে আমার ক্লাউডওয়েস প্যানেলে বোতাম টিপতে হবে। ধন্যবাদ।
রায়ান

44

আপনার 777 অনুমতি দেওয়া উচিত নয়। এটি একটি সুরক্ষা ঝুঁকি। উবুন্টু ব্যবহারকারীদের কাছে, লারাভেল ৫-তে, আমি পুনরায় ক্রমবর্ধমানভাবে ডিরেক্টরি সংরক্ষণের জন্য মালিককে বদলে ফেলতে পারি:

অনুসরণ চেষ্টা করুন:

sudo chown -R www-data:www-data storage

উবুন্টু ভিত্তিক সিস্টেমে, www-data হ'ল অ্যাপাচি ব্যবহারকারী।


2
এটি আমার জন্য স্থির, এবং chmod 777উত্তরের চেয়ে আরও সঠিক (আমি মনে করি) । ধন্যবাদ ~
গ্যাভিনআর

আমি লিনাক্স ব্যবহারকারীদের জন্য এটি সবচেয়ে সুবিধাজনক উত্তর বলে মনে করি। ধন্যবাদ @ গ্যাভিনআর। chmod 777একটি সম্পূর্ণ দুঃস্বপ্ন।
আবদাল্লা আরবব

এটি আমার পক্ষে কাজ করেছে এবং অবশ্যই chmod -777
Egnaro

সমস্যা সমাধানের নতুন পদ্ধতির জন্য আপনাকে ধন্যবাদ! chmod 777ফলাফলগুলি বিপরীত করার জন্য আমাদের কি আপনার আদেশের আগে / পরে কিছু করা দরকার ?
আলেকসানদার

41

লারাভেল 5, হোমস্টিড এবং ম্যাক ব্যবহারকারী প্রত্যেকের জন্য এটি ব্যবহার করে দেখুন:

mkdir storage/framework/views

এটি লারাভেল 5.2.7 এর সাথে লারাভেল ফোজের সাথে একটি নতুন সার্ভার তৈরির সাথেও কাজ করে
উইনস্টার 2

2
এটা আমার জন্য এটি। দেখে মনে হচ্ছে bootstrap/cache/compiled.phpযে এই ডিরেক্টরিতে লেখার চেষ্টা করা হয়েছিল তবে এটি উপস্থিত নেই এবং অনুমতি ত্রুটিটি ছুঁড়েছে। ধন্যবাদ.
ম্যাট কে

1
একরকম এটি আমার পক্ষে কাজ করেছিল। আমি
লারাভেল

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

33

কিছু সময় সেলিনাক্স এই সমস্যাটি সৃষ্টি করে; আপনি এই আদেশ দিয়ে সেলিনাক্স অক্ষম করতে পারেন।

sudo setenforce 0

বাহ, আমি সত্যিই কৌশলটি কাজ করেছিলাম এবং কাজ করে, কেউ আমাকে ব্যাখ্যা করতে পারে কেন এটি কাজ করেছিল? সেলিনাক্স কী?
undefinedman

হ্যাঁ এই সত্যিই কাজ! সেলিনাক্স এ বুঝতে গুরু আমাদের দয়া করে? আমি ফেডোরা 24
বিটিডব্লিউ

1
আপনাকে ধন্যবাদ, আপনাকে অনেক ধন্যবাদ। আমি
নেটটি

3
এটি মূলত পুরো ফায়ারওয়ালটি বন্ধ করার মতো কারণ এটি আপনার খোলার দরকার বন্দরকে ব্লক করে দিছিল।
তেহ জো ই

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

18

সমস্যা সমাধান

php artisan cache:clear
sudo chmod -R 777 vendor storage

এটি অ্যাপ, ফ্রেমওয়ার্ক, লগগুলিতে লেখার অনুমতি সক্ষম করে আশা করি এটি সাহায্য করবে


12
কখনই 77 777 ... দেব বা উত্সাহ হিসাবে এটি দেবের মধ্যে কাজ করার মায়া দেবে তবে তারা in 777 না হলে তারা এগুলি ভেঙে ফেলবে যা কখনও ভাল ধারণা নয়
কাইল বারকেট

ওহাহা তুমি রক কর ... বিক্রেতার যে আমি অনুপস্থিত ছিল
lu1s

হ্যাঁ, পাবলিক ফেসিং ওয়েবে 7 777 তে কিছু দেওয়া একটি খারাপ ধারণা
ইমামবাগ

17

কখনও এটি অনুমোদন 777 প্রদান!

আপনার টার্মিনালের লারাভেল প্রকল্পের ডিরেক্টরিতে যান এবং লিখুন:

sudo chown -R your-user:www-data /path/to/your/laravel/project/
sudo find /same/path/ -type f -exec chmod 664 {} \;
sudo find /same/path/ -type d -exec chmod 775 {} \;
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

এইভাবে আপনি আপনার ব্যবহারকারীকে মালিক
বানিয়েছেন এবং সুযোগসুবিধা দিচ্ছেন: 1 চালান, 2 লিখুন, 4 পড়ুন
1 + 2 + 4 = 7 অর্থ (আরডাব্লুএক্স)
2 + 4 = 6 অর্থ (আরডাব্লু)
অবশেষে স্টোরেজ অ্যাক্সেসের জন্য, ইউজি + rwx এর অর্থ আপনি ব্যবহারকারী এবং গোষ্ঠীটিকে একটি 7 দিচ্ছেন


1
আমি জানি না কেন
অনেকটা

15

অসম্পূর্ণ ব্যবহারকারীদের জন্য সমাধানটি হ'ল:

(অসম্পূর্ণ) পিএইচপি কারিগর ক্যাশে: পরিষ্কার

(যোজনার বাইরে) chmod -R 777 অ্যাপ / স্টোরেজ

(অসম্পূর্ণ) সুরকার ডাম্প-অটোল্যাড

আপনি আপনার স্থানীয় পরিবেশে chmod এবং যান্ত্রিক ভিতরে না তা নিশ্চিত করা এখানে গুরুত্বপূর্ণ!


6
777 খুব খোলা না?
সিমো

3
আমি বলতে চাই, উত্পাদন জন্য, নিশ্চিত। তবে এটি একটি স্থানীয় দেব পরিবেশ। মূল পোস্টারটি 777 ব্যবহার করছিল এবং অন্যান্য উত্তর 775 বা 755 নির্ভর করে কাজ করতে পারে।
ব্রেন্ডন

12

আবার চেষ্টা করুন chmod -R 755 /var/www/html/test/app/storage। Chmod এর জন্য sudo সহ ব্যবহার করুন Operation not permitted। তবুও ত্রুটি থাকলে মালিকের অনুমতি চেক করুন।


কাজ করছে না. অ্যাপ্লিকেশনের অভ্যন্তরের সমস্ত ডিরেক্টরিটির অনুমতি রয়েছে drwxrwxrwx
vishnub1626

@ টভ আপনি কি দয়া করে আপনার পরীক্ষার ফোল্ডারের জন্য মালিকের অনুমতি চেক করতে পারেন?
খায়

একই drwxrwxrwx। @ ভিসমোরেসের পরামর্শ (মন্তব্যগুলি দেখুন) ব্যবহার করে সমস্যার সমাধান করুন
বিষ্ণুব ১62২6

4
chmod 777 একটি সুরক্ষা ঝুঁকি
যোগেশ কামাত

9

লারাভেল ৫.৪ অনুসারে যা আমি এটি লিখছি সর্বশেষতম, আপনার যদি এ জাতীয় কোনও সমস্যা হয় তবে আপনি অনুমতিটি পরিবর্তন করতে চাইবেন। যিনি আপনাকে যেকোনও ডিরেক্টরের জন্য 7 777 সেট করতে বলেন এমন কাউকে তালিকাভুক্ত করবেন না। এটিতে একটি সুরক্ষা সমস্যা রয়েছে। এভাবে স্টোরেজ ফোল্ডারের অনুমতি পরিবর্তন করুন

sudo chmod -R 775 storage

বুটস্ট্র্যাপ ফোল্ডারের অনুমতি এটির মতো পরিবর্তন করুন

sudo chmod -R 775 bootstrap/cache

এখন দয়া করে নিশ্চিত হয়ে নিন যে আপনি আপনার অ্যাপ্লিকেশন ডিরেক্টরি থেকে উভয় কমান্ড কার্যকর করছেন। অনুমতি সম্পর্কিত আপনি ভবিষ্যতে সমস্যার মুখোমুখি হবেন না। 775 আপনার মেশিনের কোনও সুরক্ষায় আপস করে না।


7

সঠিক অনুমোদনের পরামর্শ দিন, যদি অ্যাপাচি,

sudo chown -R apache:apache apppath/app/storage

লারাভেল ফোর্জের ব্যবহার: সুডো ক্লাউন -আর ফোর্স: ফোরজ ~ / প্রকল্প / স্টোরেজ / সুডো ক্লাউন -আর ফোর্স: ফোরজি ~ / প্রকল্প / বুটস্ট্র্যাপ / ক্যাশে /
ফ্ল্যাপি

6

আপনার যদি লারাভেল 5 রয়েছে এবং স্থায়ী সমাধানের সন্ধান করছেন, প্রযোজ্য php artisanকমান্ড লাইন ব্যবহার এবং অ্যাপাচি সার্ভার উভয়ই এটি ব্যবহার করুন:

sudo chmod -R 777 vendor storage
echo "umask 000" | sudo tee -a /etc/resolv.conf
sudo service apache2 restart

এখানে বিস্তারিত ব্যাখ্যা দেখুন ।


8
777 ব্যবহার করা খারাপ ধারণা বলে মনে হচ্ছে
র্যান্ডি এল

umask 000 in resolv.conf ?! এই লোকেরা এই তথ্যটি কোথায় পাচ্ছেন? এটি রেজোলভকনফ-এ একটি অবৈধ লাইন। দয়া করে এটি এবং সমস্ত 777 "সমাধান" উপেক্ষা করুন
হাইগুইটা

ইউআরএল পরীক্ষা করে দেখুন এবং রেজোলভকনফ-এ কোনও উমাস্ক বিকল্প খুঁজে পাবেন না রেজোলভ.কনফ লিনাক্স.ডি.নেট
ম্যান /

6

সেলিনাক্সের সাথে যে কোনও একটি চলমান ওএসের জন্য: ল্যারাভেল স্টোরেজ ফোল্ডারে httpd লেখার অনুমতি দেওয়ার সঠিক উপায় হ'ল:

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/path/to/www/storage(/.*)?'

তারপরে তাত্ক্ষণিকভাবে পরিবর্তনগুলি প্রয়োগ করতে:

sudo restorecon -F -r '/path/to/www/storage'

সেলিনাক্স এটির জন্য সমস্যা হতে পারে তবে যদি এটি উপস্থিত থাকে তবে আমি পুরোপুরি বাইপাস না করেই আপনি দৃ learn়তার সাথে এডভাইসটি শিখতে পারেন।


আমার সতেজ in-এ ঠিক একই সমস্যা ছিল। এটি লেখার অনুমতিই বলছিল না তবে সবগুলি পরীক্ষার জন্য 7 777 জন ছিল। সুতরাং এই পোস্টটি সমস্ত সাধারণ পরীক্ষার পরে আসলে আমার সময় সাশ্রয় করেছে।
হুম্যান

1
এটি সঠিক সমাধান, যদিও আমি মনে করি যে সঠিক সেলইনক্স sudo semanage fcontext -a -t httpd_sys_rw_content_t '/path/to/www/storage(/.*)?'
টাইপটি

4

আমার একই সমস্যা ছিল এবং নীচের পদক্ষেপগুলি আমাকে সমস্যার সমাধান করতে সহায়তা করেছে।

  1. অ্যাপাচি ব্যবহারকারীর সন্ধান করুন - কোড সহ সর্বজনীন ফোল্ডারে একটি test.php ফাইল তৈরি করেছেন

<?php echo exec('whoami'); ?>

এবং ওয়েব ব্রাউজার থেকে ফাইলটি চালান। এটি অ্যাপাচি ব্যবহারকারী দিতে হবে। আমার ক্ষেত্রে, এটি ec2- ব্যবহারকারীর হিসাবে আমি /etc/cron.d/ এ ইনস্টল করা ক্রোনজব সহ আওস ব্যবহার করছি। এটি অন্যদের জন্য পৃথক ব্যবহারকারী হতে পারে।

  1. কমান্ড লাইনে নীচের কমান্ডটি চালান।

sudo chown -R ec2-user:<usergroup> /app-path/public

আপনাকে এখানে "ব্যবহারকারী" এবং "ব্যবহারকারী গোষ্ঠী" সনাক্ত এবং ব্যবহার করতে হবে।


4

আপনি যদি লিনাক্স বা ম্যাক ব্যবহার করেন তবে আপনি চালাতেও পারবেন ssh terminal। আপনি এই কমান্ডটি চালানোর জন্য টার্মিনাল ব্যবহার করতে পারেন,

 php artisan cache:clear 
 sudo chmod -R 777 storage
 composer dump-autoload

আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আপনি ব্যবহার করে চালাতে পারেন git bash

 php artisan cache:clear 
 chmod -R 777 storage
 composer dump-autoload

আপনি গিট ফর্মটি https://git-scm.com/downloads ডাউনলোড করতে পারেন ।


3

Xampp ব্যবহারের জন্য:

cd /Applications/XAMPP/htdocs  
chmod -R 775 test/app/storage

1
আপনি কি আরও কিছুটা স্প্লিন করতে পারেন?
হারুন হলের

এই নিবন্ধটি আমি ব্যবহারের, এবং আমি ছিল: সঙ্গে XAMPP ম্যাক ওএসএক্স 10.8+ আপ Laravel 4.x সেট
cristianojeda

3
chmod 777 একটি সুরক্ষা ঝুঁকি
যোগেশ কামাত

1
আপনি এই chmod 775 ব্যবহার করতে পারেন
ক্রিশ্চিয়ানোজেদা

2

আমি যখনই app.php পরিবর্তন করি তখনই আমি বুটস্ট্র্যাপ / ক্যাশে / পরিষেবাদি.জসন লেখার অনুমতি প্রত্যাখ্যান করি তাই এটি ঠিক করার জন্য আমি এটি করেছি:

chmod -R 777 bootstrap/cache/

8
chmod 777 একটি সুরক্ষা ঝুঁকি
যোগেশ কামাত


2

777 এ অনুমতি নির্ধারণ করা অবশ্যই ভয়ঙ্কর ধারণা!

... কিন্তু

আপনি যদি "স্টোরেজ" ফোল্ডারের সাথে সংযুক্ত অনুমতি ত্রুটি পেয়ে থাকেন তবে তা আমার জন্য কাজ করেছে:

1) "স্টোরেজ" এবং এর সাবফোল্ডারগুলির অনুমতিটি 777 এর সাথে সেট করুন

sudo chmod -R 777 storage/

2) ব্রাউজারে লারাভেল হোম পৃষ্ঠায় লারাভেল / পাবলিক / এ যান (লারাভেল প্রয়োজনীয় প্রাথমিক স্টোরেজ ফাইল তৈরি করবে)

3) স্টোরেজ এবং এর সাবফোল্ডারগুলিতে নিরাপদে 775 অনুমতি ফেরান

sudo chmod -R 775 storage/

2

ল্যারাডক ব্যবহার করা থাকলে, chown -R laradock:www-data ./storageআপনার কর্মক্ষেত্রের ধারকটি ব্যবহার করে দেখুন


1

আমার ক্ষেত্রে সমাধানটি ছিল ডিরেক্টরি app/storage/framework/viewsএবং app/storage/logsডিরেক্টরিগুলির অনুমতি পরিবর্তন করা ।


0

অন্য কেউ যদি ফপেন ফাইল অনুমতি ত্রুটিযুক্ত কোনও একই সমস্যা নিয়ে চলে যায় তবে চতুর্দিকে 7717 chmod না করার যথেষ্ট বুদ্ধিমান আমার পরামর্শ এখানে।

অ্যাপাচে প্রয়োজনীয় অনুমতিগুলির জন্য আপনি যে কমান্ডটি ব্যবহার করছেন তা পরীক্ষা করুন:

fopen('filepath/filename.pdf', 'r');

'আর' অর্থ কেবল পঠনের জন্য উন্মুক্ত, এবং আপনি যদি ফাইলটি সম্পাদনা না করে থাকেন তবে এটি আপনার সেট হিসাবে সেট করা উচিত। এর অর্থ অ্যাপাচি / www-ডেটা that ফাইলটিতে কমপক্ষে পড়ার অনুমতি প্রয়োজন, যা যদি ফাইলটি লারাভেলের মাধ্যমে তৈরি করা হয় তবে এটি ইতিমধ্যে পঠনের অনুমতি পাবে।

যদি কোনও কারণে আপনাকে ফাইলটিতে লিখতে হয়:

fopen('filepath/filename.pdf', 'r+');

তারপরে নিশ্চিত হয়ে নিন যে অ্যাপাচেও ফাইলটিতে লেখার অনুমতি রয়েছে।

http://php.net/manual/en/function.fopen.php


0

ব্যবহার করে আপনার সার্ভারটি শুরু করুন artisian

php artisian serve

তারপরে নির্দিষ্ট ইউআরএল থেকে আপনার প্রকল্প অ্যাক্সেস করুন:

এখানে চিত্র বর্ণনা লিখুন


0

ম্যাকের উপর ভ্যাংগার চালানোর সময় আমার একই সমস্যা রয়েছে। https.conf ফাইলে অ্যাপাচি সার্ভারের ব্যবহারকারীকে পরিবর্তন করে সমস্যার সমাধান করেছেন:

# check user for php
[vagrant] ubuntu ~ $ php -i | grep USER
USER => ubuntu
$_SERVER['USER'] => ubuntu
[vagrant] ubuntu ~ $ 

পিএইচপি দিয়ে ফাইল অ্যাক্সেস ইস্যু সমাধান করতে ব্যবহারকারী ডিমন পরিবর্তে পিএইচপি ব্যবহারকারীর অধীনে অ্যাপাচি চালান

# change default apache user from daemon to php user
sudo sed -i 's/User daemon/User ubuntu/g' /opt/lampp/etc/httpd.conf
sudo sed -i 's/Group daemon/Group ubuntu/g' /opt/lampp/etc/httpd.conf

এখন, পিএইচপি তৈরি করা ক্যাশে ফাইল কোনও অ্যাক্সেস অনুমতি ত্রুটি না দেখিয়ে অ্যাপাচি দ্বারা পড়া এবং সম্পাদনা করা যেতে পারে।


0

ডিরেক্টরি অনুমতি নিয়ে অনেক পরীক্ষার পরেও ত্রুটির পরে আমি এপিফানি দিয়ে শেষ করেছি ... ডিস্কের পার্টিশনে কোনও স্থান বাকি ছিল না। অন্য কেউ যাতে সঠিক দিক থেকে সমাধানের দিকে চেয়ে থাকে তেমন বোকা না হয় তা নিশ্চিত করার জন্য কেবল ভাগ করে নিতে চেয়েছিলেন।

লিনাক্সে আপনি df -hআপনার ডিস্কের আকার এবং বিনামূল্যে স্থান পরীক্ষা করতে ব্যবহার করতে পারেন ।


0

এই সমস্যাটি প্রকৃতপক্ষে বিভিন্ন ব্যবহারকারীদের দ্বারা চাওয়া হয়েছে write/read ফাইল তবে বিভিন্ন মালিকানার কারণকে অস্বীকারএর আগে সম্ভবত আপনি 'রুট' ইনস্টলড লারাভেল হিসাবে তারপরে আপনি 'লারাভেল' ব্যবহারকারী হিসাবে আপনার সাইটে লগইন করেছেন যেখানে 'লারাভেল' ডিফল্ট মালিকানা, তাই এখানে এটিই আসল সমস্যা। সুতরাং যখন ব্যবহারকারী 'লারাভেল' ডিস্কে সমস্ত ফাইলকে ডিফল্ট হিসাবে পড়তে / লিখতে চান, অস্বীকার করতে চান, কারণ সেই ফাইলটির 'রুট' দ্বারা মালিকানা রয়েছে।

এই সমস্যাটি সমাধান করতে আপনি এটি অনুসরণ করতে পারেন:

sudo chown -hR your-user-name /root /nameforlder

বা আমার ক্ষেত্রে

sudo chown -hR igmcoid /root /sublaravel

পাদটীকা:

  1. root নাম হিসাবে প্রথম মালিকানা যারা আগে ইনস্টল
  2. your-user-name ডিফল্ট মালিকানা হিসাবে যারা আসলে লিখেন / সাইটে পড়েন।
  3. namefolder নাম ফোল্ডার হিসাবে যে আপনি মালিকানা পরিবর্তন করতে চান।

0

আমার প্রকল্পে আমি একই ত্রুটি পেয়েছি ...
তবে জানতে পেরেছি যে আমি enctypeআমার ফর্মটি দিতে ভুলে গেছি ।

<form method="#" action="#" enctype="multipart/form-data">

আশা করি এটি কোথাও কোথাও সহায়তা করে ...


0

লারাগন এবং লারাভেল ৪-এর সাথে উইন্ডোজ 10-এ কাজ করার সময় মনে হয়েছিল, মৃত্যুদন্ড কার্যকর করার পর থেকে অনুমতিগুলি নিজেই পরিবর্তন করার কোনও উপায় নেই me chmod লারাগন-ইন-বিল্ট-টার্মিনালে-কম্যান্ডগুলি কোনও প্রভাব নেই।

তবে এই টার্মিনালে স্টোরেজ ফোল্ডারে গিয়ে ম্যানুয়ালি এর মতো পছন্দসই ফোল্ডার যুক্ত করা সম্ভব ছিল:

cd app/storage
mkdir cache
mkdir meta
mkdir views
mkdir sessions

cdটার্মিনালে -command (আপনার ফাইলের গঠন অনুসারে এই পথ ঠিক করতে পারে) ফোল্ডারে আপনি এনেছে। দ্যmkdir-Command প্রদত্ত নাম দিয়ে ডিরেক্টরি তৈরি করবে।

লারাভেল 5 এ আমার এই পদ্ধতির পরীক্ষা করার সুযোগ ছিল না, তবে আমি প্রত্যাশা করি যে অনুরূপ পদ্ধতির কাজ করা উচিত।

অবশ্যই আরও ভাল উপায় থাকতে পারে, তবে কমপক্ষে এটি ছিল আমার পরিস্থিতির জন্য যুক্তিসঙ্গত কাজ (ত্রুটি সমাধান করা file_put_contents(/var/www/html/laravel/app/storage/meta/services.json): failed to open stream:)।


-1
  1. প্রথমে স্টোরেজ ফোল্ডারটি মুছুন এবং তারপরে আবার স্টোরেজ ফোল্ডারটি তৈরি করুন।
  2. স্টোরেজ ফোল্ডারের ভিতরে ফ্রেমওয়ার্ক হিসাবে একটি নতুন ফোল্ডারের নাম তৈরি করুন।
  3. ফ্রেমওয়ার্কের ফোল্ডারের ভিতরে ক্যাশে, সেশন এবং ভিউ হিসাবে তিনটি ফোল্ডার নাম তৈরি করুন।

আমি এটি করে আমার সমস্যার সমাধান করেছি।


-4

আমি 777স্টোরেজ ফোল্ডারে অ্যাক্সেস দেওয়ার চেষ্টা করেছি এবং এটি আমার পক্ষে কাজ করে

1) আপনার লারভেল রুট ডিরেক্টরিতে যান, ( /var/www/htmlআমার জন্য) এবং নিম্নলিখিত কমান্ডটি চালান

chmod 777 -R storage

2
777 এ অনুমতি নির্ধারণ করবেন না কারণ এটি দিরকে দেখতে এবং প্রত্যেকের জন্য সম্পাদনযোগ্য করে তোলে who এটি সুপারিশ করা হয় না!
কোডনিজা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.