थंबनेल, मध्यम और बड़ी छवियों को बनाने में विफल


10

Drupal 7.10 की एक नई स्थापना का उपयोग करते समय, मैंने सार्वजनिक अपलोड के लिए निर्देशिका सेट की है sites/uploads

जब मैं तब किसी कंटेंट इंस्टेंस पर इमेज जोड़ता हूं, तो मुझे sites/example.org/files/imagename.pngउम्मीद के मुताबिक ओरिजिनल अपलोड मिल जाता है। हालाँकि, अन्य चित्र (थंबनेल, मध्यम और बड़े) पर नहीं बनते हैं sites/example.org/styles/*

निर्देशिका PHP5-FPM उपयोगकर्ता द्वारा पठनीय और पठनीय है, और इसलिए कोई अंक अनुमतियाँ बुद्धिमान नहीं होनी चाहिए।

ऐसा क्यों होता है? मेरे द्वारा यह कैसे किया जा सकता है?


यदि आप वेब सर्वर के रूप में nginx का उपयोग कर रहे हैं, तो आपको अपने vhost में एक अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता है, अधिक जानकारी के लिए यहां पढ़ें: drupal.org/node/1048570#comment-4047984
Gnuget

जवाबों:


13

सही है, जवाब वास्तव में मुझे महसूस होने की तुलना में थोड़ा अधिक सूक्ष्म है। पता चलता है कि डी 7 के imagecacheप्रतिस्थापन को आपके नगनेक्स विस्टा में कुछ ध्यान देने की आवश्यकता है। 404 के बिना अनुपलब्ध फ़ाइलों के लिए ड्रुपल को भेजा जा रहा है, चित्र नहीं बनाए गए हैं - कुछ मुझे शुरू में एहसास नहीं हुआ था, जैसा कि मैंने माना कि वे अपलोड पर बनाए गए थे।

location @rewrite {
    rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ ^/sites/.*/files/styles/ {
    try_files $uri @rewrite;
}

इसे आपके सर्वर परिभाषा में जोड़ा जाना चाहिए, और आपको रोल करने के लिए तैयार होना चाहिए। स्पष्ट रूप से, आपके सेटअप के लिए पथ को बदलने की आवश्यकता हो सकती है, लेकिन मेरे लिए यह था।


1
ध्यान दें कि @rewrite भाग को काम करने के लिए विन्यास फाइल में अन्यत्र उचित रूप से परिभाषित किया जाना चाहिए। उस ने कहा, यह पहले से ही मेरा था और इसने मेरी समस्या को भी हल कर दिया, इसलिए धन्यवाद jvc26 :)
एल योबो

@ElYobo अच्छे बिंदु - ने स्पष्ट करने के लिए उत्तर को अपडेट किया है। धन्यवाद
jvc26

क्या यह एक nginx रिवर्स प्रॉक्सी कॉन्फ़िगरेशन को प्रभावित करेगा? मुझे एक ही मुद्दा मिला है और यह ठीक नहीं लगता।
ग्रिजली

यदि आप चाहते हैं उन्हें अपलोड पर बनाया जाना drupal.org/project/imageinfo_cache करता है कि
mikeytown2

अच्छी पकड़। यह अंततः मुझे एक के बजाय nginx के अनुशंसित सर्वर फ़ाइल का उपयोग करने के लिए ले जाता है जो DigitalOcean एक-क्लिक Drupal इंस्टॉल के साथ स्वचालित रूप से कॉन्फ़िगर करता है।
मेगालियो

2

सार्वजनिक फ़ाइल सिस्टम पथ और अस्थायी पथ को व्यवस्थापक / कॉन्फ़िगरेशन / मीडिया / फ़ाइल-सिस्टम दोनों पर जाँचना सुनिश्चित करें

एक बार जब मैं उन दोनों फ़ोल्डरों को सही अनुमतियों के साथ सेट कर देता था, तो मेरे सबफ़ोल्डर्स स्वचालित रूप से बनाए जाते हैं जब मैं किसी फ़ाइल को सहेजता हूं, तो छवि सहेजी जाती है, और त्रुटि संदेश चला जाता है :-)


2

मेरे मामले में समस्या इसलिए पैदा हो रही थी क्योंकि छवियों का उपयोग https किया गया था,

मैंने फ़ाइल पथों पर https को अनदेखा करने के लिए सुरक्षित पृष्ठ सेटिंग्स पर निम्न पंक्तियाँ जोड़ीं।

