5

मेरे स्थानीय मशीन के बिना एडब्ल्यूएस बीनस्टॉक बोतल स्थिर फ़ाइलों के लिए मना किया एक आभासी CeontOS-7 एक अजगर 2.7 virtualenv एक फ्लास्क अनुप्रयोग निर्देशिका युक्त है, संरचना निम्नलिखित है ईएबी सीएलआई का उपयोग करके एक myan-env नामक पर्यावरण के साथ myApp नामक बीनस्टॉक एप्लिकेशन पर तैनात/myApp से।403 एसएसएल

मुझे लगता है कि स्टैटिक फ़ाइलें पथ /.ebextensions/myApp-env.config में सही सेट है:

option_settings: 
    "aws:elasticbeanstalk:container:python:staticfiles": 
    "/static/": "flaskApp/static/" 

और मैं एडब्ल्यूएस वेब console-> पर्यावरण> Configurations-> सॉफ़्टवेयर विन्यास में देख सकते हैं कि

StaticFiles: /static/=flaskApp/static/ 

इसलिए पथ सेटिंग समस्या का कारण प्रतीत नहीं होती है।

तो जब मैं अपने आवेदन के लिए वेब पेज खोलने मैं, पेज CSS और JS लापता देखने के बाद से स्थिर निर्देशिका से सब कुछ एक 403 निषिद्ध प्रतिक्रिया मिलती है:

GET http://myApp-dev.elasticbeanstalk.com/ [HTTP/1.1 200 OK 174ms] 
GET http://myApp-dev.elasticbeanstalk.com/static/bootstrap-3.3.5-dist/js/bootstrap.min.js [HTTP/1.1 403 Forbidden 55ms] 
... 

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

क्या कोई इस समस्या को हल करने के बारे में जानता है?

उत्तर

0

यदि उपयोगकर्ता सभी उपयोगकर्ताओं द्वारा देखने योग्य नहीं हैं तो मालिक/समूह रूट होना अप्रासंगिक हो सकता है। सुनिश्चित करें कि वे सभी स्थिर फ़ाइलों पर chmod 664 चलाकर सभी के लिए सुलभ हैं।

+0

क्षमा करें मैंने अपने प्रश्न में यह नहीं कहा कि स्थिर डीआईआर और फाइल अनुमतियां अभी भी 755 हैं। मैं इसे जोड़ने के लिए अब सवाल संपादित कर दूंगा। –

0

मुझे लगता है कि मुझे समस्या मिली है। मैं ईबी SSH द्वारा निरीक्षण किया गया था सिर्फ समझने के लिए क्या हो रहा था और मुझे लगता है कि "EC2 उपयोगकर्ता" मैं एडब्ल्यूएस मशीन में लॉग इन किया गया देखा जा सकता था (सीडी आदेश चलाकर) पहुँच निर्देशिका

/opt/python/current/app 

लेकिन ec2- तक प्रयोक्ता को अनुमति के कारण डीआईआर

/opt/python/current/app/flaskApp 

तक पहुंचने की अनुमति नहीं थी।

जबकि flaskApp में निहित स्थिर dirs और फ़ाइलों को अभी भी 755 पर अनुमतियां थीं, मैंने देखा कि flaskApp dir (जिसमें स्थिर डीआईआर शामिल है) 744 था (जो मैंने सोचा था ठीक है)। तो मैंने flaskApp dir अनुमतियों को 755 में बदल दिया और यह काम किया: अब स्थिर फाइलें लोड हो गई हैं!

जिस तरह से मुझे संदेह है कि यह अनुमति सेट उत्पादन के लिए अच्छा है। विकल्प डीआईआरएस को ढांचा बनाने के लिए हो सकता है ताकि स्थैतिक flaskApp dir की उपनिर्देशिका न हो, जिससे फ्लास्कएप डीआईआर अधिक रूढ़िवादी अनुमतियों पर सेट होने पर स्थिर डीआईआर सेट को 755 पर रखने की अनुमति मिलती है।