CGI(Common Gateway Interface,通用网关接口)是网络服务器可以将查询传递到专门的程序中并且在网页上显示结果的标准机制。Apache等服务器默认是支持CGI的,只需要修改一下配置文件,有时甚至不需要修改,只需要查看下配置文件中CGI程序被放置在何处,然后只需要在对应的CGI目录中放入你要执行的CGI程序就可以啦。

默认的情况下,也就说你的机器的80端口没有被占用的情况下,其实你需要修改的东西特别少,甚至几乎是不需要动Apache的配置文件的。这样分两种情况来说明配置是如何进行的:

  1. 默认80端口未被占用的情况,cd /etc/apache2进入到Apache的配置文件夹下,会看到site-available目录,这下面存放的是关于本机上配置的虚拟主机的配置信息,以前貌似很多信息都是配置在httpd文件里面的,但是现在好像主要是将这些配置信息配置到site-available目录下的文件里,打开下面的default文件,会看到
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

类似下面的配置,配置所示,你的CGI程序应该放到/usr/lib/cgi-bin目录下,当然,不同的机器安装apache的目录可能不一样,这里也就未必都是相同的,根据自己的机器的具体情况而定。这个信息如果有的话,其实,整个Apache支持CGI的配置就完成啦。

  1. 端口80已经被占用的情况,这时如果想启动APache的话,要么把占用80端口的服务关掉,然后启动Apache,要么,修改APache配置的端口,这里介绍第二种,Apache的端口配置信息在两个文件里,一个是/etc/apache2/ports.conf文件中,将里面的80修改为其他的你的主机未被占用的端口即可。然后需要修改下/etc/apache2/sites-available下面的default文件中的端口号,这样修改完成后,做和上面的1相同的操作即可。

重启一下Apache,使得配置生效。可以使用service apache2 restart或者/etc/init.d/apache2 restart来重新启动Apache服务器。

之后只需要在你的cgi-bin目录下添加可执行的脚本文就可以啦,当然用C语言写的可执行文件也是可以的,比如你可以用一下cgic来试验一下。

当写完自己的cgi程序后,打开一个浏览器访问 http://你的服务器地址:端口号/cgi-bin/你的cgi程序 就可以啦,如果出错,可以查看下错误日志,错误日志的存放地点可以到/etc/apache2/envvars中查看。一般主要是两个错误:1.权限问题 2.你的代码确实有问题。

基本确保了这两个问题不存在啦,就可以顺利的执行你的CGI程序啦!

Linux Apache使用CGI的更多相关文章

  1. Linux服务器---apache支持cgi

    Apache支持cgi  1.打开Apache配置文件httpd.conf,搜索“cgi”,找到下面的一段,去掉“addhandler”前面的“#“,这样就开启了Apache的cgi功能 [root@ ...

  2. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  3. CentOS 6.3 源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而>言都是在它所 ...

  4. Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)

    Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

  5. Which PHP mode? Apache vs CGI vs FastCGI

    Which PHP mode? Apache vs CGI vs FastCGI There are multiple ways to execute PHP scripts on a web ser ...

  6. Linux+Apache+Mysql+Php

    CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境 一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, My ...

  7. linux Apache安装

    原文:linux Apache安装 1.       下载apache,http://httpd.apache.org/download.cgi  通过这个官方网站,我们可以下到最新的版本.现在版本都 ...

  8. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境【转载】

    本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.h ...

  9. CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)

    服务器系统环境:CentOS 6.3 客户端系统环境:Windows 7 ultimate(x86)sp1 简体中文旗舰版 ※  本文档描述了如何在Linux服务器配置Apache.Mysql.PHP ...

随机推荐

  1. springboot+mybatis日志显示SQL的最简单方法

    在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增:logging.level.cn.piesat.mapper=debug 注意:其中cn.pi ...

  2. 容器适配器————stack

    只能访问 stack 顶部的元素:只有在移除 stack 顶部的元素后,才能访问下方的元素. 堆栈操作 top():返回一个栈顶元素的引用,类型为 T&.如果栈为空,返回值未定义. push( ...

  3. Eclipse通过JDBC连接MySQL数据库的步骤(最原始的几个步骤)

    java可以兼容目前市面上所有类型的数据库,主要是因为提供了两个接口,一个用于连接目标数据库,一个用于向数据库中传输SQL命令. Connection接口——连接目标数据库: Statement  接 ...

  4. nowcoder---常州大学新生寒假训练会试----F 大佬的生日礼包(二分)

    链接:https://www.nowcoder.net/acm/contest/78/F 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...

  5. 2-sat问题简记

    关于2-sat问题,这里笔者主要是做一些简记,如要详细了解,可以读一读此dalao的文章:https://blog.csdn.net/jarjingx/article/details/8521690 ...

  6. Python爬取中文页面的时候出现的乱码问题

    一.读取返回的页面数据 在浏览器打开的时候查看源代码,如果在头部信息中指定了UTF-8 那么再python代码中读取页面信息的时候,就需要指定读取的编码方式: response.read().deco ...

  7. postman抓包

    三个问题: 如何安装? 基本了解? 如何使用? 一.安装方法: 包括离线端安装和chrome插件安装,我用chrome插件安装成功 postman安装及使用 打开Chrome,依次选择“选项”> ...

  8. mysql中查看ef或efcore生成的sql语句

    http://www.solves.com.cn/it/sjk/MYSQL/2019-07-01/1336.html 涉及命令 1.开启general log模式 MySQL>set globa ...

  9. JavaScript 事件不触发

    在class上绑定的事件,点击图片的时候无法触发 <div id="files" class="files"> <div> <p& ...

  10. [论文理解] LFFD: A Light and Fast Face Detector for Edge Devices

    LFFD: A Light and Fast Face Detector for Edge Devices 摘要 从微信推文中得知此人脸识别算法可以在跑2K图片90fps,仔细一看是在RTX2070下 ...