web-dev-qa-db-fra.com

Obtenir le client refusé lors de l'accès à un script de graphite WSGI

J'essaie de configurer Graphite sur mon mac OS X 10.7 Lion, j'ai configuré Apache pour appeler le python Script de graphite via WSGI, mais lorsque j'essaie d'y accéder, je reçois une interdiction d'Apache et dans le journal des erreurs.

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

J'ai vérifié que l'emplacement des scripts est autorisé dans httpd.conf et les autorisations du fichier, mais elles semblent correctes. Que dois-je faire pour avoir accès? Ci-dessous est le httpd.conf, qui est presque l'exemple de graphite.

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

Pouvez-vous aider?

16
Dr BDO Adams

Depuis Apache 2.4, Require all granted est requis:

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

Jusqu'à Apache 2.2, vous écririez:

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

Voir Mise à niveau de notes .

Notez que vous pouvez activer mod_access_compat pour utiliser les directives anciennes (PRE 2.4) dans Apache 2.4. Cela pourrait être utile si vous souhaitez exclure rapidement cela comme la cause de votre problème initial, mais franchement, la migration vers Require est suffisamment facile, il n'ya pas de point à l'aide de ce module juste pour le reporter.

24
Bwire
4
adaptr

Tu es absent:

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

Vous n'avez pas non plus besoin de:

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

"Sethadandler Aucun" Stuff est vieil mod_python et pas nécessaire pour mod_wsgi.

0
Graham Dumpleton

Définition des autorisations d'exécution corrigée pour moi:

chmod u+x graphite.wsgi
0
Gerry