Bir wsgi grafit komut dosyasına erişirken istemcinin reddedilmesi


16

Mac OS X 10.7 aslanımda grafit kurmaya çalışıyorum, WSGI üzerinden python grafit komut dosyasını çağırmak için apache kurdum, ancak erişmeye çalıştığımda, apache'den ve hata günlüğünden yasaklıyorum .

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

Komut dosyalarına httpd.conf dosyasında izin verildiğini ve dosyanın izinlerini kontrol ettim, ancak doğru görünüyorlar. Erişim için ne yapmam gerekiyor? Aşağıda, neredeyse grafit örneği olan httpd.conf yer almaktadır.

<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>

Yardım edebilir misin?

Yanıtlar:


24

Apache 2.4 olduğundan Require all granted, gerekli:

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

Apache 2.2'ye kadar şunları yazabilirsiniz:

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

Yükseltme notlarına bakın .

Apache 2.4'te eski (2.4 öncesi) yönergeleri kullanmak için mod_access_compat öğesini etkinleştirebileceğinizi unutmayın . İlk sorunun nedeni olarak bunu hızlı bir şekilde ekarte etmek yararlı olabilir, ancak açıkçası, geçişi Requireyeterince kolaydır, bu modülü sadece ertelemek için kullanmanın bir anlamı yoktur.


3
Sadece ihtiyacınız olabilirRequire all granted
chrishiestand


0

Kayıp:

<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>

Ayrıca ihtiyacınız yok:

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

Bu 'SetHandler None' şeyler eski mod_python şeyleridir ve mod_wsgi için gerekli değildir.


1
mediatakma ve <Directory>gerekli? contrib/adminDjango 1.4 kurulumumda bulabildiğim tek dizin bir mediaalt dizin içermiyor .
Richard Barnett

Sorununuzun aynı olduğunu varsaymayın. Tüm ayrıntılarınızı içeren yeni bir soru gönderin.
Graham Dumpleton

Teşekkürler Graham; Asıl bir sorunum yok çünkü Graphite mediatakma adı dahil ederken iyi çalışıyor gibi görünüyor & <Directory>. Sorunlara isabet ederse yeni bir soru soracağım.
Richard Barnett

0

Yürütme izinlerini ayarlamak benim için düzeltti:

chmod u+x graphite.wsgi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.