Hom's Blog


Win7:xampp2.4 安装 python兼容

其实很简单. 但有些网上教程方法失效了, 有些是Django的, 又不想装上去..而且那些也是根据旧教程的..

安装

安装mod_wsgi.so

旧教程会叫你去这个地方下载mod_wsgi. WSGI 是Python用于网络应用的CGI接口. 将编译好的so文件交给Apache就可以在网站调用Python的CGI了. so文件怎么来? 网上说的下载地址已失效(那些都是Apache2.2的,现在是2.4). 但可以找到WSGI的Github官网. 官网教你用pip直接安装, 然而失败了..里面调用APXS没有找到, 官网说需要将Apache的路径export给APXS这个环境变量, 我暂时木有尝试, 下次试试. 因为有更简单方法…

最好的办法是去Release中找到合适的编译好的版本, 例如 4.4.12-编译版. 从包中找到自己Python合适的版本(注意VC版本也要合适, 我用Py27-VC9). 找到后改名为mod_wsgi.so. 放到Apache的modules文件夹, 如C:\xampp\apache\modules. 关闭XAMPP的Apache服务再重开. OK了.. 打开error.log 可能发现有说mod_wsgi编译版本2.7.9, 当前版本2.7.2. 是个Warning, 所以可以不用理会.. 吓死宝宝了..另外还找到这个帖子里介绍UCI的一个地址(Py27,34-35, 下载后用解压工具打开whl文件, 里面可以找到so)也有编译好的版本(这里有好多Python编译好的库..).

[wsgi:warn] [pid 12764:tid 268] mod_wsgi: Compiled for Python/2.7.9+.
[wsgi:warn] [pid 12764:tid 268] mod_wsgi: Runtime using Python/2.7.2.

如果需要自行编译, 可以参考: mod_wsgi win32安装官方说明. 说白了就是make一下…

配置httpd.conf

在一堆LoadModule里面(<IfModule unixd_module> 前面)在添加下面一句话让Apache加载新安装的模块:

LoadModule wsgi_module modules/mod_wsgi.so

如果要支持py结尾的文件, 需要修改AddHandler cgi-script .cgi .pl .asp 这个配置添加适配(追加.py):

AddHandler cgi-script .cgi .pl .asp .py

还有说要修改Options Indexes FollowSymLinks的, 但现在貌似默认就是下面这个了不用改.

Options Indexes FollowSymLinks Includes ExecCGI

就这么多了, 可以运行了..

如果要安装django,可以参考让XAMPP支持Python及Django

运行

写一个py文件或者cgi文件, 运行一下:

例如:

#! /usr/bin/env python
# -*- coding: UTF-8 -*-

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

然后发现运行不起来, 有72002报错:

[cgi:error] [pid 12764:tid 1728] (OS 2)The system cannot find the file specified. : [client ::1:2578] couldn’t create child process: 720002: index.py

这个问题, 是因为apache不知道该用什么程序运行这个cgi.

我们一般写法是#! /usr/bin/env python, 在window/linux/mac一般都通用. 然而apache很土..需要其window上的真实路径. 所以, 应该修改顶部一句话为: #! "C:/Python27/python.exe"

再运行试试吧~

如果要使Python支持MySQL, 需要安装: MySQL for Python. 可以test一下import MySQLdb看看有木有安装.



◆ 本文地址: http://platinhom.github.io/2016/02/10/win7-xampp2.4-python/, 转载请注明 ◆

前一篇: xampp:自装phpMyAdmin失败(或连不上)
后一篇: iframe跳转的攻防:防止子页面自动跳转


Contact: Hom / 已阅读()
Source 类别: IT  标签: Internet  Python  Server