题外提醒:
1、本人有强迫症,且死要面子。所以不到完全迫不得已,不会“骚扰”身边的大佬,这让我在这破事上浪费了三四天,虽然最终对其理解更为深刻,但投入和产出严重不成比例,希望大家不要学我。脸皮厚一点,啥都解决了。
*但这种独自解决问题的畅快,别人又怎能理解呢? :p

2、暂不想写的太详细,网上相关的文章也很多,我也会给大家贴链接的,如果有详细的需求,请在下面留言区留言。若需求较多,再考虑写一个详细版的。

3、由于这次安装是几个巧合凑一块了,并且网上的内容很多是过时的,(而且用的是Windows不是Linux和Unix也很烦)所以异常艰辛,我算是踩过坑了,不想让后来者再踩,写出来希望能给大家一点帮助!

4、请结合文中链接阅读本文


**

正文:

**
1、下载Python我就不说了,我用的是Python27
2、Apache当然是在官网上下载啦。下载教程:http://jingyan.baidu.com/album/29697b912f6539ab20de3cf8.html?picindex=2
我在下载时发现

貌似是2.2系列的已经到最后一版了(end-of-life),为了以后的需求,我选择了2.4的版本,这也为我之后的一个坑埋下了伏笔。
3、像安装一般软件一样一路点下去就安好了Apache,打开Apache的文件夹后应该是这样的
这里的各个文件夹代表什么呢?我挑几个重要的讲一下:

  • bin:命令行操作文件夹,使用cmd使要在此文件夹路径下发出命令
  • cgi-bin:一般CGI文件就放在这里
  • conf:配置、参数文件夹
  • htdos:二级目录,其他css,JavaScript等文件放在这里
  • logs:日志,其中error.log文件很重要,这是你进行不下去时,找到下一线索的重要途径

别的就请大家自己探索了,和本文关联不大

4、配置httpd. conf
给大家几个相关的链接,我就不用再复述了
http://www.cnblogs.com/biyuting/p/5986287.html
http://jingyan.baidu.com/article/0eb457e53c019f03f1a905c7.html

请注意几点:
5、Define SRVROOT “/Apache24”这一行:
最近版本的Apache好像是不用再改SRVROOT就可以了,但我没有试,不能确定,这里暂不讨论。我就按需要改的来。我的改法是:Define SRVROOT “D:/Apache24” 。改法很多,很多网上教程把这一句注释掉或删掉,然后把文件中所有的${SRVROOT}都改成自己电脑的绝对路径了,其实没那么麻烦,全改还容易错,并且如果以后要更改${SRVROOT},就会很麻烦。这是没有理解语法造成的。第一句是定义SRVROOT,所以以后的${SRVROOT}都等同于”D:/Apache24”,所以完全不必改动。

6、我在更改listen端口时,发生了件很诡异的事:我已经把80改为了8081,但是当我用浏览器访问时,不仅localhost:8081进入了页面,localhost也可以进入页面!连接两天都这样,直到第三天才突然发现localhost无法进入页面了。我现在还没琢磨清楚为什么,怎么会在端口只有一个8081的情况下,同时这两个都可以访问?欢迎各位讨论!

7、配置Directory时有个大坑:你在别人的教程中可能会看到这两行代码:

Order allow,deny
Allow from all  

这是访问控制语句,但可惜的是,只有2.2版本的支持这样的语句,到2.4版本就变了,具体请详见http://blog.csdn.net/pzqingchong/article/details/52702575

8、使用cmd要以管理员身份打开

9、写下你的第一段CGI代码:(来自菜鸟教程)

#!/usr/bin/python3print ("Content-type:text/html")
print ()                             # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello Word - 我的第一个 CGI 程序!</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>')
print ('</body>')
print ('</html>')

10、将你的xxxx.py文件放到cgi-bin文件夹后要给它755权限,而在Windows环境下,我们只需右键,找到属性,在安全中选中“完全控制”即可。详见http://blog.csdn.net/a1083595345/article/details/52371677

11、当你把这一切都搞定,可能获得的仍是500错误页面。你查看error.log,发现有如下错误: 系统找不到文件 [client ::1:52335] couldn’t create child process: 720002: first.py [client ::1:51592] AH01223: couldn’t spawn child process: D:/Apache24/cgi-bin/first.py 这时我们回顾9中的那段代码
第一行:

#!/usr/bin/python3

或许你刚开始学Python,就有人或书告诫你务必在每段代码的开头都加上一句这个,但是很可惜地告诉你,这是在Linux/Unix环境下的代码,Windows环境下的代码应该为:(我一直找到了这个才恍然大悟https://stackoverflow.com/questions/6611311/running-a-py-file-in-browser 该楼主和我遇到了同样的问题,还好有好心人帮助了他,也帮助了我)

#!C:\Python27\python.exe

12、现在你应该可以用浏览器顺利打开你的CGI啦!:)


其他:

