web-dev-qa-db-ja.com

WSGI構成のApacheは、/ staticまたは/ media(Django)からの画像を提供せず、403を返します

ApacheサーバーにWSGI/Djangoを設定しましたが、すべて正常に動作します(html、css)が、pngなどの画像ファイルを要求しようとすると、403 Forbiddenが返されます。構成は次のとおりです。

sites-available/default

WSGIScriptAlias / /var/djangoblog/myDjangoBlog/wsgi.py

<Directory /var/djangoblog/myDjangoBlog>
<Files wsgi.py>
    Order deny,allow
    Allow from all
</Files>
</Directory>

Alias /robots.txt /var/www/robots.txt
Alias /favicon.ico /var/www/favicon.ico

Alias /static/ /var/djangoblog/static/
Alias /media/ /var/djangoblog/media/

<Directory /var/djangoblog/static>
    Order allow,deny
    Allow from all
</Directory>

<Directory /var/djangoblog/media>
    Order allow,deny
    Allow from all
</Directory>

また、httpd.confでallow from allを試みましたが、運はありませんでした。

手伝っていただけませんか?

1
FLamparski

ほとんどの場合、これはposix-permissions-issueまたはselinux-context-issueです。問題のpngファイルがWebサーバーのユーザー/グループに読み取り可能で、パーミッション755であることを確認します。selinuxコンテキストを確認するには、「ls -RZl/var/djangoblog」を試して、リストされているコンテキストが提供されるファイルと提供されないファイルについても同じです。

その後、これははるかに少ない可能性があります。 Apacheはデフォルトでは疑わしいファイルをフィルタリングしているかもしれませんが、あなたがどのディストリビューションを使用しているかわからない巨大なオープンソースの荒野では、それは可能性です。 (debian、CentOS?)

Httpd.confおよびconf.d /のようなファイル/ディレクトリ(Apacheディレクティブを含むもの)をチェックしてください。特に、<FilesMatch ".(gif|jpg|jpeg|png)$">などのpngファイルのリクエストに一致して拒否する可能性のある行を確認してください。これらのApacheグローバルファイルは、/ media///エイリアスが偶発的に含まれている場合、sites-enabled/defaultインスタンスもオーバーエイリアスしている可能性があります。

1
rhoyerboat