我浪费了大约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 -
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>
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
答案 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
这可能不是最好的实践,但出于开发目的,它为我做了工作