请一定利用好error.log,由于篇幅有限,我没有一一列举我遇到的问题时的log日志报错内容,但请你一定关注它,并积极利用网络寻找线索和答案!

祝各位有所收获,欢迎各位讨论!
谢谢!

Apache+Python+Windows进行CGI编程新手上路时的各种坑相关推荐

  1. python cgi库_《Python 数据库 GUI CGI编程》

    1. 上次写在前面,我们介绍了一篇关于开始使用Python.今天我们将介绍Python数据库,GUI, CGI编程和Python和Python的区别.2.连接到数据库标准Python数据库接口是Pyt ...

  2. [转载] 第一个Python CGI编程和配置

    参考链接: Python中的CGI编程 1.什么是CGI CGI(Common Gateway Interface),通用网关接口,它是一段运行在服务器上的程序.CGI程序可以是Python脚本.PE ...

  3. 新手上路注意事项及驾车技巧

    新手上路总则 其实,每一个新手都曾经历过上路的窘迫,如果能够顺利度过最初实习期的话,将会受益终生.每一位驾驶员都经历过初次上路的忐忑不安,眼盯前方,双手紧握转向盘,身体僵直前倾,远离前车,缓慢前行,起 ...

  4. 新手学习【菜鸟教程】Python CGI编程的几个坑(Windows系统)

    写在前面的话 作为新手,在window10系统中学习Python CGI编程,按照教程却发现无法运行,终于解决各种坑,记录在次供小白参考,也欢迎大神指正. 下面我分安装.配置和调试两部分来讲. 安装 ...

  5. python必备基础代码-新手上路必学的Python函数基础知识,全在这里了(多段代码举例)...

    原标题:新手上路必学的Python函数基础知识,全在这里了(多段代码举例) 导读:函数是Python中最重要.最基础的代码组织和代码复用方式.根据经验,如果你需要多次重复相同或类似的代码,就非常值得写 ...

  6. python cgitb_python CGI 编程实践

    文章更新于:2020-03-05 一.Web服务器的支持与配置 在进行CGI编程之前,请确保Web服务器支持CGI,它被配置为处理CGI程序.所有对由HTTP服务器执行的CGI程序保存在一个预先配置的 ...

  7. Windows内核新手上路2——挂钩shadow SSDT

    Windows内核新手上路2--挂钩shadow SSDT 文章核心内容:安全软件窗口保护.安全输入.截屏保护的一些思路.挂钩NtUserFindWindowEx.NtUserGetForegroun ...

  8. Python基础教程(十):CGI编程、MySQL数据库

    Python CGI编程 什么是CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如: ...

  9. python Web 之基石 - - CGI 编程 (基于python3)

    一 CGI 编程之前缀篇 1CGI 入门简介 2Apache2 的安装以及配置运行环境搭建 二 开始 CGI programming 之旅 HTTP相关知识讲述 - - - first demo 随后 ...

最新文章

  1. 浏览器渲染阻塞与优化-详解推迟加载、异步加载。
  2. qt 手动设置控件的位置
  3. 大牛推荐的15本学习数据分析挖掘的好书
  4. Java Socket编程 文件传输(客户端从服务器下载一个文件)
  5. Linux使用locate命令查找,Linux如何使用locate命令查找数据(2)
  6. 独辟蹊径,Python打造新型基于图像隐写术的C2通道
  7. cisco packet tracer实验案例-重置路由器ENABLE特权密码
  8. python中pd是什么意思_python怎么用pd导入xlsx
  9. java catch用法_java – 如何避免使用try … catch块
  10. windows安装python3_windows下同时安装python2和python3
  11. 时间序列分析:使用Pandas探索能源数据集
  12. c语言 众数,C语言实现查找一组数中的众数
  13. 服务器网卡光模块位置,收藏:详解服务器、磁盘和网卡知识
  14. 【定位原理揭秘第三期】室内定位技术原理揭秘
  15. 第14届军警狙击手世界杯:中国队包揽全部冠军
  16. Sansen精粹阅读笔记(1)OTA和OCA (电流放大器)
  17. Centos8 磁力链BT地址
  18. 函数模板的特例化(专用化)以及类型含有const的特殊情况
  19. 源码编译安装git过程记录
  20. 0111总结-函数与极限-高等数学

热门文章

  1. 用Pytest+Allure生成漂亮的HTML图形化测试报告
  2. XMind Zen 2020 10.3.1注册使用
  3. 《算法图解》学习笔记(十):K 最近邻算法(附代码)
  4. 阿里云mysql主从有延迟怎么办_MySQL主从数据库同步延迟问题解决
  5. 线程学习基础(1):单线程爬虫和多线程爬虫的效率比照
  6. 数字人民币跟第三方支付的区别
  7. 华为车BU机器学习算法工程师面试经验
  8. 2.淘宝购买行为分析项目——Hive查询、Sqoop的介绍与使用、SQLyog的安装与使用、Superset的概述与安装使用
  9. vscode下载很慢的解决办法
  10. 5G NR - 38.101-1协议笔记(一)