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. scala spark(2.10)读取kafka(2.11_1.0.0)示例

    1.pom加载jar包 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spa ...

  2. 代码检测docker-sonarqube

    gitlab-ce + gitlab-runner + sonarqube,在提交代码时对代码质量进行检测,对不符合要求的代码不允许提交到gitlab version: '3.1' services: ...

  3. Java缓存机制

    1 Java缓存 1.1 jvm内置缓存 Java中实现缓存的方式有很多,比如用static hashMap基于内存缓存的jvm内置缓存,简单不实用,保对象的有效性和周期无法控制,容易造成内存急剧上升 ...

  4. Ubuntu 12.04输入密码登陆后又跳回到登录界面

    先找到这个文件: /home/user/.xsession-errors 打开这个文件.   这个文件记录了系统启动的日志,从这里你就可以看到启动的时候哪里出了问题. 对于我的来说,问题出在这里: & ...

  5. 无法加载模块 TP3.2

    报错 3.2的路由功能是针对模块设置的,所以URL中的模块名不能被路由,路由定义也通常是放在模块配置文件中. 'MODULE_DENY_LIST' => array('Common','User ...

  6. linux下挂载磁盘

    1.使用fdisk 查看硬盘信息 [root@localhost ~]# fdisk -l Disk /dev/sdb: 107.4 GB, 107374182400 bytes 255 heads, ...

  7. 1. JDK 、 JRE 、JVM有什么区别和联系?

    首先,我们分别对这三者进行阐述. JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机.它只认识 xxx.class 这种类型的文件,它能够将 clas ...

  8. kafka操作命令

    kafka启动 bin/kafka-server-start.sh -daemon config/server.properties 创建topic bin/kafka-topics.sh -zook ...

  9. java利用zip解压slpk文件

    public static void main(String[] args) { File file = new File("C:\\Users\\Administrator\\Deskto ...

  10. JavaScript对象---递归遍历对象

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. JavaScript 对象 JavaScript 提供多个内建对象,比如 St ...