Windows下使用Apache运行本地Python脚本和访问html教程

最近学习到Python的cgi编程,捣鼓了一番,把自己的学习经验放出来。

一、安装Apache2.4服务器

你需要去官网下载。

地址:https://www.apachehaus.com/cgi-bin/download.plx或者http://www.apachelounge.com/download/。这两个地址一般情况下都是可以的。如果第一个地址下载提示 403 Forbidden,那就换第二个地址一般没什么问题的。

下载ok后解压,我的安装解压目录是D:\Program Files\ApacheHttpdServer (目录随意请不要使用中文),使用cmd切换到Apache的bin目录下,使用httpd -k install安装服务。如果成功便会提示installed,如图:

Windows下使用Apache运行本地Python脚本和访问html教程_第1张图片

当然一般刚下载的文件是无法安装成功的。因为我们需要修改httpd.conf文件。

二、修改httpd.conf文件

进入D:\Program Files\ApacheHttpdServer\Apache24\conf文件夹下,找到httpd.conf使用好一点的文本编辑器打开。凡是#开头的都是注释,所以请要么删除,要么无视。

我们需要修改几个关键的元素。

1.ServerRoot,这个必须是正确的目录,它是Apache2.4的主目录。Listen 指示服务器的端口号,默认80,如果你的程序会占用那就修改掉好了。我的修改方案如下:

ServerRoot "D:/Program Files/ApacheHttpdServer/Apache24"

Listen 80

2.DocumentRoot,这个必须是正确的文件夹目录,末尾不能带/。这个目录用来存放静态资源页面,我们要访问的html文件就放在这下面。我的修改方案如下:

DocumentRoot "D:/Program Files/ApacheHttpdServer/Apache24/htdocs"

3.标签元素,其内部ScriptAlias指令规定Apache2.4访问二进制脚本文件的目录,这个很重要,一定要修改,我的修改方案如下:


    ScriptAlias /cgi-bin/ "D:/Program Files/ApacheHttpdServer/Apache24/cgi-bin/"

4.Directory标签元素,约定脚本文件的访问目录和权限,这个也很重要,一定要修改。我的修改方案如下:


    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
    Require all granted

注意,是Require all granted而非Require all denied,错误使用后者将可能导致访问被拒绝。且Directory的目录和ScriptAlias的目录一致。

5.标签元素,内部关键指令AddHandler用来预订Apache2.4可以访问哪些格式的脚本文件。因此我们要加上.py


    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddHandler cgi-script .cgi .py

其他没有提到的都可以无视掉。温馨提示,所有修改动作都是在conf文件已有的元素上进行的覆盖操作,你需要找到需要修改的元素然后覆盖。请不要直接将我的方案copy后追加到conf文件后面。

好了,如果第一步服务未安装成功,请再次尝试使用httpd -k install安装服务。然后打开ApacheMonitor.exe点击start就ok了,如果start仍然失败请依次检查我提到的5点看是否修改正确。

如果ok你将看到下图,它是绿色的。

Windows下使用Apache运行本地Python脚本和访问html教程_第2张图片

此时浏览器直接输入localhost,将看到It works。代表服务启动ok

Windows下使用Apache运行本地Python脚本和访问html教程_第3张图片


三、编写python文件和html文件

我的代码hello.py如下:

#!D:\Programs\Python\Python36\python.exe
#-*- coding:UTF-8 -*-
print ("Content-type:text/html")
print ()
print ('')
print ('')
print ('')
print ('Hello Word - 我的第一个 CGI 程序!')
print ('')
print ('')
print ('

Hello Word! 我是来自菜鸟教程的第一CGI程序

') print ('') print ('')

注意前两段的两个#号可不是注释哦,第一段#指令用来指定使用哪个python解释器来运行脚本(如果你还没有安装python那肯定跑不了的哦)。第二段指定脚本的输出编码。

我的test.html文件代码如下:


Hello Word - 我的第一个 CGI 程序!


Hello Word! 我是来自菜鸟教程的第一CGI程序

然后将hello.py丢进cgi-bin目录,将test.html丢进htdocs目录。如下

Windows下使用Apache运行本地Python脚本和访问html教程_第4张图片

Windows下使用Apache运行本地Python脚本和访问html教程_第5张图片


然后分别输入http://localhost/cgi-bin/hello.py 和 http://localhost/test.html将访问成功

Windows下使用Apache运行本地Python脚本和访问html教程_第6张图片

Windows下使用Apache运行本地Python脚本和访问html教程_第7张图片

完结,谢谢观看。

你可能感兴趣的:(Java基础,Python基础)