在Windows服务器下用Apache和mod_wsgi配置Python应用的教程

 更新时间:2015年05月06日 09:06:43   投稿:goldensun  
这篇文章主要介绍了在Windows服务器下用Apache和mod_wsgi配置Python应用的教程,本文选择以flask框架作为示例,需要的朋友可以参考下

最近开发了一个 Google Analytics 相关的应用,但需要在 Windows 下部署,结合网上的相关经验,最终选择了 apache+mod_wsgi 这样的配置。
修改python应用

   

复制代码 代码如下:
Note that mod_wsgi requires that the WSGI application entry point be called 'application'. If you want to call it something else then you would need to configure mod_wsgi explicitly to use the other name.
    (via: wiki)

因为 mod_wsgi 默认要求入口名称为 application 所以我们需要对自己的 python web 应用做一些修改。

假设我们使用flask 搭建的应用,而默认的入口名称为 app, 建立一个 wsgi_handler.wsgi

import sys, os
sys.path.insert(0, os.path.dirname(__file__)) 
from application import app as application

下载安装 httpd

应用的入口修改好之后,就需要安装 apache 和 mod_wsgi 了,我使用的是32位的系统,64位系统下载的安装包可能 与32位的不同。

打开页面 http://apache.dataguru.cn//httpd/binaries/win32/,下载 httpd-2.2.22-win32-x86-no_ssl.msi, 下载后运行程序,按提示安装,具体过程这里不详述。
安装并配置 mod_wsgi

目前 Windows 下对 python 支持的最好的应该就是 [mod_wsgi][mw] 了。

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

将下载的文件重命名为 mod_wsgi.so 后移动到 apache 的 modules 目录:

在 conf/httpd.conf 中加入如下配置

复制代码 代码如下:
LoadModule wsgi_module  modules/mod_wsgi.so

配置应用 vhost

在 conf/httpd.conf 中启用 vhosts 配置文件

复制代码 代码如下:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

编辑 conf\extra\httpd-vhosts.conf 删除无效的示例代码,并加入应用的配置

复制代码 代码如下:
NameVirtualHost *:5000
<VirtualHost *:5000>
    ServerName localhost
    WSGIScriptAlias / E:\Projects\ga-data\wsgi_handler.wsgi
    <Directory E:\Projects\ga-data>
            Order deny,allow
            Allow from all
    </Directory>
</VirtualHost>

其中 E:\Projects\ga-data 替换成应用真实的路径,尽量避免将应用放在中文或者有包含空格的路径中

接下来启动 Apache 并访问 http://localhost:5000 即可。

相关文章

  • Python数据类型转换实现方法

    Python数据类型转换实现方法

    这篇文章主要介绍了Python数据类型转换的实现,有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可
    2022-12-12
  • Python与C语言分别解决完全平方数问题

    Python与C语言分别解决完全平方数问题

    完全平方数指用一个整数乘以自己例如1*1.2*2.3*3等依次类推,若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。完全平方数是非负数,而一个完全平方数的项有俩个,让我们用程序来练习一下
    2022-03-03
  • 我们为什么要减少Python中循环的使用

    我们为什么要减少Python中循环的使用

    这篇文章主要介绍了我们为什么要减少Python中循环的使用,我将阐述 Python 提供的一些简单但是非常有用的结构,一些小技巧以及一些我在数据科学工作中遇到的案例。我将讨论 Python 中的 for 循环,以及如何尽量避免使用它们,需要的朋友可以参考下
    2019-07-07
  • python中对开区间和闭区间的理解

    python中对开区间和闭区间的理解

    这篇文章主要介绍了python中对开区间和闭区间的理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 浅谈Python2获取中文文件名的编码问题

    浅谈Python2获取中文文件名的编码问题

    下面小编就为大家分享一篇浅谈Python2获取中文文件名的编码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • IDEA安装python插件并配置的详细图文教程

    IDEA安装python插件并配置的详细图文教程

    要在IDEA开发环境中配置Python程序,你需要先安装Python,可以从官网上下载Python的安装包,按照提示进行安装即可,下面这篇文章主要给大家介绍了关于IDEA安装python插件并配置的详细图文教程,需要的朋友可以参考下
    2024-03-03
  • Python字典简介以及用法详解

    Python字典简介以及用法详解

    字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
    2016-11-11
  • 简单介绍Python中的JSON使用

    简单介绍Python中的JSON使用

    这篇文章主要介绍了Python中的JSON使用,示例代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • python pycharm安装第三方包失败(使用pip安装失败)的解决方案

    python pycharm安装第三方包失败(使用pip安装失败)的解决方案

    这篇文章主要给大家介绍了关于python pycharm安装第三方包失败(使用pip安装失败)的解决方案,文中将可能遇到的几种情况都进行了分析并给出了详细的解决方案,需要的朋友可以参考下
    2023-11-11
  • 使用 Celery Once 来防止 Celery 重复执行同一个任务

    使用 Celery Once 来防止 Celery 重复执行同一个任务

    这篇文章主要介绍了使用 Celery Once 来防止 Celery 重复执行同一个任务,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10

最新评论