使用mod_wsgi在Apache上部署Django项目

django-600x600由于对Apache的不熟悉,部署Django项目时遇到了一些问题,经过搜索终于解决了。记录下来,以供参考。

本文的环境为Ubuntu 14.04,Python 3.4,Django 1.7。

文中Django项目名称为 MyProj,主机名为 domain.com,Web文件目录为 /var/www,Django项目根目录为 MyProj,所谓的项目根目录,是指执行 django-admin.py startproject命令创建的以项目名字命名的目录,即该目录下有manage.py文件。
MyProj目录位于 /var/www/domain.com目录下。

安装

以下命令完成Apache与mod_wsgi的安装。

创建虚拟主机与WSGI文件:

在Apache上部署Django项目的关键,是让Apache知道根据特定的请求寻找特定的wsgi文件,由wsgi文件告诉mod_wsgi如何处理这个请求。

创建Apache的虚拟主机文件 /etc/apache2/sites-available/domain.com.conf,内容如下:

这个文件告诉了Apache应该将请求转发给mod_wsgi模块。下面将创建wsgi文件告诉mod_wsgi模块如何处理该请求。

wsgi文件位于 /var/www/domain/MyProj.wsgi,内容如下:

这里要注意被注释掉的两行代码,网上找到的配置的例子都是用的这两句,但是在该版本的Django上报错,替换为后面良好代码后问题解决(见参考链接)。

接下来,在Apache中启用该虚拟主机,并重新加载Apache。命令如下:

配置Django的静态内容

在虚拟主机的配置文件中添加与Django静态文件目录相关的配置。

在Django项目的settings.py中设置相关变量:

重新加载Apache服务器使修改生效:

至此,在Apache上部署Django项目所需的最基本配置已经完成了。

参考链接

https://www.digitalocean.com/community/tutorials/using-mod_wsgi-to-serve-applications-on-ubuntu-12-04
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/
http://stackoverflow.com/questions/26083761/django-rest-mod-wsgi-and-apache-integration-problems

发表评论

您的电子邮箱地址不会被公开。