目前,Apache和mod_python是在生产服务器上部署Django的最健壮搭配。mod_python 是一个在Apache中嵌入Python的Apache插件,它在服务器启动时将Python代码加载到内存中。

Django 需要Apaceh 2.x 和mod_python 3.x支持。

Apache的配置参见:http://www.djangoproject.com/r/apache/docs/

使用mod_python部署

1.为了配置基于 mod_python 的 Django,首先要安装有可用的 mod_python 模块的 Apache。

2.然后应该有一个 LoadModule 指令在 Apache 配置文件中。 它看起来就像是这样:

LoadModule python_module /usr/lib/apache2/modules/mod_python.so

3.配置Apache,用来定位请求URL到Django应用:

<VirtualHost *:80>        ServerName www.example.com

        <Location "/mysite1">            SetHandler python‐program            PythonHandler django.core.handlers.modpython            SetEnv DJANGO_SETTINGS_MODULE mysite1.settings            PythonAutoReload Off            PythonDebug Off            PythonPath "['/var/www/html/mysite1'] + sys.path"            PythonInterpreter mysite1        </Location>

        <Location "/mysite2">            SetHandler python‐program            PythonHandler django.core.handlers.modpython            SetEnv DJANGO_SETTINGS_MODULE mysite2.settings            PythonAutoReload Off            PythonDebug Off            PythonPath "['/var/www/html/mysite2'] + sys.path"            PythonInterpreter mysite2        </Location>

        [......]</VirtualHost>

它告诉 Apache,任何在 / mysite这个路径之后的 URL 都使用 Django 的 mod_python 来处理。 它 将DJANGO_SETTINGS_MODULE 的值传递过去,使得 mod_python 知道这时应该使用哪个配置。

查看 mod_python 文档获得详细的指令列表。

4.重启Apache,查看Http://www.example.com/mysite:

/etc/init.d/apache2 restart

使用mod_wsgi部署

1.下载安装 mod_wsgi 模块,生成mod_wsgi.so和wsgi.conf

2.在配置中加载模块:

LoadModule python_module /usr/lib/apache2/modules/mod_wsgi.so

3.修改Apache配置文件httpd.conf

<VirtualHost *:80>        ServerName www.example        DocumentRoot /var/www/html/mysite        WSGIScriptAlias / /var/www/html/mysite/apache/django.wsgi        <Directory />                Order deny,allow                Allow from all        </Directory>        <Directory /apache>                Allow from all        </Directory></VirtualHost>

4.创建并配置wsgi的配置文件:

# filename:mysite.apache.django.wsgi
import os, sys

#Calculate the path based on the location of the WSGI script.apache_configuration= os.path.dirname(__file__)project = os.path.dirname(apache_configuration)workspace = os.path.dirname(project)sys.path.append(workspace)os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'os.environ['PYTHON_EGG_CACHE'] = '/tmp'

import django.core.handlers.wsgiapplication = django.core.handlers.wsgi.WSGIHandler()print >> sys.stderr, sys.path    shell>chmod a+x django.wsgi

5.修改Django项目配置文件settings.py:

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'mysite',                             'USER': 'admin',                              'PASSWORD': 'admin123',                          'HOST': '127.0.0.1',                             'PORT': '3306', }}

TEMPLATE_DIRS = (    '/var/www/html/mysite/templates',)

6.重启Apache,访问http://www.example.com/mysite

/etc/init.d/apache2 restart

