बिन / मैग्नेटो सेटअप चलाने पर निर्देशिका पब / स्टेटिक में लेखन अनुमतियाँ गुम: अपग्रेड


19

एक दिन पहले, मैंने एक नया मॉड्यूल अपडेट किया और यह सामान्य रूप से काम कर रहा था। अब, जब मैं दौड़ता हूं, तो मुझे bin/magento setup:upgradeनीचे का अपवाद प्राप्त होता है। मैंने pubMagento 2 में फ़ोल्डर के लिए 777 (या 770) की अनुमति देने की कोशिश की, लेकिन यह काम नहीं कर रहा है।

  [अपवाद]
  मिसिंग निम्नलिखित निर्देशिकाओं के लिए अनुमतियाँ लिखते हैं: 'पब / स्टैटिक'


क्या आपने इस समस्या को हल करने का प्रबंधन किया? अगर ऐसा है तो pls समाधान पोस्ट करें।
रीना पारेख

क्या आपके पास भी यही मुद्दा है?
थाओ फाम

हाँ, मैं उसी मुद्दे का सामना कर रहा हूँ। आपने इसे कैसे हल किया?
रीना पारेख

मैं कोर में कुछ लाइन कोड टिप्पणी करता हूं। क्या आप मेरे रूप में करना चाहते हैं?
थाओ फाम

1
मैं नीचे पोस्ट में अपने relsove पोस्ट। मैं इसके साथ कोशिश कर सकता हूं
Thao Pham

जवाबों:


30

TL; DR ट्रंकट pub/staticफोल्डर।


मेरे लिए, मेरे पास एक पुराना इंस्टॉलेशन था, जिसमें संभवत: कुछ सिम्लिंक और पुरानी फाइलें थीं जो अब मौजूद नहीं हैं।

मुद्दा checkInstallationFilePermissionsयह है कि यह अनुमतियों की पुनरावृत्ति की जाँच करता है। फ़ाइलें और फ़ोल्डर्स। मेरे पास एक मिसिंग सिम्लिंक था, और वह चेक पर झूठा वापस आ गया था यदि वह लिखने योग्य हो।

डिबग कैसे करें:

  1. setup/src/Magento/Setup/Model/FilePermissions.php

  2. विधि में गोटो लाइन 143 checkRecursiveDirectories

  3. रेखाएँ जोड़ें var_dump($subDirectory);var_dump($subDirectory->isWritable());

  4. फिर से दौड़ो bin/magento setup:upgrade

अब आप देखेंगे कि वास्तव में क्या गलत है, और आप इसे ठीक कर सकते हैं। व्यक्तिगत रूप से मैं सब कुछ हटा देता हूंpub/static , यह ऑटो जेनरेट की गई सामग्री होगी, इसलिए आपको इस बारे में चिंतित नहीं होना चाहिए।


1
मैंने सेटअप चलाने के बाद पब / स्टेटिक को पूरी तरह से हटा दिया: पब / स्थिर के अंदर एकमात्र फ़ोल्डर को अपग्रेड करना __requirejs फ़ोल्डर है। सीएसएस गायब हैं, कोई स्टाइल नहीं है तो क्या हुआ .... यार .. काश मैं ऐसा नहीं करता
Lachezar Raychev

मैं पब / स्टेटिक में सब कुछ कैसे पुनर्स्थापित कर सकता हूं?
लाचेज़र रेचेव

2
सब कुछ इतना अच्छा चल रहा था .... :) मैं वास्तव में इस ढांचे को तुच्छ
समझने लगा हूं

3
यदि आप पब / स्टेटिक की सामग्री को हटाते हैं, तो सुनिश्चित करें कि आप पब / स्टेटिक / .htaccess को नहीं हटाते हैं क्योंकि यह कोड बेस का हिस्सा है और इसे पुनः प्राप्त नहीं किया जाता है: github.com/magento/magento2/tree/2.0/ पब / स्थिर
mttjohnson

Perfecto! यह वह था ..
अरविंद ०

11

मैं एक टूटे हुए प्रतीकात्मक लिंक के कारण विकास में इस त्रुटि में भाग गया।

मैंने एक मॉड्यूल की view/frontend/webनिर्देशिका में एक फ़ाइल बनाई थी जो उस developerमोड में pub/staticएक प्रतीकात्मक लिंक का उपयोग करके निर्देशिका में तैनात की गई थी जो मॉड्यूल की निर्देशिका को इंगित करता है जहां मूल फ़ाइल संग्रहीत होती है।

विकास के कुछ बिंदु पर मैंने अपने मॉड्यूल से फ़ाइल को हटा दिया, लेकिन प्रतीकात्मक लिंक अभी भी pub/staticएक फ़ाइल की ओर इशारा करते हुए मौजूद है जो अब मौजूद नहीं है। मुझे उम्मीद है कि अगर मैं एक फाइल का नाम बदल देता तो भी यही होता।

यदि कोई साइट productionमोड में है और bin/magento setup:static-content:deployचला गया है, जो वास्तव में pub/staticप्रतीकात्मक लिंक बनाने के बजाय फ़ाइलों को निर्देशिका में कॉपी करता है ।

इस टूटी हुई प्रतीकात्मक कड़ी को खोजने के लिए मैंने शेल से एक कमांड चलाया

find -L . -type l

टूटी हुई प्रतीकात्मक कड़ी को हटाकर समस्या का समाधान किया गया (उदाहरण के लिए find -L . -type l -exec rm {} \;)।


यह मेरे मुद्दे का जवाब था, धन्यवाद mttjohnson!
जोशुआ सोइलू

4

