wsgi 흑연 스크립트에 액세스 할 때 클라이언트 거부


16

Mac OS X 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

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

'SetHandler None'항목은 오래된 mod_python 항목이며 mod_wsgi에는 필요하지 않습니다.


1
는 IS media별칭 및 <Directory>필요는? contrib/adminDjango 1.4 설치에서 찾을 수있는 유일한 디렉토리에는 media하위 디렉토리 가 없습니다 .
Richard Barnett

문제가 같다고 가정하지 마십시오. 모든 세부 사항이 담긴 새로운 질문을 게시하십시오.
Graham Dumpleton

감사합니다, Graham; media& 가 포함될 때 Graphite가 제대로 작동하는 것처럼 실제로 문제가 없습니다 <Directory>. 문제가 생기면 새로운 질문을하겠습니다.
Richard Barnett

0

실행 권한을 설정하면 해결되었습니다.

chmod u+x graphite.wsgi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.