Django 1.4 mod_wsgi - 403禁止,访问/拒绝

时间:2012-10-02 22:24:41

标签: django mod-wsgi

我浪费了大约3天的时间试图让apache与django合作并且非常沮丧。 我读过

https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

链接之间的配置不同,我怀疑它们现在有点过时了django 1.4 apache日志中面临的错误是

  

(13)权限被拒绝:访问/拒绝

环境:

Python 2.62

Windows Azure上的Centos 6.2

的Apache / 2.2.15

Django 1.4

路径:

/home/craig/django/myproject/myproject/wsgi.py

权限:

/ home /:drwxrwxr-x

/ home / craig /:drwxrwxr-x

/ home / craig / django /:drwxrwxr-x

/ home / craig / django / myproject /:drwxrwxr-x

/ home / craig / django / myproject / myproject /:drwxrwxr-x

/home/craig/django/myproject/myproject/wsgi.py:-rw-r - r -

的http.conf:

DocumentRoot "/var/www/html"

<Directory /> 
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory /home/craig/django/myproject/myproject>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

WSGIScriptAlias / /home/craig/django/myproject/myproject/wsgi.py
WSGIPythonPath /home/craig/django/myproject

<VirtualHost *:80>
ServerName myserver.domain.net
</VirtualHost>

wsgi.py

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

2 个答案:

答案 0 :(得分:0)

当我从Django 1.3升级到1.4时,我使用了守护进程(我没有使用旧版本的Django)。这对我来说是wsgi.py生成的Django 1.4 createprojet文件。这是我的一个配置的简化版本:

Listen 8091

<VirtualHost 127.0.0.1:8091>

  ServerAdmin admin@foobar.com
  ServerName foobar.com

  # Django 1.4 project and virtualenv
  WSGIDaemonProcess foobar python-path=/home/micah/www/foobar.com/foobar:/home/micah/www/foobar.com/venv/lib/python2.6/site-packages
  WSGIProcessGroup foobar
  WSGIScriptAlias / /home/micah/www/foobar.com/foobar/foobar/wsgi.py

</VirtualHost>

我应该注意到Apache支持Nginx代理(因此是虚拟主机的IP地址),而我正在使用虚拟环境(因此python-path)。

答案 1 :(得分:0)

通过运行以下命令禁用SELINUX可立即解决此问题: setenforce 0

这可能不是最好的实践,但出于开发目的,它为我做了工作