छवि शैलियाँ पहुँच अस्वीकृत हो जाती हैं


22

मैं उपयोगकर्ताओं को एक पृष्ठ में एक विशिष्ट छवि शैली के साथ चित्र सम्मिलित करने की अनुमति देने के लिए इन्सर्ट मॉड्यूल का उपयोग कर रहा हूँ। Drupal 7.20 में अपग्रेड करने के बाद, छवियों को files/stylesफ़ोल्डर्स में संग्रहीत नहीं किया जाता है , और छवि url 403 (एक्सेस अस्वीकृत) त्रुटि देता है। मैंने फ़ोल्डर अनुमतियों की जाँच की, और वे सभी 777 पर सेट हैं।


मैंने Media_flickr मॉड्यूल भी स्थापित किया है, लेकिन मेरा मानना ​​है कि स्थापना के बाद मेरी छवि शैलियाँ काम कर रही थीं। मै गलत हो सकता हूँ।
इवान जॉनसन

जवाबों:


32

हमेशा अपडेट से पहले नई रिलीज़ के रिलीज़ नोट्स को पढ़ने की सिफारिश की जाती है, ताकि यह सुनिश्चित हो सके कि अपडेट वर्तमान सुविधाओं में से कुछ को नहीं तोड़ता है।

Drupal 7.20 के रिलीज नोट्स का उल्लेख है:

इस रिलीज़ में सुरक्षा सुधार ड्रुपल द्वारा उत्पन्न सभी छवि व्युत्पन्न URL को एक क्वेरी स्ट्रिंग के रूप में एक टोकन को बदलने के लिए बदलते हैं। (उदाहरण के लिए, लिंक जो पहले http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png जैसे URL को इंगित करता है, अब http: // जैसे URL की ओर संकेत करेगा /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD ।)

settings.phpसाइट में छवियां प्राप्त करने के लिए आप निम्न पंक्ति जोड़ सकते हैं :

$conf['image_allow_insecure_derivatives'] = TRUE;

लेकिन यह कोर को अपडेट करने और अपडेट का उपयोग न करने के रूप में अच्छा होगा ;-)

पृष्ठ के कुछ उपयोगी लिंक:

अद्यतन करें:

Drupal 7.21 के रिलीज़ नोटों से, अद्यतन में Drupal 7.20 सुरक्षा रिलीज़ में शुरू की गई असंगतताओं के लिए फ़िक्सेस शामिल हैं। इसलिए, संस्करण 7.20 में सुरक्षा सुधारों का उपयोग करने के लिए नवीनतम संस्करण यानी 7.21 पर अपडेट करने की सिफारिश की गई है।


2
doh! हां, रिलीज नोट्स पढ़ना अच्छा है। मुझे सिर्फ 'ड्रुप अप ड्रुपल' टाइप करने की बुरी आदत है। धन्यवाद!!!
इवान जॉनसन


@ rémy कृपया संपादन देखें।
अजीत

मैं असुरक्षित डेरिवेटिव की अनुमति नहीं देना चाहता। अजीब बात है, जब मैं एक छवि शैली के भीतर से एक छवि बनाने की कोशिश करता हूं, तो यह मुझे url और सुरक्षा टोकन देता है, लेकिन फिर भी प्रिंट से इनकार कर दिया जाता है। कोई विचार?
एलेक्स

3
यह समस्या भी बनी रहेगी यदि कहीं भी कोड में आप image_style_path () को छवि पथ बनाने के लिए कॉल कर रहे थे, तो टोकन को सही ढंग से उत्पन्न करने के लिए इसे image_style_url () में बदलने की आवश्यकता है।
कृति

3

इसके लायक यह है कि मैंने यह भी पाया कि किसी तरह मेरी छवि शैली निर्देशिकाएं अपग्रेड और स्पष्ट कैश के बाद सही अनुमतियाँ सेट नहीं कर रही थीं।

वे मूल शैलियों / [आपकी शैली] और शैलियों / [आपकी शैली] / सार्वजनिक चीजों को ठीक से लोड करने के लिए 755 होनी चाहिए।

उन सभी को बदलने से छवियां ठीक से दिखाई देने लगीं!


1

अपनी फ़ाइल प्रणाली को ठीक करें: / व्यवस्थापक / विन्यास / मीडिया / फ़ाइल-प्रणाली

यहाँ मेरी सेटिंग्स हैं:

सार्वजनिक सिस्टम पथ सेट करें : साइटें / डिफ़ॉल्ट / फ़ाइलें

निजी फ़ाइल सिस्टम पथ रिक्त है।

अस्थायी निर्देशिका: / tmp

डिफ़ॉल्ट डाउनलोड विधि (चयनित) वेबसर्वर द्वारा सेवित सार्वजनिक स्थानीय फाइलें।


1

इस संपादन को करने से समस्या ठीक नहीं हुई और त्रुटियों का उत्पादन हुआ:

मॉड्यूल / छवि / image.admin.inc की लाइन 775 एक पैच की जरूरत है ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

(चूंकि मेरी प्रतिष्ठा कम है, मैं उस अलग उत्तर के तहत अभी तक टिप्पणी नहीं कर सकता)

मैंने इस तरह से वापस लागू किया है और जब यह मुद्दा पहली बार सामने आया तो बहुत सी चीजें तय की हैं:

$conf['image_allow_insecure_derivatives'] = TRUE;

मैंने सभी +FollowSymLinksको बदलते हुए लागू किया है, +SymLinksIfOwnerMatchलेकिन अभी भी ठीक से काम करने के लिए छवि शैलियों के पूर्वावलोकन प्राप्त करने में सक्षम नहीं हूं।

अगला और अंतिम विकल्प सर्वर-आकार के उपयोगकर्ता अनुमतियों को बदलना है, ack। मैं या तो इसे ठीक कर दूंगा या यह सब तोड़ दूंगा।


0

मॉड्यूल / छवि / image.admin.inc की लाइन 775 एक पैच की जरूरत है ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

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