• 通过CGI实现在Html页面上执行shell命令


    在mac上配置cgi(不用系统自带的apache cgi.)

    安装cgi
    1. brew update
    
    2. brew install httpd24
    

      

    安装完后,会有如下提示

    DocumentRoot is /usr/local/var/www.

    The default ports have been set in /usr/local/etc/httpd/httpd.conf to 8080 and in
    /usr/local/etc/httpd/extra/httpd-ssl.conf to 8443 so that httpd can run without sudo.

    To have launchd start httpd now and restart at login:
    brew services start httpd
    Or, if you don't want/need a background service you can just run:
    apachectl start


    打开apache
    3. brew services start httpd
    

      

    在浏览器输入
    localhost:8080
    

      

    如果得到 It’works,说明apache运行成功

    brew安装的apache默认端口是8080,mac自带的apache默认端口是80

    修改httpd.conf文件
    添加两行:
    
    LoadModule cgi_module lib/httpd/modules/mod_cgi.so
    LoadModule cgid_module lib/httpd/modules/mod_cgid.so
    
    修改 <Directory "/usr/local/var/www/cgi-bin">标签里的内容如下,ExecCGI 表示在cgi-bin目录下执行cgi脚本,所有的cgi脚本都需要放到改目录下。
    <Directory "/usr/local/var/www/cgi-bin">
        Options ExecCGI  
        AllowOverride None  
        Order deny,allow  
        Allow from all
    </Directory>
    
    取消下面三行的注释:
    AddHandler cgi-script .cgi 
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    
    在AddHandler cgi-script .cgi 后面添加支持的cgi脚本格式, 比如.sh .pl. 由于我这里用shell脚本,所有修改为
    AddHandler cgi-script .cgi .sh

     

    修改权限
    chmod +x /usr/local/var/www
    chmod +x /usr/local/var/www/cgi-bin
    
    重启服务器
    brew services restart httpd
    

      

    在 /usr/local/var/www/cgi-bin 下放置测试脚本delete.sh
    #!/bin/bash
    echo "Content-type: text/html"
    echo ""
    
    # ok, we've sent the header, now send some content
    rm -f $QUERY_STRING
    if [ "$?" -eq 0 ]; then
      echo "Deleted!"
    else
      echo "Delete failed!"
    fi
    

      需要给delete.sh 权限

    chmod +x /usr/local/var/www/cgi-bin/delete.sh
     
    

      在浏览器中打开

    localhost:8080/cgi-bin/delete.sh?1.png
    

      或者用curl

    curl "localhost:8080/cgi-bin/delete.sh?1.png"
    

      

     




  • 相关阅读:
    安装oracle11g服务端
    安装oracle11g客户端
    Python生成requirements.txt方法
    oracle创建新用户并授予权限
    正向代理与反向代理【总结】
    使用Eclipse调试Java程序的10个技巧
    如果长颈鹿哭了,它会不会要哽咽好久
    你应该知道的10种软件工具
    我希望在20岁时就知道的26条时间管理技巧
    Vue使用NProgress (NProgress是页面跳转是出现在浏览器顶部的进度条)
  • 原文地址:https://www.cnblogs.com/rosepotato/p/8931777.html
Copyright © 2020-2023  润新知