Я пытаюсь настроить графит на моем Mac OS X 10.7 lion, я настроил apache для вызова сценария графита python через WSGI, но когда я пытаюсь получить к нему доступ, я получаю запрет от apache и в журнале ошибок .
"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>
Вы можете помочь?
Начиная с apache 2.4, Require all granted
необходимо:
<Directory /opt/graphite/conf>
Require all granted
</Directory>
До apache 2.2 вы должны написать:
<Directory /opt/graphite/conf>
Order deny,allow
Allow from all
</Directory>
Видеть примечания к обновлению.
Обратите внимание, что вы можете активировать mod_access_compat использовать старые (до 2.4) директивы в apache 2.4. Это может быть полезно, если вы хотите быстро исключить это как причину вашей первоначальной проблемы, но, честно говоря, переход на Require
достаточно просто, нет смысла использовать этот модуль, чтобы просто откладывать его.
http://wiki.apache.org/httpd/ClientDeniedByServerConfiguration
это всегда одна из тех причин.
Вам не хватает:
<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.
Установка разрешений на выполнение исправила это для меня:
chmod u+x graphite.wsgi