在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

  

在浏览器输入

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"

  

 
												

通过CGI实现在Html页面上执行shell命令的更多相关文章

  1. 在 Jenkins Windows Agent 节点上执行 Shell 命令

    Jenkins 在 Windows agent 上执行shell 命令,听起来很有意思,以下方法可以在 Jenkins 中执行一些简单的 shell 脚本,如果是复杂脚本就交给 Linux agent ...

  2. python中执行shell命令的几个方法小结

    原文 http://www.jb51.net/article/55327.htm 最近有个需求就是页面上执行shell命令,第一想到的就是os.system, os.system('cat /proc ...

  3. python中执行shell命令的几个方法小结(转载)

    转载:http://www.jb51.net/article/55327.htm python中执行shell命令的几个方法小结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014- ...

  4. 关于在页面上执行sql语句

    在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句. html代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  5. Acrobat 无法在本页面上执行OCR识别

    下载的电子书有时不能选中,或作黄色标记,在用acrobat pro作文本识别时,报 Acrobat 无法在本页面上执行OCR识别 解决方法 参照 http://jingyan.baidu.com/ar ...

  6. PHP在linux上执行外部命令

    PHP在linux上执行外部命令 一.PHP中调用外部命令介绍二.关于安全问题三.关于超时问题四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍在PHP中调用外部命令,可以 ...

  7. 利用ganymed-ssh2远程执行其它Linux机器上的shell命令

    实际应用中,有时候需要从web管理界面上,远程去启动其它linux主机上的程序,利用ssh协议可以方便的满足这一需求.事实上hadoop架构中,从nn上启动dn时,就是利用了免密码ssh登录.gany ...

  8. c++ cgi执行shell命令l发送qq邮件mailx

    #include <cstdlib> //随机数 #include <iostream> #include <cstdio> //popen函数调用的需要 #inc ...

  9. python(6)-执行shell命令

    可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen*          --废弃 popen2.*           --废弃 commands.* ...

随机推荐

  1. Dockerfile RUN, CMD & ENTRYPOINT

    Dockerfile RUN, CMD & ENTRYPOINT 在使用Dockerfile创建image时, 有几条指令比较容易混淆, RUN, CMD, ENTRYPOINT. RUN是在 ...

  2. (匹配 Hopcroft-Karp算法)Rain on your Parade -- Hdu --2389

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2389 不能用匈牙利,会TEL的,用Hopcroft-Karp Hopcroft-Karp课件 以前是寻找 ...

  3. dxbarmanager生成传统下拉式样的菜单

    传统菜单 //创建一个dxSubItem,相当于创建一个主菜单项 dxBarSubItem := TdxBarSubItem.Create(Self); dxBarSubItem.Caption := ...

  4. redis分布式集群3种架构方案

    集群方案: 1. 主从高可用(该方案就是单实例形式,只是为了保证数据的安全,对于用户数据少,业务的前期可以采用,目前我司缓存架构就是采用该方案) 2. 客户端分片(典型代表:Jedis.自主写分片算法 ...

  5. jenkins修改时区

    查看jenkins目前的时区 访问http://your-jenkins/systemInfo,查看user.timezone变量的值 默认是纽约时间 修改时区 查https://wiki.jenki ...

  6. C# GetHashCode、Equals函数和键值对集合的关系

    C# GetHashCode.Equals函数和键值对集合的关系 说明 HashCode:Hash码.特性:两个值,相同的的值生成的Hash肯定相同,Hash不同的值肯定不同. 下面一张图中,只有和“ ...

  7. .Net Core IFormFile 始终为空的问题

    之前获取上传文件都是使用Request.Form.Files获取,直到这次改成定义形参 IFormFile时才遇到这个问题. // POST api/values [HttpPost] public ...

  8. Visifire图表

    引用DLL: WPFToolkit WPFVisifire.Charts.dll WPFVisifire.Gauges.dll 1.柱状图 代码: public void BindChart1() { ...

  9. 十一、linux文件系统权限详解

    对于文件系统权限,我们前面已经讲解了一部分,这里就不在重复了. 1.修改文件权限有两种,一种是数字.一种是字母 (chmod 的修改只能是属主或者root) 数字: 修改目录权限和目录内所有文件的权限 ...

  10. jzoj100029

    陪审团制度历来是司法研究中的一个热议话题,由于陪审团的成员组成会对案件最终的结果产生巨大的影响,诉讼双方往往围绕陪审团由哪些人组成这一议题激烈争夺. 小 W 提出了一个甲乙双方互相制衡的陪审团成员挑选 ...