我遇到的情况
今天照着菜鸟教程做cgi编程,结果,忙了一上午都是500,服务器内部出现错误,已经准备放弃了,转战下一个模块了,下午睡醒同事说他的解决了,我赶快让他帮我解决了一下,终于也好了!
我的做法
做cgi编程之前要先下载apache,我的是python3.8,下载的apache24
我是在官网下载的: https://www.apachehaus.com/cgi-bin/download.plx.
下载好之后修改apache中的conf下的httpd.conf中的几个地方,
比如:
Listen 801(端口号);
Define SRVROOT “D:\app\apache\apache\Apache24”(apache位置);
LoadModule cgi_module modules/mod_cgi.so(去掉前面的#);
<Directory />
AllowOverride All
Require all denied
</Directory>
<Directory "${SRVROOT}/cgi-bin">
AllowOverride None
Options Indexes FollowSymLinks ExecCGI
Require all granted
Require host ip
</Directory>
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
AddHandler cgi-script .cgi .pl.py
【这些东西我照着网上的教程改了有十几遍,每个教程都不一致】
我的现在能够运行大概是这些改到了这个样子
我的.py文件
#!C:/Program Files/Python38/python.exe
# -*- coding: utf-8 -*-
print ("Content-type:text/html\n\n")
print () # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello Word!</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word!</h2>')
print ('</body>')
print ('</html>')
然后问题就来了,所有教程配到这一步就都ok了,他们的.py文件放到cgi-bin中就可以运行了,我很不理解,我的一直是服务器内部错误,然后我改一次apache配置重启一次,改一次改一次,都不行。
直到下午,同事来帮我,怎么做了呢?
解决方案
先停止apache的运行,对,没错,服务停掉,然后到Apache24的目录中按着shift+右键,按着shift右键会多出一个----“在此处打开powershell窗口”—,点这个,
然后出现这个:
输入: python -m http.server --cgi 801
801是我的端口号,
再打开网页http://localhost:801/cgi-bin/test.py
就成功了访问了,真是世事艰难啊,真他妈曲折。
好了,今天的今日份崩溃python-cgi初体验就到这里了哦,我非常期待我的下一篇博客尽快上线。