32

我在主目录中创建了 Django 项目,因此它位于主目录中。

设置

Django Verison  : 1.5.1
Python Version  : 2.7.5
mod_wsgi Version: 3.4
Home Directory  : /home/aettool

的内容/home/aettool/aet/apache/django.wsgi

import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'aet.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

联系方式httpd.conf

WSGIScriptAlias / /home/aettool/aet/apache/django.wsgi

<Directory /home/aettool/aet/apache>
Order deny,allow
Allow from all
</Directory>

错误error_log

[Sun Jul 21 02:01:30.923364 2013] [authz_core:error] [pid 21540:tid 1193011520] [client 10.20.17.184:51340] AH01630: client denied by server configuration: /home/aettool/aet/apache/django.wsgi

的内容urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

的权限/home/aettool/aet : 775

的权限/home/aettool/aet/apache : 755

的权限django.wsgi file : 664

我在浏览器上遇到错误403 Forbidden You don't have permission to access / on this server.

请帮我配置一下。

编辑

现在我正在通过改变前进

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory />
    Order deny,allow
    Allow from all
</Directory>

所以,这肯定与httpd.conf文件配置有关,但我担心我只在该文件中添加了 5 行并且无法找出问题所在。

4

5 回答 5

39

显然这是一个与 Apache 2.4 和更早版本有关的问题。您需要在 apache 配置中替换:

Allow from all

Require all granted

在该<Files wsgi.py>部分

于 2013-10-18T11:31:02.473 回答
16

您可以使用以下内容:

<Directory /home/aettool/aet/apache>
  <IfVersion < 2.3 >
   Order allow,deny
   Allow from all
  </IfVersion>
  <IfVersion >= 2.3>
   Require all granted
  </IfVersion>
</Directory>
于 2013-10-29T03:02:41.107 回答
4

这已在 Django 票 19319 中报告:

https://code.djangoproject.com/ticket/19319

您的 Apache 配置现在需要以下文件wsgi.py

<Directory /path/to/your/wsgi-script>
<Files wsgi.py>
  Order deny,allow
  Allow from all
  Require all granted
</Files>
</Directory>
于 2015-05-15T16:31:10.497 回答
2

还有另一个问题:

检查您的 httpd.conf 文件以获取以下配置:

<IfModule mime_module>
      AddHandler cgi-script .cgi .pl .py
</IfModule>

这将导致错误。

.py 不得配置为 CGI 脚本

于 2015-02-08T14:24:11.753 回答
-1

Linux 系统通常不允许其他用户读取主目录内部,并且由于 Apache 以 root 身份运行,mod_wsgi 将无法访问主目录内部。尝试:

sudo chmod 755 /home/<username>
于 2020-04-18T12:58:10.277 回答