在编程学习网站学习Python语言,学习到cgi编程章节遇到了一些小问题,课程介绍的为linux环境的Apache配置方法,具体如下:
【linux环境配置方法:】
在进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序。
Apache 支持CGI 配置:
设置好CGI目录:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。
CGI文件的扩展名为.cgi,python也可以使用.py扩展名。
默认情况下,Linux服务器配置运行的cgi-bin目录中为/var/www。
如果你想指定其他运行CGI脚本的目录,可以修改httpd.conf配置文件,如下所示:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
在 AddHandler 中添加 .py 后缀,这样我们就可以访问 .py 结尾的 python 脚本文件:
AddHandler cgi-script .cgi .pl .py 其实稍微有一些编程基础的小伙伴,应该很快能根据这一段得知在Windows环境的配置方法,只有路径有一些些区别,具体如下:[Windows环境配置方法:] 1、将:ScriptAlias /cgi-bin/ "/var/www/cgi-bin" 设置为实际的目录如:ScriptAlias /cgi-bin/ "D:/Apache/cgi-bin/"
2、将:<Directory "/var/www/cgi-bin">
AllowOverride None Options None Order allow,deny Allow from all </Directory>中的:<Directory "/var/www/cgi-bin"> 设置为实际目录,如:<Directory "D:/Apache/cgi-bin/">
3、找到:AddHandler cgi-script .cgi之后,去掉前面的#号,并且在后面添加.py,如:AddHandler cgi-script .cgi .py 经过以上配置之后,将编写的python脚本文件,放到Apache目录下的cgi-bin中 在python文件中第一行配置python.exe路径:#!C:\Python3.5.2\python.exe
还有最重要的一点,在所有输出之前,先输出一个头
print("Content-type:text/html\n")
最终的代码如:
#!C:\Python3.5.2\python.exe# -*- coding: UTF-8 -*-print(‘Content-type:text/html\n\n‘)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>‘)
以上算是完成了这个程序的基本配置了,但是配置完成之后,可以会发现出现500错误,Apache的错误日志如:couldn‘t spawn child process: C:/Apache/cgi-bin/CGI_1.py出现这个错误之后,查找网上各种答案,基本上和以上的操作都很类似,查到有些文章中会写应该修改AllowOverride None、Options None为
AllowOverride all、Options all,但是都不能解决,最终才使用过程中,发现当前使用的Windows 10系统,发现,每次修改写入文件,都需要管理员权限,于是,将Apache装载D盘下面,重新试了以上的步骤,就能访问了。访问的结果可能会乱码,但是,文件开头和HTML都已经设置了编码,于是改一下浏览的编码,就能看到不乱码的CGI内容了。
文章参考:http://www.runoob.com/python/python-cgi.html;http://www.zh30.com/windows-apache-cgi-python.html
时间: 2024-10-13 23:55:13