0

我浪费了大约 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)Permission denied:访问/拒绝

环境:

蟒蛇 2.62

Windows Azure 上的 Centos 6.2

阿帕奇/2.2.15

姜戈 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()
4

2 回答 2

0

当我从 Django 1.3 升级到 1.4 时,我使用了守护进程(我没有使用旧版本的 Django)。这对我有用的 Django 1.4wsgi.py文件由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.

于 2012-10-02T23:03:44.043 回答
0

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

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

于 2012-10-03T01:55:44.280 回答