Laravel 5 शो ErrorException file_put_contents स्ट्रीम खोलने में विफल रहा: ऐसी कोई फ़ाइल या निर्देशिका नहीं


84

मेरे पास लारवेल 5 पर एक परियोजना है और मैं इसके साथ कार्यालय और घर पर भी काम करता हूं। यह ठीक काम करता है, लेकिन हाल ही में घर पर काम करना बंद कर दिया। Laravel ने मुझे दो ErrorException दिखाईं

file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory

तथा

file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0):
failed to open stream: No such file or directory

मैं Google के साथ समस्या का निर्णय खोज रहा हूं और सही अधिकारों के बारे में जानकारी पा रहा हूं। सभी सलाह लिनक्स के बारे में है, लेकिन कार्यालय में और घर पर भी विंडोज में काम करता हूँ।

जब मैं एप्लिकेशन कैश साफ़ करने और कैश देखने की कोशिश करता हूं, तो कारीगर मुझसे बात करते हैं - ... क्लियर कर दिया जाता है। लेकिन कैश डेटा और विचार स्टोरेज में मौजूद हैं।

मैं इस समस्या को कैसे ठीक करुं?

अग्रिम में धन्यवाद!


6
यो कैश को साफ करने की कोशिश कर सकते हैं "php कारीगर कैश: स्पष्ट" मैं लिनक्स पर हूं, इसलिए मैं विंडोज़ पर अनुमति के बारे में निश्चित नहीं हूं, लेकिन फ़ोल्डर के गुणों की जांच करें यदि यह read_only नहीं है (फ़ोल्डर पर राइट क्लिक करें-> गुण)
शिक्षाओ

@educolo मुझे नहीं लगता कि समस्या निर्देशिका अधिकारों के बारे में है, क्योंकि कई महीने यह ठीक था।
एव्गेनि

जवाबों:


148

इस समस्या को हल करने का सबसे अच्छा तरीका है, निर्देशिका में जाएं laravel/bootstrap/cacheऔर config.phpफ़ाइल को हटा दें । या आप इसका नाम बदल सकते हैं config.php.old और साथ ही आपकी समस्या ठीक हो जाएगी। खुश कोडिंग :-)


7
हां जो मदद करेगा, लेकिन कैश को साफ करने से काम चल सकता है। वैग्रांट बॉक्स के बाहर भागो php artisan config:cacheअनुप्रयोगों के लिए पथों का पुनर्निर्माण करेगा। जब हम आवारा बॉक्स के अंदर अनुप्रयोग चला रहे होते हैं, तो उदाहरण के लिए डस्क परीक्षणों के लिए पथ अलग होते हैं।
जॉर्ज मायलोनस

लार्वा का विन्यास लार्वा को क्यों मरता है? धन्यवाद काम करता है।
एंड्रयू

config: कैश किसी कारण से ठीक नहीं हुआ।
एंड्रयू

उस समय या सामान्य रूप से SSH के माध्यम से कैंट पहुंच के लिए स्वच्छ, सरल और प्रत्यक्ष। बहुत बढ़िया जवाब!
lzoesch

config: फ़ाइल का नाम बदलने के साथ मेरे लिए भी स्पष्ट काम करता है,
मोहम्मद

66

आपको आमतौर पर php artisan config:cacheकमांड को अपने उत्पादन परिनियोजन रूटीन के भाग के रूप में चलाना चाहिए । आपकी समस्या के समाधान के रूप में, मेरा सुझाव है कि आप तेज़ कॉन्फ़िगरेशन लोड करने के लिए कैश फ़ाइल को फिर से बनाएँ।

ऐसा करने के लिए, अपनी कमांड लाइन पर निम्नलिखित कारीगर कमांड चलाएं

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

आप प्रोग्राम को अपने मार्गों में निम्नलिखित जोड़कर प्रोग्राम को निष्पादित कर सकते हैं:

Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    $exitCode = Artisan::call('config:cache');
    return 'DONE'; //Return anything
});

और फिर clear-cacheअपने ब्राउज़र से मार्ग को कॉल करें ।

मुझे आशा है कि यह मददगार है।


49

