在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. CI框架下的PHP增删改查总结

    controllers下的 cquery.php文件 <?php class CQuery extends Controller { //构造函数 function CQuery() { par ...

  2. RocketMQ 自定义文件路径

    一 .1. 修改store路径2. 修改logs路径3. 修改rmq_bk_gc.log路径4. 修改rmq_srv_gc.log路径二 .1. 获取正确的rocketmq 源码2. 地址:https ...

  3. 声音处理(Cool Edit)

    平直化处理 上升半音

  4. java并发编程实战:第八章----线程池的使用

    一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...

  5. OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口

    OpenGl中的Nurbs B样条曲面的封装的GLU的NURBS的接口 创建一个NURBS对象: GLUnurbs* gluNewNurbsRenderer (void); //创建一个NURBS对象 ...

  6. Math类的三个方法比较: floor() ceil() round()

    public class Test { public static void main(String[] args) { double d1 = 3.4, d2 = 3.6; //正数 double ...

  7. tomcat启动时就频繁gc和full gc

    一个小业务,流量并不大,功能也很简单,spring framework+mybatis+quartz,一启动就看到gc的频次和full gc的频次非常高: 4.202: [Full GC 4.202: ...

  8. 开源WebGIS实施方案(三):Shapefile数据导入到PostGIS

    PostGIS新版中提供了一个可视化的工具,用于Shapefile数据的导入和导出,极大的方便了使用者的操作. 创建空间数据库 以具有创建用户权限的账号登录pgAdminIII,连接到数据库 创建一个 ...

  9. Creative Cloud 应用程序 | 直接下载

    https://helpx.adobe.com/cn/download-install/kb/creative-cloud-apps-download.html

  10. TSQL--集合处理

    UNION ALL 返回两个结果集中所有的行,返回结果集中会存在重复行 UNION 返回两个结果集中去重的行,返回结果集中无重复行 INTERSECT 返回两个结果集都有的行,返回结果集中无重复行 E ...