IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    让Apache支持python编写的cgi程序

    armsword发表于 2014-11-22 15:34:07
    love 0

    需要用C 写个CGI,所以,我先用python简单的写了一点代码,来验证自己的想法。由于第一次写cgi程序,所以配置环境不是太熟,遇到了一些小问题,折腾了个把小时才搞明白,这里记录下让python支持cgi时,Apache配置文件的设置。

    1.先创建cgi-bin文件夹

    Ubuntu下的Apache默认WWW地址为/var/www,在此目录下创建cgi-bin文件夹,即/var/www/cgi-bin

    2.使用python编写cgi程序,我们简单的写个hello world吧,hello.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/python
    print "Content-type:text/html\r\n\r\n"
    print ''
    print ''
    print 'Hello Word - First CGI Program'
    print ''
    print ''
    print '

    Hello Word! This is my first CGI program

    '
    print ''
    print ''

    然后将cgi-bin文件夹下的内容权限设置为755,即chmod 755 hello.py

    3.访问hello.py,即127.0.0.1/cgi-bin/hello.py

    这时候会出现 错误提示:You don’t have permission to access /cgi-bin/ on this server.

    4.修改apache配置文件,使其能访问cgi-bin下文件
    sudo vim /etc/apache2/sites-available/default ,更改为下面所示,然后sudo service apache2 restart重启apache

    1
    2
    3
    4
    5
    6
    7
    8
    #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    #<Directory "/usr/lib/cgi-bin">
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    Directory>

    5.继续访问hello.py,会发现服务器把hello.py里面的内容显示出来,而没有解析
    添加AddHandler,使apache支持python写的cgi程序,如下所示,注意,此步骤可以与步骤四一块完成。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    #<Directory "/usr/lib/cgi-bin">
    <Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    Directory>
    AddHandler cgi-script .py

    然后重启apache服务器,访问hello.py,显示:

    Hello Word! This is my first CGI program

    这样apache就支持python写的cgi程序了。

    
                        
                    


沪ICP备19023445号-2号
友情链接