Wsgi ग्रेफाइट स्क्रिप्ट का उपयोग करते समय क्लाइंट को अस्वीकार कर दिया जाना


16

मैं अपने मैक ओएस एक्स 10.7 शेर पर ग्रेफाइट स्थापित करने की कोशिश कर रहा हूं, मैंने WSGI के माध्यम से अजगर ग्रेफाइट स्क्रिप्ट को कॉल करने के लिए अपाचे को सेट किया है, लेकिन जब मैं इसे एक्सेस करने की कोशिश करता हूं, तो मुझे अपाचे से एक त्रुटि प्राप्त होती है और त्रुटि लॉग में ।

 "client denied by server configuration: /opt/graphite/webapp/graphite.wsgi"

मैंने जाँच की है कि स्क्रिप्ट स्थान httpd.conf, और फ़ाइल की अनुमतियों में अनुमत है, लेकिन वे सही प्रतीत होते हैं। मुझे एक्सेस करने के लिए क्या करना होगा। नीचे httpd.conf है, जो लगभग ग्रेफाइट उदाहरण है।

<IfModule !wsgi_module.c>
   LoadModule wsgi_module modules/mod_wsgi.so
</IfModule>
WSGISocketPrefix /usr/local/apache/run/wigs   
<VirtualHost _default_:*>
    ServerName graphite
    DocumentRoot "/opt/graphite/webapp"
    ErrorLog /opt/graphite/storage/log/webapp/error.log
    CustomLog /opt/graphite/storage/log/webapp/access.log common
    WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
    WSGIProcessGroup graphite
    WSGIApplicationGroup %{GLOBAL}
    WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
    # XXX You will need to create this file! There is a graphite.wsgi.example
    # file in this directory that you can safely use, just copy it to graphite.wgsi
    WSGIScriptAlias / /opt/graphite/webapp/graphite.wsgi
    Alias /content/ /opt/graphite/webapp/content/
    <Location "/content/">
            SetHandler None
    </Location>
    # XXX In order for the django admin site media to work you
    Alias /media/ "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-   packages/django/contrib/admin/media/"
    <Location "/media/">
            SetHandler None
    </Location>
    # The graphite.wsgi file has to be accessible by apache. 
    <Directory "/opt/graphite/webapp/">
            Options +ExecCGI
            Order deny,allow
            Allow from all
    </Directory>
</VirtualHost>

क्या आप मदद कर सकते हैं?

जवाबों:


24

अपाचे 2.4 के बाद Require all grantedसे आवश्यक है:

<Directory /opt/graphite/conf>
    Require all granted
</Directory>

अपाचे 2.2 तक, आप लिखेंगे:

<Directory /opt/graphite/conf>
    Order deny,allow
    Allow from all
</Directory>

उन्नत नोट देखें ।

ध्यान दें कि आप Apache 2.4 में पुराने (पूर्व 2.4) निर्देशों का उपयोग करने के लिए mod_access_compat को सक्रिय कर सकते हैं । यह उपयोगी हो सकता है यदि आप इसे जल्दी से अपने प्रारंभिक मुद्दे के कारण के रूप में शासन करना चाहते हैं, लेकिन स्पष्ट रूप से, प्रवास Requireकाफी आसान है, इस मॉड्यूल का उपयोग केवल इसे स्थगित करने के लिए नहीं है।


3
आपको केवल आवश्यकता हो सकती हैRequire all granted
chrishiestand


0

आप इससे चूक रहे हैं:

<Directory /opt/graphite/webapp>
Order deny,allow
Allow from all
</Directory>

<Directory /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-   packages/django/contrib/admin/media>
Order deny,allow
Allow from all
</Directory>

आपको इसकी आवश्यकता भी नहीं है:

<Location "/content/">
        SetHandler None
</Location>
<Location "/media/">
        SetHandler None
</Location>

वह 'सेटहैंडलर कोई नहीं' सामान पुराना mod_python सामान है और mod_wsgi के लिए आवश्यक नहीं है।


1
क्या mediaउपनाम और <Directory>आवश्यक है? एकमात्र contrib/adminनिर्देशिका जिसे मैं अपने Django 1.4 में पा सकता हूं स्थापना में एक mediaउप-खंड नहीं है ।
रिचर्ड बार्नेट

मान लें कि आपकी समस्या समान नहीं है। अपने सभी विशिष्ट विवरणों के साथ एक ताजा प्रश्न पोस्ट करें।
ग्राहम डम्पलटन

धन्यवाद, ग्राहम; मेरे पास वास्तव में कोई समस्या नहीं है क्योंकि जब mediaउर्फ और सहित ग्रेफाइट ठीक काम करता है <Directory>। यदि समस्याएँ आती हैं तो मैं एक ताज़ा प्रश्न पूछूँगा।
रिचर्ड बार्नेट

0

निष्पादन अनुमतियाँ सेट करना मेरे लिए इसे निर्धारित करता है:

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