编译环境:

均是32位版本

Microsoft Visual Studio 10.0

Microsoft SDKs v7.1

Apache2.4

Python3.4

mod_wsgi-4.5.0


要求:

1 Apache和Python都是32位或者都是64位,

2 Apache和Python是相同版本的C++编译器编译的

3 使用和上述相同版本的C++编译器编译mod_wsgi

必须同时满足才能成功

说明:  VC9==VS2008或VC10==VS2010

    Python 2.6 or 2.7  --  VC9

    Python 3.3 or 3.4  -- VC10

    


编译过程

解压mod_wsgi-4.5.0.zip,进入win32目录,有如下的mk文件

ap22py26-win32-VC9.mk
ap22py27-win32-VC9.mk
ap22py32-win32-VC9.mk
ap24py26-win32-VC9.mk
ap24py26-win64-VC9.mk
ap24py27-win32-VC9.mk
ap24py27-win64-VC9.mk
ap24py32-win32-VC9.mk
ap24py32-win64-VC9.mk
ap24py33-win32-VC10.mk
ap24py33-win64-VC10.mk
ap24py34-win32-VC10.mk
ap24py34-win64-VC10.mk

这里我们需要的是 ap24py34-win32-VC10.mk ,修改里面的内容

APACHE_ROOTDIR = D:\IT\Apache24       #修改Apache和Python的根目录位置

PYTHON_ROOTDIR = C:\Python34
PYTHON_VERSION = include common-VC10.mk

CMD中设置临时的环境变量

set path=C:\Program Files\Microsoft SDKs\Windows\v7.\Bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;

set include=C:\Program Files\Microsoft SDKs\Windows\v7.\Include;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;

set lib=C:\Program Files\Microsoft SDKs\Windows\v7.\Lib;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib;

#注意path和=之间不能有空格,还有path最后一个IDE别少了,否则会找不到其目录下的 mspdb100.dll

现在可以在CMD中编译了

cd /path/to/win32

nmake -f ap24py34-win32-VC10.mk install

等待编译结束,会在win32目录生成mod_wsgi.so,同时在Apache的modules目录生成mod_wsgi-py34-VC10.so,两个文件时一样的。


安装Django

pip install django==1.9              已经安装过旧版本的也可以升级到最新版本: pip install --upgrade django

测试使用:

在D:\WebRoot\DjangoProject目录下CMD命令运行:

django-admin  startproject  mysite     创建工程

cd mysite

python3 manage.py runserver            运行服务器

浏览器127.0.0.1:8000出现It worked!说明OK

修改mysite/wsgi.py 该文件是Apache找到Django工程的接口

#!C:\Python34\python.exe     #否则会报错:wsgi.py is not executable; ensure interpreted scripts have "#!" or "'!" first line

import os

import sys      #添加这三行,可解决 ImportError: No module named 'mysite' 错误  WSGIPythonPath /path/to/mysite.com不管用,还不知道为啥。。。
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) 

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 

application = get_wsgi_application()

配置wsgi.py

LoadModule wsgi_module modules/mod_wsgi-py34-VC10.so       #加载模块

WSGIScriptAlias / "D:/WebRoot/DjangoProject/mysite/mysite/wsgi.py"     # / 表示根路径(base url),即输入http://127.0.0.1/时会找到wsgi.py来进入django工程 

<Directory "D:/WebRoot/DjangoProject/mysite/mysite">         设置wsgi.py所在目录的权限
  setHandler wsgi-script
  Options ExecCGI
</Directory>
Django官方文档给的方法不知道为啥会报错: End of script output before headers: wsgi.py

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com <Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

启动Apache服务

浏览器127.0.0.1显示Django的It worked!说明Apache成功加载了django工程!

Windows编译安装mod_wsgi,配合使用Django+Apahce的更多相关文章

  1. Windows 编译安装 nginx 服务器 + rtmp 模块

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  2. Windows编译安装OpenSSL

    windows下使用vs2008中的nmake编译安装openssl的脚本build.bat: echo off & color 0A :: 项目名称 set PROJECT=openssl ...

  3. ubuntu 编译安装 mod_wsgi

    在编译过程中遇到一些问题,记录下来方便别人使用. step1: 下载.windows下面会有编译好的包,Ubuntu没有需要自己编译. 地址: https://github.com/GrahamDum ...

  4. n2n windows 编译安装文件

    n2n安装 n2n原理编译版下载,可直接使用:windows下vpn客户端 n2n_v2_linux_x64 n2n_v2_Win32TAP网卡驱动 #linux环境编译yum install -y ...

  5. Windows编译安装使用cephfs客户端

    本文介绍如何将cephfs映射到windows的一个盘上,以磁盘映射的方式访问cephfs. 1.下载必要安装包 tdm-gcc:(安装时选32位)https://sourceforge.net/pr ...

  6. GNURadio For Windows编译安装脚本v1.1.1发布

    GNURadio也能在Windows上运行了,安装GNURadio时,会自动化下载一系列powershell脚本,在源里进行build.然后它依赖为64位原生二进制文件,使用Visual Studio ...

  7. Windows下安装Python3和Django

    下载python3 首先去 python的官网 下载最新稳定版的python3, 我下载的时候python3的最新版本是3.6.5. 亦可点击 此链接 直接下载. 安装python3 傻瓜式安装,注意 ...

  8. windows中安装pip,setuptools,django等

    1,安装Python3.6 (下载exe文件,双击安装)      注意设置环境变量,让Python的在任意位置都可以执行 .Python 下载地址:https://www.python.org/do ...

  9. Ubuntu 编译安装 nginx

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

随机推荐

  1. 关于WM_NCHITTEST消息

    我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案 ...

  2. NFS挂载故障卡死的问题

    NFS挂载故障卡死的问题 默认是硬的,改成软的.比如:mount -t nfs -o rw,vers=4,noacl,nocto,noatime,nodiratime,rsize=131072,wsi ...

  3. CentOS修复“OpenSSL Heartbleed漏洞”方法

    转载 http://www.coolhots.net/article/229.shtml

  4. CCleaner(著名清理软件) 5.21.5700 中文免费版(著名清理软件) 5.21.5700 中文免费版

    软件名称: CCleaner(著名清理软件) 5.21.5700 中文免费版著名清理软件(CCleaner)软件语言: 多国语言授权方式: 免费软件运行环境: Win 32位/64位软件大小: 5.6 ...

  5. oracle日期的处理

    字符长转换为日期,有两种写法 SELECT date'2016-06-03' FROM dualselect to_date('2016-06-03','yyyy-mm-dd') from dual ...

  6. Flask -- 消息闪现、错误处理

    flash 可以在任何需要的地方添加,类似于print from flask import flash @app.route('/') def index(): flash('You are in h ...

  7. IOS把图片缓存到本地的几种方法

    把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. 一.把图片转 ...

  8. linux脚本Shell之awk详解

    一.基本介绍1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的.awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个 ...

  9. Ubuntu基本命令--apt, dpkg

    一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 …; (2)修复安装:apt-get -f install so ...

  10. Storm官方帮助手册翻译(下)

    使用其他语言编写Bolt Bolt可以使用任意语言编写.用另外一种语言编写Bolt来作为子进程运行.Storm会在标准输入输出的基础上使用Json来与子进程通信.通信协议之需要一个100行的适配器库, ...