कुछ शोधों के बाद मैं समझता हूं - मेरे पास बहुत समान है, लेकिन विभिन्न रूट प्रोजेक्ट स्थान और इसके कैश इन हैं /bootstrap/cache। कैशे क्लियरिंग के बाद प्रोजेक्ट शुरू हुआ।


इस समस्या ने मेरी समस्या को हल कर दिया, कई सुझाए गए समाधान विफल होने के बाद, धन्यवाद
अगुग सगीता

कोई समस्या नहीं @AgungSagita;)
एव्गेनि

तुम एक जीवन रक्षक हो
Festus Yuma

इससे मेरी समस्या हल हो गई, कई अन्य विकल्पों की कोशिश की। धन्यवाद :)
बिनमोस

काश मैंने इसे देखा होता क्योंकि यह एक लापता सेवा प्रदाता के बारे में मेरे प्रश्न का उत्तर है: stackoverflow.com/questions/58192052/…
j3py

14

वास्तव में मुझे इस मुद्दे का सामना करना पड़ा जब मैंने अपनी परियोजना को सर्वर से स्थानीय में स्थानांतरित कर दिया।

में

भंडारण / ढांचा

चार बुनियादी फ़ोल्डर्स कैश, सत्र, परीक्षण, विचार आवश्यक हैं

मेरे मामले में सत्र गायब था gitignore में हो सकता है।

इसलिए मैंने मैन्युअल रूप से सत्र फ़ोल्डर और ताज़ा ब्राउज़र बनाया और यह काम कर रहा था।

इसलिए यदि हम इस समस्या को हटा दें तो कोई भी गायब फ़ोल्डर हल किया जा सकता है।


3
यह एक सच है
अहमद जमील अल रासीद

7

इस प्रकार की समस्या आम तौर पर एक सर्वर से दूसरे में, एक फ़ोल्डर से दूसरे में माइग्रेट करते समय होती है। लारावेल कैश और कॉन्फ़िगरेशन (फ़ाइल नाम) रखता है जब फ़ोल्डर अलग होता है तब यह समस्या होती है।

समाधान रन निम्न आदेश:

php artisan config:cache

https://laravel.com/docs/5.6/configuration#configuration-caching


6

खिड़कियों पर अपाचे + डब्ल्यूएसएल

यह एक मूर्खतापूर्ण गलती है, और दूसरों की तुलना में एक अलग जवाब है, लेकिन मैं इसे जोड़ूंगा क्योंकि यह मेरे साथ हुआ था।

यदि आप अपने सर्वर को चलाने के लिए अपने विंडोज़ एप का उपयोग करते हुए अपने लार्वा एप्लिकेशन को प्रबंधित करने के लिए WSL (विंडोज़ पर लिनक्स बैश) का उपयोग करते हैं , तो wsl में किसी भी कैशिंग कमांड को चलाने से सत्र और अन्य फ़ोल्डरों के लिए विंडोज़ पथ के बजाय लिनक्स पथ संग्रहीत होगा ।

उपाय

केवल WSL के बजाय, शब्‍दशैली में कैशे क्लियरिंग कमांड चलाएं

$ php artisan optimize

मेरे लिए काफी था।


मैं उसी मुद्दे में भाग गया। मैं विंडोज़ चला रहा हूँ और एक VMWare वर्चुअल मशीन पर लिनक्स का एक उदाहरण। यह मुझे विंडोज और लिनक्स दोनों पर परीक्षण करने की अनुमति देता है, लेकिन जब मैंने php artisan config:cacheविंडोज पर कमांड चलाया , तो मेरा लिनक्स अब एप्लिकेशन के वेब पेजों को लोड नहीं करेगा। बूटस्ट्रैप / कैश फ़ोल्डर में जा रहे हैं और वहां config.php फ़ाइल को हटाकर इसे हल कर दिया है।
डेविड ट्रान

4

इन आदेशों के साथ प्रयास करें जो उन त्रुटियों के साथ उपयोगी रहे हैं

पथ \ प्रोजेक्ट \ संग्रहण \ ढांचा \ ...

php artisan view:clear

पथ \ प्रोजेक्ट \ संग्रहण \ ढांचा / सत्र ...

php artisan config:cache

