部署django - Apache + mod_wsgi + windows

1、环境

2、安装apache 32位
 
3、安装mod_wsgi
注意,因为apache是32位的,所以mod_wsgi也应该选择32位的。mod_wsgi的官网在这里(https://code.google.com/p/modwsgi/)。但是因为没有windows编译版本(自己编译几乎都是以失败告终),所幸在这里可以下载到编译版本(http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi),我们选择mod_wsgi-3.4.ap24.win32-py3.3.zip进行下载。
下载过mod_wsgi之后,解压之后的文件为“mod_wsgi.so”文件。我们拷贝它到apache安装目录下面的modules文件夹。
光拷贝mod_wsgi.so文件是不行的,我们还需要修改apache的配置文件,让apache知道mod_wsgi的存在。apache的配置文件在apache安装目录下的conf文件夹中的httpd.conf文件。使用记事本或者任何你喜欢的文本编辑器打开它,在文件的最后添加下面的内容并保存就可以了:
LoadModule wsgi_module modules/mod_wsgi/mod_wsgi.so
 
3、配置django project
第一步,你要有个django projec,如果你这是想尝试一下如何部署而没有项目的话,可以在到我的github上下载一个https://github.com/liulixiang1988/python_study_case
django project的目录结构如下:
 
第二步 修改wsgi.py文件
原以为wsgi.py不需要修改的,可是发现如果不将目录所在的文件夹添加到系统路径中,apache还是会报错,因此在wsgi.py添加下面2行
import sys
sys.path.append('E:/git/python_dev/python_study_case/django/mydjangosite') 
其中append的参数就是你的project下的目录

第三步 配置apache/conf/httpd.conf文件
打开httpd.conf文件,在后面添加下面内容
 
#添加映射,其中WSGIScriptAlias /是映射到根目录,如果你需要映射到其他地址,可以改为WSGIScriptAlias /myproject (假设myproject是你想要的地址,那么你可以通过访问localhost/myproject来访问你的网站)
WSGIScriptAlias / E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite/wsgi.py
#指明应用路径,如果你是使用virtualenv,那么还需要添加virtualenv的site-packages路径,中间用":"分隔
WSGIPythonPath E:/git/python_dev/python_study_case/django/mydjangosite:E:/git/python_dev/envs/django/Lib/site-packages
#添加wsgi的读取权限

<Directory E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite>
     <Files wsgi.py>
          Order deny,allow
          Require all granted
     </Files>
</Directory>

 
#这里声明静态文静的映射,这个/static是给django admin的静态文件使用的

Alias /static "C:/Python33/Lib/site-packages/django/contrib/admin/static"
#这里是添加文件夹的读取权限,注意apache2.3以上的读写设置与2.3以下版本有所不同
<Directory "C:/Python33/Lib/site-packages/django/contrib/admin/static/"> 
    <IfVersion < 2.3 >
        Order allow,deny
        Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
        Require all granted
    </IfVersion> 
</Directory>
 
4、启动apache
打开cmd,定位到apache安装目录下面的bin目录,输入httpd就可以启动服务器了,此时你就可以在你的浏览器中访问localhost了
 
5、需要改进的地方
因为工作中使用的是asp.net,对apache不熟,所以对虚拟主机的配置以及mod_wsgi的运行模式的理解还不是特别透彻,也是下一步需要学习的方向。
 
6、致谢与参考
首先感谢那些为提供这些优秀开源工程的程序员们;其次在学习如何部署的过程中,下面两篇文章对我的帮助很大,在这里再次说声谢谢!
 
7、最后
如果你觉得这篇文章对你比较有帮助,或者有什么问题,亦或你想给我介绍一份工作,欢迎给我留言或者email:liulixiang1988@gmail.com 

部署django - Apache + mod_wsgi + windows的更多相关文章

  1. CentOS6下配置Django+Apache+mod_wsgi+Sqlite3过程

    0. 安装环境: CentOs版本:      VMWare中CentOs 6.4 Apache版本:      Httpd 2.2.15 http://httpd.apache.org/ Sqlit ...

  2. Win7下配置Django+Apache+mod_wsgi+Sqlite

    搭建环境: win7 64位 Django 1.8.5 Apache2.4.17 mod_wsgi_ap24py27.so Python2.7.9 1 安装Apache 下载Apache Haus版, ...

  3. Windows环境下,将Django部署到Apache Web Server

    在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. 环境搭建                                   ...

  4. Django部署到Apache Web Server

    Windows环境下,将Django部署到Apache Web Server 在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. ...

  5. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  6. Windows下Apache部署Django过程记录

    Win7/Apache/Python2.7/Django1.9部署Web   环境: Windows7 Apache httpd-2.4.16-win64-VC14 Python2.7.11 Djan ...

  7. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  8. CentOS7.4 部署 Django + Python3 + Apache + Mod_wsgi

    安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Apache: Apache 2.4.6 Mod_wsgi: ...

  9. Flask + mod_wsgi + Apache on Windows 部署成功(随时接受提问)

    前言 说是前言,纯粹就是吐槽. 假设你赶时间.全然能够跳过这部分,我保证不会在这里隐藏不论什么实用的内容. 人上年纪后.可能冲劲不足,我花了大概两周的时间才成功的将flask部署到windows上.还 ...

随机推荐

  1. Windows Azure 上 Linux VM 中的交换空间 – 第 2 部分

    本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 在前一篇文章 Windows Azure 上Linux VM 中的交换空间第 1 部分中,我介绍了在默认情况下, ...

  2. Orz 终于有了自己的博客地址

    新博客地址:http://www.wnjxyk.cn/

  3. Java的接口及实例

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  4. linux c 通过文件描写叙述符获取文件名称

    在linux中每一个被打开的文件都会在/proc/self/fd/文件夹中有记录,当中(/proc/self/fd/文件描写叙述符号:这个文件是符号文件)的文件就是文件描写叙述符所相应的文件. 而re ...

  5. Hibernate - cascade-and -session_state

    cascade属性: 默认为none,代表不级联. 级联是指操作主对象时,对关联的对象也做相同的操作. 可设为:delete, save-update, all, none ...-- 一般是对象只归 ...

  6. C语言:类似linux内核的分等级DEBUG宏(打印宏)

    总结几种log打印printf函数的宏定义 http://blog.chinaunix.net/uid-20564848-id-73402.html #include <stdio.h> ...

  7. c语言中的字符数组与字符串

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y ...

  8. Sqoop mysql 数据导入到hdfs

    1.--direct 模式使用mysqldump 工具,所以节点上需要安装该工具,非direct 模式直接使用jdbc ,所以不需要 具体script参考如下: sqoop import --conn ...

  9. Yii2.0中文开发向导——删除数据

    直接 model 删除 $model = User::find($id); $model->delete(); 带有条件的删除 $connection ->createCommand() ...

  10. oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。

    需要获得一个视图中的字段名称.字段类型.字段长度等信息,该如何编写sql语句.通过select * from user_views可以获得给定用户下所有的视图名称了,但是没找到如何获取视图结构的解决方 ...