如何在Apache下设置Python

2024-12-31 04:02:32
推荐回答(1个)
回答1:

  关于Python,本人不想多说了,如果不知道什么是Python,可以看《什么是Python?》一文。Python可以开发CGI程序,那么在Apache下应如何配置呢?本文只讲述了如何以CGI方式配置Apache,使其支持Python程序。其它方式,如mod_python则不在讨论范围(其实是没配成功:-)。我所使用的系统环境为Windows 98, Apache 1.3.19,Python 2.1版。

准备

  首先检查以下要求是否已经达到:
Apache已经安装,并且可以正常使用
Python已经安装,并且可以正常使用(在我的环境下,Python安装目录为d:\python21)
  好,如果一切正常,下面就开始了。

配置

  修改DocumentRoot

打开Apache安装目录下的conf子目录的httpd.conf文件。可以修改DocumentRoot为"f:/phpsite"。当然你可以按需要改成其它值。

  允许任意目录执行CGI

  这个设置是允许被设目录及其子目录下的CGI程序可以CGI方式运行。在Apache中,尽管你可能已经设置了CGI文件后缀,但是如果未设置允许CGI程序运行选项,则无法运行CGI程序。

  设置f:/phpsite目录属性:

Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all

  其实我并未重新设置新的目录属性,而是将DocumentRoot的目录属性(原来指向Apache安装目录下的htdocs目录,我改成为f:/phpsite了)增加了ExecCGI一项。

  只允许特别目录执行CGI

  也可以只允许特别目录下可以执行CGI程序。与上一步可以同时执行,也可两种任选其一。只要设置:

ScriptAlias /cgi-bin/ "f:/phpsite/cgi-bin/"

  即可。

  增加CGI文件名后缀

  修改 AddHandler cgi-script 一句为 AddHandler cgi-script .cgi .py。即让Apache知道.py的文件为CGI程序

  好了,到此Apache就配置好了,先启动Apache,然后进行测试。

测试

  Python本身不象PHP,不是一种嵌入式脚本(这种脚本比较适合做Web后端程序),所以所有输出要自已做。

1 #!d:/python21/python.exe
2 print "Content-type: text/html"
3 print
4 print "
hello,world!
"

  第1行是让脚本以CGI方式运行必需的(这里是我的环境,记得吗?我前面说了Python是装在d:/python21下的),告诉Apache如何找到此文件的解释程序。

  第2,3行是告诉浏览器输出内容的MIME格式。这里为输出HTML文本。

  第4行,输出"hello,world!"。其实不输出HTML的标记头浏览器也可以正常显示,尽管它不是完整的HTML格式。

  如果测试成功,则一切大功告成。如果不行,听天由命吧(可以给我发信,咱们共同解决)。

后话

  在SourceForge网站上,有一个名字mod_snake的项目。它同mod_python一样提供了针对Apache的Python模块化处理,但是mod_snake支持HTML文档嵌入Python标记,有点象PHP。不过现在它只支持Linux,而没有Windows下的版本。唉,我一定要转到Linux下面去!使用CGI方式调用Python速度不是很快,而如果使用mod_python则速度可能要快几十倍。这个不是我测出来的,是mod_python网站上说的。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