Obtendo o cliente negado ao acessar um script de grafite wsgi

15

Estou tentando configurar o grafite no meu Mac OS X 10.7, configurei o apache para chamar o script de grafite python via WSGI, mas quando tento acessá-lo, recebo uma permissão do apache e o log de erros.

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

Eu verifiquei que a localização dos scripts é permitida no httpd.conf e nas permissões do arquivo, mas elas parecem corretas. O que eu tenho que fazer para ter acesso? Abaixo está o httpd.conf, que é quase o exemplo da grafite.

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

Você pode ajudar?

    
por Dr BDO Adams 07.12.2012 / 14:57

4 respostas

23

Desde o apache 2.4, Require all granted é obrigatório:

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

Até o apache 2.2, você escreveria:

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

Veja as notas de atualização .

Note que você pode ativar mod_access_compat para usar as diretivas antigas (pre 2.4) no apache 2.4 . Pode ser útil se você quiser descartar isso rapidamente como a causa do seu problema inicial, mas, francamente, a migração para Require é bastante fácil, não há sentido em usar este módulo apenas para adiá-lo.

    
por 27.01.2014 / 10:51
4

link

É sempre uma dessas razões.

    
por 07.12.2012 / 15:52
0

Você está faltando:

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

Você também não precisa:

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

Esse material 'SetHandler None' é um material antigo do mod_python e não é necessário para o mod_wsgi.

    
por 08.12.2012 / 02:52
0

Definir permissões de execução corrigiu para mim:

chmod u+x graphite.wsgi
    
por 01.11.2013 / 11:15