如何部署Django 1.6、Python 3.3和Apache?

6 投票
2 回答
782 浏览
提问于 2025-04-17 20:42

首先,我正在使用的操作系统是Fedora 20。

看起来关于使用Django和Apache的每种方法要么已经过时,要么根本没有文档。

我尝试过mod_wsgi,并且已经安装好了,但文档之间存在冲突。有的说你应该使用django.wsgi(旧版Django有这个),而更新的文档则说你应该使用wsgi.py。我尝试了这两种方法,以及在httpd.conf文件中各种不同的设置,但都不行,最后总是返回“禁止访问”。而且当我尝试运行Hello World脚本时,总是返回内部服务器错误。

然后我尝试了uwsgi。我可以用它启动一个uwsgi服务器,这似乎基本上和使用python3 manage.py runserver的方式类似,所以我为Apache安装了mod_proxy_uwsgi模块,但关于如何使用这个模块完全没有文档,所以我在httpd.conf中做了类似ProxyPass / wsgi//localhost:8000/的设置。结果也是返回内部服务器错误。

我想要的主要答案是:我到底该如何将一个使用Python 3的Django 1.6项目部署到Apache上?

2 个回答

1

这个问题已经解决了。原来是因为 SELinux 在阻止 httpd 访问我的 Django 项目。我只用了下面这个命令,然后重启了电脑:

setsebool -P httpd_read_user_content 1
setsebool -P httpd_enable_homedirs 1

这样就可以让 MOD_WSGI 正常工作,方便部署了。

1

这个方法对你没用吗?它是在Django 1.6的文档里提到的……不过,Python 3.x在很多方面还是有点不稳定。

你可以查看这个链接了解更多信息:https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/

撰写回答