Obtention du refus du client lors de l'accès à un script graphite wsgi

16

J'essaie de configurer le graphite sur mon lion Mac OS X 10.7, j'ai configuré apache pour appeler le script graphite python via WSGI, mais lorsque j'essaie d'y accéder, j'obtiens un interdit 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 ils semblent corrects. Que dois-je faire pour avoir accès. Ci-dessous se trouve 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 m'aider?

Dr BDO Adams
la source

Réponses:

24

Depuis apache 2.4, Require all grantedest 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 les notes de mise à niveau .

Notez que vous pouvez activer mod_access_compat pour utiliser les anciennes directives (antérieures à 2.4) dans apache 2.4. Cela peut être utile si vous souhaitez rapidement exclure cela comme la cause de votre problème initial, mais franchement, la migration vers Requireest assez facile, il n'est pas utile d' utiliser ce module juste pour le reporter.

Bwire
la source
3
Vous n'aurez peut-être besoin que deRequire all granted
chrishiestand
0

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:

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

Ce truc 'SetHandler None' est un vieux truc mod_python et n'est pas nécessaire pour mod_wsgi.

Graham Dumpleton
la source
1
L' mediaalias est-il <Directory>nécessaire? Le seul contrib/adminrépertoire que je peux trouver dans mon installation Django 1.4 ne contient pas de sous- mediarépertoire.
Richard Barnett
Ne présumez pas que votre problème est le même. Postez une nouvelle question avec tous vos détails spécifiques.
Graham Dumpleton
Merci, Graham; Je n'ai pas vraiment de problème car Graphite semble bien fonctionner lors de l'inclusion de l' mediaalias & <Directory>. Je vais poser une nouvelle question si elle rencontre des problèmes.
Richard Barnett
0

La définition des autorisations d'exécution l'a corrigé pour moi:

chmod u+x graphite.wsgi
Gerry
la source