2
यदि आप एक नया उत्तर पोस्ट करते हैं, जबकि पहले से ही कई उत्कीर्ण उत्तर हैं, तो आपको इसमें कुछ और स्पष्टीकरण जोड़ना चाहिए, ताकि अन्य आपके उत्तर से सीख सकें
निको हसे

4

साझा होस्टिंग के मामले में जब आपके पास कमांड लाइन का उपयोग नहीं होता है तो बस लार्वा / बूटस्ट्रैप / कैश फ़ोल्डर में नेविगेट करें और हटाएं (या नाम बदलें) config.php और आप सभी काम कर रहे हैं!


2

इस समस्या को हल करने का सबसे अच्छा तरीका है, निर्देशिका में जाएं laravel/bootstrap/cacheऔर कैश से सभी फ़ाइलों को हटा दें।

ऐसा करने के लिए, अपनी कमांड लाइन पर निम्नलिखित कारीगर कमांड चलाएं
1. php artisan config:clear
2. php artisan cache:clear
3. php artisan config:cache

अपने पैनल या सर्वर में, आप अपने मार्गों में निम्नलिखित जोड़कर कमांड निष्पादित कर सकते हैं:

    Route::get('/clear-cache', function() {
        $run = Artisan::call('config:clear');
        $run = Artisan::call('cache:clear');
        $run = Artisan::call('config:cache');
        return 'FINISHED';  
    });

और फिर www.yourdomain.com/clear-cache अपने ब्राउज़र से मार्ग को कॉल करें  ।


2

/bootstrap/cache/config.php का नाम बदलते हुए config.php.old मेरे लिए काम नहीं करता है और न ही आर्टिसन के साथ कैश को क्लीयर करने में।

  1. php कारीगर विन्यास: स्पष्ट
  2. php कारीगर कैश: स्पष्ट
  3. php कारीगर विन्यास: कैश

और कुछ अजीब कारणों से मैं निर्देशिकाओं पर स्वामी के लिए अनुमति नहीं बदल सकता, इसलिए मेरा समाधान व्यवस्थापक के रूप में मेरी आईडीई (विजुअल स्टूडियो कोड) चला रहा था, और सब कुछ काम करता है।

मेरा प्रोजेक्ट दूसरे डिस्क के F: / पाथ में है।


1

हो सकता है कि आपकी कंपोज़र फ़ाइल में कोई समस्या हो। तुम कोशिश कर सकते हो:

  • कंपोज़र इंस्टॉल विक्रेता पैकेज को कंपोज़र के अनुसार स्थापित करता है। (या कंपोज़र बनाता है। यदि मौजूद नहीं है तो),
  • कंपोज़र अपडेट हमेशा कंपोज़र को पुन: प्राप्त करता है। कंपोज़र के आधार पर उपलब्ध पैकेजों के अंतिम संस्करणों को स्थापित करता है

  • संगीतकार डंप-ऑटोलॉड एक चीज़ डाउनलोड नहीं करेगा। यह सिर्फ उन सभी वर्गों की सूची को पुन: बनाता है जिन्हें परियोजना में शामिल करने की आवश्यकता है (autoload_classmap.php)। आदर्श है जब आप अपने प्रोजेक्ट के अंदर एक नया वर्ग रखते हैं। आदर्श रूप से, आप अपने वेबपृष्ठों के तेज़ लोड के लिए संगीतकार डंप-ऑटोलॉड -o निष्पादित करते हैं। एकमात्र कारण यह डिफ़ॉल्ट नहीं है, क्योंकि यह उत्पन्न होने में थोड़ा अधिक समय लेता है (लेकिन केवल थोड़ा सा ध्यान देने योग्य है)

स्रोत


Unfortunatelly, यह मदद नहीं की। मैं आपके सभी सलाह की कोशिश करता हूं।
एव्गेनि

