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. C标签的用法

    今天做jsp页面,发现无法将后台传过来的时间戳转换成正常的时间格式,于是就想到了C标签,顺便把C标签总结一下 1.引入C标签 <%@ taglib uri="http://java.s ...

  2. 【leetcode】1190. Reverse Substrings Between Each Pair of Parentheses

    题目如下: Given a string s that consists of lower case English letters and brackets. Reverse the strings ...

  3. asp.net mvc 异步控制器

    参考:https://blog.csdn.net/niewq/article/details/20490707 https://www.cnblogs.com/visonme/p/5537190.ht ...

  4. Git的使用及安装

    1安装. 步骤一 如果是32位就安装32位,64位就安装64,任选一款. 步骤二 步骤三 步骤四 步骤五 步骤六 步骤七 步骤八 步骤九 步骤十 步骤十一 上面的安装完成以后,下面的程序包按要求安装就 ...

  5. 结合webpack使用vue-router

    demo结构 webpack.config.js var path = require('path'); // const { VueLoaderPlugin } = require('vue-loa ...

  6. jquery animated选择器 语法

    jquery animated选择器 语法 作用::animated 选择器选取当前的所有动画元素.直线电机参数 语法:$(":animated") jquery animated ...

  7. luogu P1352 没有上司的舞会 x

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

  8. mac卸载jdk

    在本地gradle打包后,将war包部署到服务器,tomcat的localhost日志报这个错: 严重: Error configuring application listener of class ...

  9. 双重Iterator 报错!!!!

    List list = new ArrayList(); list.add(new String[]{"0","s1","0038",&qu ...

  10. es之批量提交操作

    1:批量查询操作 1):插入测试数据 PUT /costumer/doc/1{ "name": "zhangsan", "age": 20} ...