美文网首页我爱编程
Mac apache 配置python CGI

Mac apache 配置python CGI

作者: 京哥 | 来源:发表于2018-01-12 20:24 被阅读0次

    在mac上配置CGI:搞了两大天,遍寻个大论坛贴吧谷歌百度,教程倒是一大把,但都是这在之前几年的旧东西,现在的鬼技术蹭蹭蹭的升级,早已是面目全非,无奈只能自己摸索着尝试:

    首先根据网上的教程打开你的 /private/etc/apache2/httpd.conf 配置文件,
    这个文件里有三处 Directory :
    在DocumentRoot下面的Directory不需要修改:

    DocumentRoot "/Library/WebServer/Documents"
    <Directory "/Library/WebServer/Documents">
    

    需要修改其他两个<Directory >:

    在第一个 Directory中把内容改成如下:

    <Directory "/Library/WebServer/CGI-Executables">
         AllowOverride None
         Options ExecCGI
         Order allow,deny
         Allow from all
    </Directory>
    

    在第二个 Directory中把内容改成如下:

    <Directory "/Library/WebServer/CGI-Executables">
         Options All
    </Directory>
    

    因为看他们的配置教程都没有明确的说明具体改动的地方,导致我把两个Directory中的内容都改成了这个
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
    结果最后运行起来死都不知道啥问题!

    然后 再修改 #LoadModule cgi_module libexec/apache2/mod_cgi.so,前面有#注释,把#去掉就可以了

    LoadModule cgi_module libexec/apache2/mod_cgi.so
    

    然后修改ScriptAliasMatch,他也是被注释上的,直接把前面的#去掉就好:


    image.png

    接着修改#AddHandler cgi-script .cgi,也是直接把前面的#去掉,然后在后面加上 .py,以便让服务器能解析.py文件:


    image.png

    完成以上配置后重启apache:
    sudo apachectl restart

    最后在 /Library/WebServer/CGI-Executables 的文件夹里新建一个hello.py的文件:
    CGI-Executables 这个文件夹是CGI脚本的根目录,专门存放CGI脚本的地方


    image.png

    hello.py的内容:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    print("Content-type:text/html")
    print('')                      
    print('<html>')
    print('<head>')
    print('<title>Hello</title>')
    print('</head>')
    print('<body>')
    print('<h2>hello CGI</h2>')
    print('</body>')
    print('</html>')
    

    这是目前最新python3.6的输出语法,之前2.x的版本的输出都没有小括号的。
    注:
    //头一行要加上这两句注释,不然会报语法错误
    #!/usr/bin/python
    #-*- coding: UTF-8 -*-

    print("Content-type:text/html")
    print('') //这里的输出空行必须要有,以便浏览器区分head,如果没有这句话;就会爆这个错:Internal Server Error


    image.png

    一开始报这个错。我也不知道是语法错误,后来根据apache 的log才知道是语法错误!!

    最后要给hello.py 设置权限:
    在存放hello.py 的文件夹目录上执行如下命令:

    $: chmod 755 hello.py
    

    最后在浏览器里打开: localhost/cgi-bin/hello.py


    image.png

    至此 完成,其实配置很简单,但是不知道的会绕很多弯路,希望对需要的人有帮助!

    相关文章

      网友评论

        本文标题:Mac apache 配置python CGI

        本文链接:https://www.haomeiwen.com/subject/stxqoxtx.html