apache+mod_wsgi+flask(django类同)部署

前言

国内的相关资料太少了,不管是学习还是处理问题方法,为了让还在

flask官方有关于部署文档,官方提供几种方法只成功这一种,写的太简单http://dormousehole.readthedocs.org/en/latest/deploying/index.html

配置:

Flask + mod_wsgi + Apache

Flask:  一个Python的web框架

mod_wsgi: 一个为Python编写的Apache的FastCGI模块

Apache: 一个类似于IIS的Web服务器

坑一:

如果下面这一点没有做到,整个过程有99%的可能性会失败。Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,它们要么是32位的,要么是64位的,不能混用。

一篇博客文章说道:Python官方站点上下载的Python 3.4就是32位的,并且是用VC10编译出来的。因此在下载Apache和mod_wsgi时,也必须选择32位的用VC10编译出来的版本。我用的最新版本python3.6对应那个版本编译呢?太新了,资料太少了。没有找到对应的信息,其他版本参见: https://github.com/GrahamDumpleton/mod_wsgi/blob/master/win32/README.rst

我从上面连接获取到有价值的信息如下:

Python 2.6 - VC9    Python 2.7 - VC9   Python 3.3 - VC10   Python 3.4 - VC10

后来在这篇文章找到答案:http://blog.csdn.net/chao_8023/article/details/74012324

结果:

i. 这个插件对应的Apache版本是24 VC是14

ii.python版本是3.6

iii. 64位系统

在下载时要选择相应的版本,否则Apache启动时会有问题,自己对应自己的环境进行配置即可,困难的是怎样找到自己所对应的。

步骤:

1、安装Apache

2、安装mod_wsgi

3、安装Python

4、安装Flask

5、创建测试Web App

6、在Apache中配置站点


1. 安装Apache

Apache是开源软件,针对windows环境,它不直接提供编译版本。

可以在http://www.apachelounge.com/download/ 下载适合自己环境的版本。

根据我自己当前的环境,我选择的是Win32 VC10编译出来的Apache2.4版本

将压缩包下载到本机,然后将压缩包里面的Apache24文件夹拷贝到C:\。

当然,你可以拷贝到你的系统的任何位置,但Apache的默认配置是C:\Apache24。

如果你本机运行了IIS,将其关掉。因为IIS和Apache都默认用的是80端口。如果你想配置其它端口,我相信那也不难。等把Flask部署成功后再来捣鼓吧。

打开cmd

>cd c:\

>cd Apache24\bin\

>httpd

然后打开浏览器,输入

http://localhost

如果网页上显示It Works!,那说明apache服务器运行起来了。

2. 安装mod_wsgi

这个module可不能随便装,它是启动Python的关键。

我不知道为什么Flask的官方站点上不把这个模块的安装列出来。只是简单的说了一下httpd.confg的配置,实在是太不负责任了。

从下面这个链接下载mod_wsgi

https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so

这个包里面包含了32位和64位的编译版本,下载完成后选择

mod_wsgi-windows-4.4.12.tar\mod_wsgi-windows-4.4.12\Apache24-win32-VC10\modules\mod_wsgi-py34-VC10.so。

因为我当前安装的Python是32位的,所以必须选择mod_wsgi-py34-VC10.so

将mod_wsgi-py34-VC10.so拷贝至C:\Apache24\modules\下,并更名为mod_wsgi.so。

打开 c:\Apache24\conf\httpd.conf 添加如下配置

LoadModule wsgi_module modules/mod_wsgi.so

重新启动httpd,如果没有报错,说明mod_wsgi模块在apache里面加载成功了。

坑二:

当你发现没有你所对应的版本的时候,尴尬了。我搜索引擎刷爆了也没找到怎样解决。淡定,在下提供第二种方案:

十分感谢这个作者:http://blog.csdn.net/chao_8023/article/details/74012324 

剩下的步骤坑就没有那么多了,踩到了估计是自己的配置文件没有搞完,自己检查一下了。

剩余步骤参照:http://blog.csdn.net/firefox1/article/details/46438769

你可能感兴趣的:(apache+mod_wsgi+flask(django类同)部署)