要进行CGI编程,需要配置一下Web服务器,这里以Apache2.2为例进行说明,关键有两个地方: (1)ScriptAlias /cgi-bin/ E:/Apache2.2/cgi-bin/ (2) <Directory E:/Apache2.2/cgi-bin/> AddHandler cgi-script .cgi .pl </Directory> 上面,(1)中指定cgi所在的根目录,(2)指定cgi文件的扩展名。详细的配置可以参考:http://www.phpx.com/man/Apache-2/howto/cgi.html CGI是一种接口,它与Web服务器之间的通信,可以通过各种语言来实现,比较常见的是perl和shell脚本,不过其它语言的也很多。在这里我选择我比较熟悉的c/c++语言来进行说明。下面对上述配置好的环境做一个简单的测试: 以下代码输入 cgi 环境变量 [javascript] #include <stdlib.h> #include <stdio.h> int main ( int argc, char *argv[] ) { char *env_var[ 24 ] = { "COMSPEC", "DOCUMENT_ROOT", "GATEWAY_INTERFACE", "HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CONNECTION", "HTTP_HOST", "HTTP_USER_AGENT", "PATH", "QUERY_STRING", "REMOTE_ADDR", "REMOTE_PORT", "REQUEST_METHOD", "REQUEST_URI", "SCRIPT_FILENAME", "SCRIPT_NAME", "SERVER_ADDR", "SERVER_ADMIN", "SERVER_NAME", "SERVER_PORT", "SERVER_PROTOCOL", "SERVER_SIGNATURE", "SERVER_SOFTWARE" }; printf ( "%s\n","Content-Type: text/html\n" ); printf ( "%s\n","<?xml version = \"1.0\"?>" ); printf ( "%s\n","<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" " ); printf ( "%s\n","\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">" ); printf ( "%s\n","<html xmlns = \"http://www.w3.org/1999/xhtml\">" ); printf ( "%s\n","<head><title>CGI环境变量</title></head><body>" ); printf ( "%s\n","<table border = \"0\" cellspacing = \"2\">" ); for ( int i=0;i<24;i++ ) { printf ( "%s%s%s\n","<tr><td>",env_var[i],"</td><td>" ); char *value = getenv( env_var[i]); if ( value ) { printf ( "%s",value ); } else { printf ( "%s","CGI环境变量不存在." ); } printf ( "%s\n","</td></tr>" ); } printf ( "%s\n","</table></body></html>" ); printf ( "%s\n","C语言编写" ); return EXIT_SUCCESS; } [/javascript]
转载于:https://www.cnblogs.com/7hihi/archive/2012/06/18/2564258.html