zoukankan      html  css  js  c++  java
  • 通过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"
    

      

     




  • 相关阅读:
    Nova官方资料入口处
    LeetCode 有效的数独
    LeetCode 两数之和
    LeetCode 移动零
    安装OpenStack Queens版本的教程推荐
    删除排序数组中的重复项
    (转载)OpenStack client 调用分析
    (转载)基于Linux C的socket抓包程序和Package分析
    Maven的具体使用和优点
    关于 Javascript 学习,有哪些好的博客或者网站推荐?
  • 原文地址:https://www.cnblogs.com/rosepotato/p/8931777.html
Copyright © 2011-2022 走看看