Windows+Apache+Python配置简略,2011完整无错版

哥们倒腾了四五年的PHP以后,面对日益严重的桌面软件需求,终于下定决心要开始Python的学习之路了。

去年学了C#的半本书,无奈其较高的学习门槛和跨平台缺陷,最终还是转向了Python,估且算是俺的第二门语言吧。

这几天短暂入门了下,发现Python果然很简单,很多人说Python比较简洁漂亮,我觉得倒是针对C#和Java而言,引入类库十分干练。Python使用缩进进行代码块区分,着实没有其它语言的括号+缩进来得直观。
同时也发现Python对数据的处理,真是十分高效,这块PHP果然是望尘莫及呀。

其实WAP(暂且这么叫吧)配置过程非常简单,麻烦在Apache下的PY模块比较古老,现在最新的3.x版本都不支持,于是只将本地的PY卸载,重新安装了2.5版本,然后去下载了apache的2.2版本进行对应安装。

版本总结:
apache:2.2.x
python:2.5.x
modpython:3.3.x

注意:modpython在Apache官方网站和modpython的官方网站均有下载链接:http://archive.apache.org/dist/httpd/modpython/
以下内容为网上搜索修改,本人增订无错版。

要在Windows平台的Apache中使用Python,当然必须得先安装Apache和Python。Apache我使用的是XAMPP和WAMP,而Python则随便一搜,就可以找到下载链接。

由于这个解决方案要通过安装Apache模块mod_python来实现,而mod_python的当前版本3.3.1只支持Apache 2.2和Python 2.5,所以不得不先缷载已经装好的Python 3.0,重新下载安装了Python 2.5。mod_python是一个Apache模块,它可以将Python解释器嵌入到Apache服务器中(详情可以看这里)。

让Apache支持Python的过程很简单,只要3步。

  1. 下载mod_python模块安装程序(注意文件名后面Python和Apache的版本号要与自己已经安装的版本一致;文件名前面的版本号则是mod_python的,文件名示例:mod_python-3.3.1.win32-py2.5Apache2.2.exe),然后安装,安装向导会自动找到Python路径,但可能需要我们手工指定Apache路径,安装到最后,向导还会提示你如何修改Apache配置文件(参见下一步)并给出了后续步骤的英文说明
  2. 让Apache加载mod_python模块。在Apache安装目录下找到其配置文件apache\conf\httpd.conf,打开,搜“LoadModule”,找到加载模块的地方,然后添加一条语句:LoadModule python_module modules/mod_python.so,重新启动Apache。
  3. httpd.conf的最后添加一条指令,让mod_python来支持py扩展名文件的处理。
    [py]
    <ifmodule python_module>
    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On
    </ifmodule>
    [/py]
  4. 也可以打开AllowOverride All指令,在Htaccess中添加处理指令,然后在htdocs目录下新建一个目录,如:“py”。进入py目录,新建一个文本文件,并命名为“.htaccess”,加入下列3条指令:
    [py]
    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On
    [/py]
    这里第一条指令是将所有URL末尾为.py的请求转发给mod_python处理程序,mod_python接收到请求之后再寻找适当的PythonHandler处理程序。第二条指令只定义了一个mptest处理程序。最后一条是启用Python代码调试功能,以便在代码运行出错时输出Python解释器返回的错误。

完成以上3步之后,就可以编写Python文件并进行测试了。在py目录下新建 mptest.py 文件,打开后添加如下代码:
[py]
from mod_python import apache

def handler(req):
req.content_type = ‘text/plain’

req.write("Hello World!")
return apache.OK.
[/py]
保存。打开浏览器,输入http://localhost/py/mptest.py,回车。看到“Hello World!”了吗?

发表评论

回复 Ferrets 取消回复

评论列表(5)

  • Apple

    2011.12.17 14:12

    Hello World!一下都要写这么多代码才行啊?还是echo ‘Hello World!’;简单,哈哈。

    回复
  • Ferrets

    2011.9.1 22:09

    = =
    找不到所谓的“mod_python安装程序”啊喂……全部都是源码包……

    回复
  • scarbean

    2011.6.19 23:06

    添加完 LoadModule python_module modules/mod_python.so
    之后,apache无法启动,提示:
    the requested operation has failed
    查看系统日志,出现Apache2.2 服务因 函数不正确。 服务特定错误而停止。

    回复
  • 就是上

    2011.5.18 16:05

    有机会会常来看看,博客很不错的说

    回复
  • 王道中强流

    2011.5.17 19:05

    厉害

    回复