web-dev-qa-db-ja.com

wsgiグラファイトスクリプトにアクセスするとクライアントが拒否される

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>

手伝ってくれますか?

16
Dr BDO Adams

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への移行は簡単です。このモジュールを使用して延期するだけでは意味がありません。

24
Bwire
4
adaptr

不足しています:

<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には必要ありません。

0

実行権限を設定すると、それが修正されました:

chmod u+x graphite.wsgi
0
Gerry