zoukankan      html  css  js  c++  java
  • 编写我的第一个CGI代码——python学习

    在编程学习网站学习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.2python.exe

    还有最重要的一点,在所有输出之前,先输出一个头
    print("Content-type:text/html
    ")
    最终的代码如:
    #!C:Python3.5.2python.exe
    # -*- coding: UTF-8 -*-
    print('Content-type:text/html ')
    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

    
    
    
     





  • 相关阅读:
    storm中的Scheduler
    开启flume的远程调试功能
    修改flume源码,使其HTTPSource具备访问路径功能
    非功能测试——效率测试
    python100例
    awk命令
    shell正则表达式
    python的垃圾回收机制
    冯-诺伊曼体系结构
    jmeter读取文件内容做变量
  • 原文地址:https://www.cnblogs.com/biyuting/p/5986287.html
Copyright © 2011-2022 走看看