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,如图:

当然一般刚下载的文件是无法安装成功的。因为我们需要修改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.<IfModule alias_module>标签元素,其内部ScriptAlias指令规定Apache2.4访问二进制脚本文件的目录,这个很重要,一定要修改,我的修改方案如下:

 

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "D:/Program Files/ApacheHttpdServer/Apache24/cgi-bin/"
</IfModule>

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

<Directory "D:/Program Files/ApacheHttpdServer/Apache24/cgi-bin/">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

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

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

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

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

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

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

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

 

 

三、编写python文件和html文件

我的代码hello.py如下:

#!D:\Programs\Python\Python36\python.exe
#-*- coding:UTF-8 -*-
print ("Content-type:text/html")
print ()
print ('<html>')
print ('<head>')
print ('<meta charset="gb2312">')
print ('<title>Hello Word - 我的第一个 CGI 程序!</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>')
print ('</body>')
print ('</html>')

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

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

<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Hello Word - 我的第一个 CGI 程序!</title>
</head>
<body>
<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>
</body>
</html>

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

 

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

完结,谢谢观看。

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alphathur

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值