Mac OS X 10.7ライオンにグラファイトをセットアップしようとしています。WSGIを介してpythonグラファイトスクリプトを呼び出すようにApacheをセットアップしましたが、アクセスしようとすると、 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>
アップグレードノート を参照してください。
Apache 2.4で mod_access_compat を有効にして古い(2.4より前の)ディレクティブを使用できることに注意してください。これを最初の問題の原因としてすぐに除外したい場合に便利ですが、率直に言って、Require
への移行は簡単です。このモジュールを使用して延期するだけでは意味がありません。
http://wiki.Apache.org/httpd/ClientDeniedByServerConfiguration
alwaysこれらの理由の1つです。
不足しています:
<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