क्षमा करें :( आपने अपनी मूल पोस्ट में कहा था कि आपको लगा कि यह अधिकार / अनुमति हो सकती है। इस पोस्ट में फाइलों और फ़ोल्डरों पर अधिकारों को बदलने के बारे में बहुत सारी जानकारी है अगर आपको लगता है कि यह मुद्दा हो सकता है। खिड़कियों तो मैं बहुत कि के बारे में पता नहीं है आशा है कि यह आप के लिए बाहर काम करता है।।
रशेल MacKeigan

मुझे नहीं लगता कि समस्या निर्देशिका अधिकारों के बारे में है, क्योंकि कई महीने यह ठीक था। जैसा कि मुझे याद है, मैं पहले कुछ लारवेल पैकेज अपडेट करता हूं और फिर इसने काम करना बंद कर दिया। लेकिन अगले दिन ऑफिस के प्रोजेक्ट में शुरुआत ठीक रही।
एव्गेनि

1

इस समस्या का कारण लोकलहोस्ट में कैशे फाइल्स हैं। उस हिसाब से मैंने अपने प्रोजेक्ट पर कैशे क्लियर करने के लिए कई चीजें आजमाई हैं, लेकिन हर बार मैं असफल रहा।

  • Web.php फ़ाइल (कारीगर कोड के साथ) बदलकर cahe कमांड क्लियर करने की कोशिश की
  • SSH (PUTTY के माध्यम से) कनेक्ट करके कैश साफ़ करने की कोशिश की
  • एक नई सार्वजनिक निर्देशिका बनाने के भीतर उप डोमेन में मेरी परियोजना की मेजबानी करने की कोशिश की

इसलिए मुझे इस समस्या का समाधान मिल गया है क्योंकि प्रत्येक और ऊपर के सभी चरण विफल हो गए और इसने मेरे लिए पूरी तरह से काम किया। मैंने host_route / bootstrap / cache निर्देशिका में cache.php फ़ाइल को हटा दिया है ।

मुझे लगता है कि यह उत्तर आपकी समस्या को दूर करने में मदद करेगा।


1

मेरे मामले में यह कुछ भी नहीं था जिसे php कारीगर कमांड के साथ तय किया जा सकता था। समस्या फ़ोल्डर / संग्रहण फ़ोल्डर के लिए अनुमतियाँ थी। यह त्रुटि स्पष्ट नहीं हुई।


1

यदि आप कर्कर के अंदर लार्वा चला रहे हैं तो उसके फाइलसिस्टम तक पहुँचें

$ docker exec -it name-of-laravel-container /bin/bash

अगला अपने लार्वा परियोजनाओं को रूट निर्देशिका में नेविगेट करें। सुनिश्चित करें कि आपके पास भंडारण / रूपरेखा फ़ोल्डर है:

  1. कैश
  2. सत्र
  3. परिक्षण
  4. विचारों

और वे पठनीय और योग्य दोनों होने चाहिए।



0

/storageपहली मशीन पर फ़ोल्डर के लिए .gitignore के कारण मुझे ऐसी ही समस्याएँ थीं , फिर दूसरी मशीन पर रिपॉजिटरी और सत्र कैश को लिखने के लिए लार्वा रिविजन किया गया था

इसलिए, मैन्युअल रूप से फ़ोल्डर बनाना /storage/sessionsएक समाधान हो सकता है।


0

समाधान है कि मेरे लिए काम किया है बस अगर आप कर रहे हैं के रूप में अनुप्रयोग की सेवा के लिए है

  1. पर macया linuxउपयोगsudo php artisan serve
  2. खिड़कियों पर CMDएक के रूप में खोलने की कोशिश करो adminstratorऔर फिर परियोजना निर्देशिका और चलाने के लिए जाओphp artisan serve

0

की सामग्री को साफ करके storage/framework/cacheमेरे लिए ट्रिक आई। और कुछ नहीं काम किया ...


0

मैंने Laravel 8 का उपयोग किया, यह मेरा समाधान है

गोटो: स्टोरेज / फ्रेमवर्क / कैश / डेटा
सेट अनुमति निर्देशिका डेटा 777 है

यह मेरे लिए काम किया है



0

यदि कुछ भी नहीं उत्पादन वातावरण में निम्नलिखित प्रयास करें

1-

composer install --optimize-autoloader --no-dev

2-

php artisan cache:clear

3-

php artisan config:clear

4-

php artisan view:clear

5-

php artisan config:cache

6-

php artisan route:cache

मेरे लिये कार्य करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.