Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。
一、下载Bcgi源码
下载地址:
http://labs.nevion.com/open-source/ 目前最新发行版本:205(06年更新版本)
下载cgi205.tar.gz
解压:tar xzf cgi205.tar.gz
二、编译cgi
修改交叉编译器:
#vim Makefile修改为
CFLAGS=-g -Wall -static
CC=$(CROSS_COMPILE)gcc
AR=$(CROSS_COMPILE)ar
RANLIB=$(CROSS_COMPILE)ranlib
LIBS=-L./ -lcgic
all: libcgic.a cgictest.cgi capture
install: libcgic.a
cp libcgic.a /usr/local/lib
cp cgic.h /usr/local/include
@echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.
libcgic.a: cgic.o cgic.h
rm -f libcgic.a
$(AR) rc libcgic.a cgic.o
$(RANLIB) libcgic.a
#mingw32 and cygwin users: replace .cgi with .exe
cgictest.cgi: cgictest.o libcgic.a
$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}
capture: capture.o libcgic.a
$(CC) $(CFLAGS) capture.o -o capture ${LIBS}
clean:
rm -f *.o *.a cgictest.cgi capture
#make CROSS_COMPILE=arm-linux-(在ARM平台上)
#make (在PC平台上)
之后生成了capture 和cgictest.cgi两个执行文件
三、目录的创建
上一章节我们已经创建了/cgi-bin目录将capture和cgictest.cgi拷贝到此目录下。
四、测试。
输入地址http://192.168.1.101/cgi-bin/cgictest.cgi
![](//images0.cnblogs.com/blog/443293/201302/25132111-644adb3ea6e24706a6315814e5aca565.jpg)
。。。。。。