Windows编译安装mod_wsgi,配合使用Django+Apahce
编译环境:
均是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的更多相关文章
- Windows 编译安装 nginx 服务器 + rtmp 模块
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
- Windows编译安装OpenSSL
windows下使用vs2008中的nmake编译安装openssl的脚本build.bat: echo off & color 0A :: 项目名称 set PROJECT=openssl ...
- ubuntu 编译安装 mod_wsgi
在编译过程中遇到一些问题,记录下来方便别人使用. step1: 下载.windows下面会有编译好的包,Ubuntu没有需要自己编译. 地址: https://github.com/GrahamDum ...
- n2n windows 编译安装文件
n2n安装 n2n原理编译版下载,可直接使用:windows下vpn客户端 n2n_v2_linux_x64 n2n_v2_Win32TAP网卡驱动 #linux环境编译yum install -y ...
- Windows编译安装使用cephfs客户端
本文介绍如何将cephfs映射到windows的一个盘上,以磁盘映射的方式访问cephfs. 1.下载必要安装包 tdm-gcc:(安装时选32位)https://sourceforge.net/pr ...
- GNURadio For Windows编译安装脚本v1.1.1发布
GNURadio也能在Windows上运行了,安装GNURadio时,会自动化下载一系列powershell脚本,在源里进行build.然后它依赖为64位原生二进制文件,使用Visual Studio ...
- Windows下安装Python3和Django
下载python3 首先去 python的官网 下载最新稳定版的python3, 我下载的时候python3的最新版本是3.6.5. 亦可点击 此链接 直接下载. 安装python3 傻瓜式安装,注意 ...
- windows中安装pip,setuptools,django等
1,安装Python3.6 (下载exe文件,双击安装) 注意设置环境变量,让Python的在任意位置都可以执行 .Python 下载地址:https://www.python.org/do ...
- Ubuntu 编译安装 nginx
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
随机推荐
- chapter9_2 管道与过滤器
一个关于协同程序的经典示例就是“生产者-消费者”的问题. 一个不断产生值,一个不断消费这些值.比如: function producer() while true do local x = io.re ...
- Openjudge-计算概论(A)-求满足条件的3位数
描述: 编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为: 1.该数为完全平方数 2.该数至少有2位数字相同 例如,100同时满足上面两个条件. 输入输入一个数n,n的大小不超过实 ...
- gcc及其选项详解 【转载】
1.简介: gcc是gnu旗舰产品,目前基本上就是和unix捆绑在一起分发的.这个东西功能强大,但是有多达上千个选项,其用户手册也有将近一万行.虽然其中的多数选项平时很少用到.但是不管装软件还是写程序 ...
- c#设计模式-单例模式(面试题)
c#设计模式-单例模式 单例模式三种写法: 第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, public class Singleton { private static Singleto ...
- CodeFroces--Good Bye 2016-B--New Year and North Pole(水题-模拟)
B. New Year and North Pole time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Windows线程同步(下)
线程同步三:事件 CreateEvent:Creates or opens a named or unnamed event object. HANDLE WINAPI CreateEvent( _I ...
- Chapter 2 Open Book——4
I walked to Biology with more confidence when, by the end of lunch, he still hadn't showed. 经过中午饭之后我 ...
- /usr 的由来及/usr目录结
/usr 的由来及/usr目录结构 本文转自Delectat.com讨论中,大部分观点认为: usr 是 unix system resources 的缩写: usr 是 user 的缩写: us ...
- time_t
所在的头文件为 time.h 定义为: #ifndef __TIME_T #define __TIME_T /* 避免重复定义 time_t */ typedef long time_ ...
- svn回滚
有时会因为某些原因会错误提交某些文件: 1,官方版本库升级,自己的库代码也要跟着升级,但发现使用官方代码后有问题,代码需要回滚到可用的版本: 2,拷贝一个项目的代码到另外一个项目,把整个代码目录也拷贝 ...