अपनी Magento रूट निर्देशिका के अंदर नीचे दिए गए आदेशों को चलाएं और आपका मुद्दा समाप्त हो जाना चाहिए:

$ rm -rf pub/static/*
$ php bin/magento setup:static-content:deploy

मेरे लिए काम किया।


इससे .htaccessफाइल भी डिलीट हो जाएगी । आपको .htaccessफ़ाइल चाहिए।
आदर्श खत्री

2

आपको अनुमतियों को सेटअप करना चाहिए क्योंकि यह आधिकारिक दस्तावेज में वर्णित है: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html


1
क्या आप वास्तविक अनुमतियाँ सिर्फ मामले में url परिवर्तन का कारण बन सकते हैं।
रोब ३०००

मैं फिर से कोशिश करता हूं लेकिन यह काम नहीं कर रहा है
थाओ फाम

उपनिर्देशिका में इसे पुनरावर्ती रूप से करना न भूलें: पब, पब / स्टेटिक, आदि
Mage2.PRO

स्वामित्व अनुमतियों की तरह महत्वपूर्ण है; उपरोक्त लिंक की जाँच करें और devdocs.magento.com/guides/v2.0/install-gde/prereq/… । आपके पास दो उपयोगकर्ता होने चाहिए; एक स्थानीय उपयोगकर्ता और वेब सर्वर उपयोगकर्ता
स्टीव जॉनसन

एप्लिकेशन स्तर पर अनुमतियों को सेट करने का पूरा विचार गलत है, इसलिए मुझे लगता है कि लोगों को उस खंड पर प्रलेखन से बचना चाहिए। इसे अगले संस्करणों में उनके
गीथूब

1

यह मेरा सुलझा हुआ अस्थायी है। मैं लाइन 744 और 466 में टिप्पणी करता हूं <magento_dir>/setup/src/Magento/Setup/Model/Installer.php

यह लाइन कोड है:

$this->checkInstallationFilePermissions();

मुझे समाधान की आवश्यकता है कोर फ़ाइल को न बदलें।


समस्या पब / स्थैतिक निर्देशिका के तहत टूटी हुई सिमलिंक (नीचे वर्णित) के कारण होने की संभावना है। टूटी हुई सीलिंक को हटाकर कोर फ़ाइलों को संशोधित किए बिना समस्या को हल करना चाहिए।
मटजोहोनसन


@EnvisionEcommerce लिंक काम नहीं करता है।
मगेप्सिचको

1

बिन / मैजेंटो अनुमति को ठीक करें

chmod u + x bin / magento


0

इन फ़ोल्डरों में वर्णित सही अनुमतियों की आवश्यकता है: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html

जब आप पब / स्थिर फ़ोल्डर की सामग्री को हटाते हैं और आप पब / स्टेटिक फ़ोल्डर को अनुमति 770 देते हैं, तो संदेश फिर से दिखाई नहीं देगा।


0

मुझे वही समस्या थी जहां मैं कमांड लाइन के माध्यम से मैगनेटो स्थापित नहीं कर सका। बस फ़ोल्डर बनाने pub/staticसे समस्या हल हो गई।


0

अगर किसी के पास विंडोज ओएस पर यह समस्या है। बस एक कमांडर कमांड प्रॉम्प्ट पर कमांड निष्पादित करें और यह एक आकर्षण की तरह काम करेगा। आशा है कि यह किसी की मदद करता है।


0

मेरे मामले में नॉन-रूट उपयोगकर्ता या सीमित अनुमतियों वाला उपयोगकर्ता के माध्यम से अपग्रेड कमांड चलाना त्रुटि पैदा कर रहा था। सुनिश्चित करें कि आप पर्याप्त अनुमतियों वाले उपयोगकर्ता के साथ नवीनीकरण कमांड चलाते हैं।


0

मैंने कई बार लिखा कि परमिशन लें और सब कुछ अच्छा था।

  1. मैंने इस पंक्ति पर टिप्पणी की, जिसने मुझे एक अपवाद बताया।
  2. फिर मैंने सेटअप चलाया: अपग्रेड।
  3. अपवाद के साथ पंक्ति वापस लौटा दी गई
  4. इस मुद्दे को और अधिक नहीं पुन: पेश किया

0

निम्न तीन IP पते के लिए, निम्न कमांड चलाएँ:

<Magento-Directory>php bin\magento maintenance:allow-ips 127.0.0.1, 
<Magento-Directory>php bin\magento maintenance:allow-ips "the ip of my localhost given by the NAT-Router" and
<Magento-Directory>php bin\magento maintenance:allow-ips  "the ip of the NAT-Router" 

0

इसका उपयोग न करें:

rm -r pub/static

यह सभी फाइलों को हटा देगा

आप उपयोग कर सकते हैं यह बेहतर होगा:

rm -rf pub/static/frontend
rm -rf pub/static/adminhtml

उसके बाद उपयोग करें:

php bin/magento setup:static-content:deploy en_US -f 

-1

बस अपने Magento2 से पब / स्टेटिक फ़ोल्डर को हटा दें

rm -r pub/static

फिर magento2 की स्थिर सामग्री को तैनात करें

php bin/magento setup:static-content:deploy

इस प्रक्रिया का उपयोग करके मेरी वही समस्या हल हो गई।


4
आपको संपूर्ण पब / स्थिर निर्देशिका को नहीं निकालना चाहिए क्योंकि इसमें एक .htaccess फ़ाइल है जो महत्वपूर्ण है, और .htaccess फ़ाइल किसी भी स्थिर सामग्री पर पुन: निर्मित नहीं होगी। आप चला सकते हैं rm -r pub/static/*और .htaccess फ़ाइल को निकालने से बचना चाहिए।
मटजोहोनसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.