Apache上部署Django相关推荐

  1. heroku创建linux主机,在 Heroku 上部署 Django 应用

    在 Heroku 上部署 Django 应用 Heroku是一个很棒的平台,它有很多的控件,并且搭建环境相对来说也比较容易.本指南中,我将一步一步指导你在Heroku平台上部署一个简单地Django应 ...

  2. 基于nginx和uWSGI在Ubuntu系统上部署Django项目

    1. nginx 1.1 安装 sudo apt-get install nginx 1.2启动.停止和重启 sudo /etc/init.d/nginx start sudo /etc/init.d ...

  3. 新浪云python示例_在新浪云上部署Django应用程序

    前言 近日,笔者利用空闲时间写了一个简单的在线预约系统,使用的工具包括Python 3.5.1 和 Django 1.9.5 .早就有听说Django响亮的口号,"The web frame ...

  4. Apache下部署Django 的样式问题

    Django项目上线部署到Apache之后,登陆到后台,不出所料的话,一定会出现样式问题,主要原因是因为定位不到样式等文件,需要在httpd.conf中加入如下信息: <VirtualHost ...

  5. 在 Linux 上部署 Django 应用,nginx+gunicorn+supervisor

    如果是新服务器先要进行基本的配置 部署前应用配置 开发环境与生产环境中的应用一般会有两套不同的配置.比如 DEBUG 选项,数据库配置等. 对于 setting.py 文件, 在生产环境中我们要设置 ...

  6. 在Centos8上部署Django环境(Nginx+mysql+uwsgi)

    前言:笔者通过阿里云的学生"在家实践计划"获得了一台2核4G的云ECS实例,并安装了Centos8镜像.于是尝试部署一套Django的生产环境.笔者选择了 Nginx + uwsg ...

  7. Python进阶(三十七)Windows7使用nginx+apache部署django项目

    文章目录 一.前言 二.nginx安装 三.初识fastcgi 一.前言 Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 目前国内各大门户网站已经部署了n ...

  8. 阿里云部署Django项目发送邮件时,端口25,465,587上的坑

    今天在往阿里云上部署Django项目时,遇到一个端口的坑,花了半天终于找到问题所在. 在Django项目中,发送邮件需要在settings.py中做如下的设置: EMAIL_HOST = 'smtp. ...

  9. 使用 Django + Wusgi + Nginx 部署 Django

    如何在生产上部署Django? Django的部署可以有很多方式,采用 nginx+uwsgi 的方式是其中比较常见的一种方式. uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.u ...

最新文章

  1. Oracle中Hint深入理解(原创)
  2. C# 复制幻灯片(包括格式、背景、图片等)到同/另一个PPT文档
  3. 二叉树的非递归遍历(递归和非递归)
  4. 超链接浏览meta name=format-detection/ 的用法
  5. Kubernetes的三种集群外部访问方式及使用场景说明:NodePort、LoadBalancer和Ingress
  6. php mysql插入的数据有引号_php – 由于’引号’的不同,数据没有插入到mysql数据库中...
  7. Node.js 入门详解(一)
  8. linux看mysql日志命令_Linux日志查看之cat 命令使用介绍
  9. 【Golang 快速入门】高级语法:反射 + 并发
  10. H3C交换机配置ACL禁止vlan间互访
  11. 【谈天说地】诋毁中华文化的三大谎言(之三)
  12. java深拷贝和浅拷贝
  13. 如何在DNN4下使用VS2005进行单元测试???
  14. 2016年大数据发展趋势预测
  15. 在Windows系统中安装Go语言
  16. HADOOP的搭建和配置(一)基础环境配置
  17. c语言求球的体积用const,牛客练习赛41 E.球的体积并(计算几何)
  18. javaspringboot面试,挑战华为社招
  19. 视频知识点(14)- 来,咱们聊一聊 I 帧和 IDR 帧的区别
  20. IDA调试修改内存数据

热门文章

  1. 设计模式复习-原型模式
  2. hdu3987 最小割边数
  3. hdu4280 最大流DINIC
  4. JavaScript数组方法大全解
  5. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( LTI 系统单位脉冲响应 | 卷积 | 卷积推导过程 )
  6. 【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )
  7. 【数据挖掘】高斯混合模型 ( 模型简介 | 软聚类 | 概率作用 | 高斯分布 | 概率密度函数 | 高斯混合模型参数 | 概率密度函数 )
  8. 【Android 应用开发】Android 平台 HTTP网速测试 案例 API 分析
  9. vue项目中批量打印二维码
  10. Unity C# Sting.Format的学习