*/files/*

आशा है कि यह किसी की मदद करता है। :)


1

जब आप कहते हैं कि आपने अनुमतियों की जाँच कर ली है, तो अभी भी मैं वहीं से शुरू करूँगा, जैसा कि मैंने स्वयं यह मुद्दा, बार-बार, और यह लगभग हमेशा अनुमतियों की समस्या रही है।

सामान्य सलाह: सबसे पहले, व्यवस्थापक / कॉन्फ़िगरेशन / मीडिया / फ़ाइल-सिस्टम पर जाएं, और "कॉन्फ़िगरेशन सहेजें" पर क्लिक करें। यह Drupal को सेट निर्देशिकाओं की अनुमतियों का पुनर्मूल्यांकन करने का कारण होगा, और यदि यह एक समस्या पाता है तो आपको त्रुटि संदेश देगा।

दूसरा: मेरा मानना ​​है कि आपके पास Apache, या www-data, या अन्य उपयोगकर्ता, जो कि वेबसर्वर के मालिक हैं, जैसा कि php उपयोगकर्ता के विपरीत है? लिनक्स या मैक सिस्टम पर, उस उपयोगकर्ता को sudo। एक फ़ाइल को सही उपयोगकर्ता के रूप में लिखने की कोशिश करना , सही मायने में यह सुनिश्चित करने का सबसे अच्छा तरीका है कि आपके पास सही अनुमतियाँ हैं। साइट्स / domain.com / files / पर जाएं, और "echo data> new_file; cat new_file" पर कॉल करें। एक टर्मिनल में। यह सत्यापित करेगा कि आप वास्तव में राइट डायरेक्टरी को लिख सकते हैं। अपने tmp dir के साथ भी ऐसा ही करें। उम्मीद है कि कोई और सुझाव दे सकता है कि विंडोज़ जैसी प्रणाली पर समान क्रियाएं कैसे करें।

तीसरा: निर्देशिका अनुमतियों को हटाने के लिए, फ़ाइलों की निर्देशिका को 777 पुन: लागू करें। आप बाद में और अधिक अनुमतियाँ पुनर्स्थापित कर सकते हैं

find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644

चौथा: सुनिश्चित करें कि tmp निर्देशिका जिसमें पूर्ण अनुमति है।

पांचवां: यदि आपने अब तक इसका पता नहीं लगाया है तो आपको कोड डीबग करना शुरू करना पड़ सकता है।


सुझावों के लिए धन्यवाद: पहले से ही ऊपर की कोशिश की है, फ़ाइल-सिस्टम परिवर्तन पर Drupal से कोई त्रुटि नहीं है, इसलिए अनुमतियाँ ठीक होनी चाहिए। PHP उन सभी प्रक्रियाओं को चलाता है जो उस निर्देशिका को लिख सकते हैं, इसलिए उपयोगकर्ता वेबसर्वर के रूप में चलता है जिससे क्षमता लिखने के लिए कोई फर्क नहीं पड़ेगा। लिखने के साथ संगत अनुमतियाँ मैन्युअल रूप से जांच ली हैं। / tmp हमेशा की तरह 777 है, इसलिए कोई समस्या नहीं लिखता है। पथ विसंगति को हल कर दिया गया है मेरी ओर से एक गलती थी।
jvc26

हेड अप के रूप में, समस्या नैग्नेक्स कॉन्फिगरेशन में से एक थी, जिसमें 404s के ड्रुपल को पास करने की समस्या थी, जिसके कारण थम्बनेल निर्माण को ट्रिगर किया गया।
jvc26

1

सुस्ती के उत्तर को पूरा करने के लिए, यहां वह विधि है जिसका उपयोग मैं थम्बनेल, मध्यम ... छवि शैलियों के लिए करता था।

मैं सटीक हूं कि मैंने पहली बार उपरोक्त सभी बिंदुओं की जाँच की, परिणाम के बिना।

तब (एक लिनक्स ओएस पर), मैंने php पर umask बदलने के लिए /usr/local/etc/suphp.conf को संपादित किया , ताकि यह 755 अनुमतियों के साथ फाइलें और निर्देशिकाएं बना सके (यह 744 अधिकतम पर था)।

और इस निश्चित रूप से समस्या को हल किया। :)


0

मैं Drupal 8.0.3 पर हूं।
मेरे मामले में यह फ़ोल्डर स्थापना पर उत्पन्न नहीं हुआ है।

sites/default/files/field/image

इसलिए मैंने इसे ड्रुपल इंस्टॉलेशन के पुराने संस्करण से कॉपी करके रखा।
थंबनेल, मध्यम और बड़े सहित सभी छवियां अब दिखाई जाती हैं।


-1

रूट और फ़ाइल निर्देशिका में .htaccess फ़ाइल की जाँच करें। यदि आवश्यक हो तो नई .htaccess फ़ाइल से बदलें

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