【PHP开源代码栏目提醒】:网学会员PHP开源代码为您提供嵌入式linux下基于cgi的动态web的实现 - 期刊论文参考,解决您在嵌入式linux下基于cgi的动态web的实现 - 期刊论文学习中工作中的难题,参考学习。
·4· Computer Era No.4 2010嵌入式Li n ux下基于CG I的动态We b的实现 陈红梅。
陈静,李雪冬 (通信指挥学院,湖北武汉430010) 摘要:为在资源有限的嵌入式系统中有效地实现动态Web,文章提出了一种解决方案:在嵌入式Linux操作系统下,采 用Boa作为Web服务器,用C语言进行CGI程序设计,完成动态Web页面的实现。
测试结果证明了该方案的正确性和有 效性。
关键词:嵌入式Linux;Boa;CGI;CGIC Implementation of Dynamic Web Based on CGI under Embedded Linux’ CHEN Hong—mei,CHEN Jing。
LI Xue—dong (Commanding Communication Academy,Wuhan,Hubei 430010,China) Abstract:In order to realize dynamic Web effectively in embedded system which has limited resources,a solution is presented.R achieves dynamic Web pages by using Boa as Web Sel’Vgr and doing CGI programming in C language under embedded Linux.The test result proves the correctness and effectiveness of this solution. Key words:embedded Linux;Boa;CGI;CGIC #endif0引言 然后依次执行./configure,make。
由于嵌入式操作系统的巨大商业价值和Linux的开放性, 由此得到可执行程序Boa。
将调试信息剥去后,得到的最嵌入式Linux的开发和研究已经成为目前操作系统领域的一个 后程序只有约60KB大小。
热点。
1.2 Web Server Boa的配置 嵌入式Linux(Embedded Linux)是指将标准Linux经过小 移植后需对Boa进行配置。
先把dir/boa目录下的boa.conf型化裁剪处理之后,固化在容量只有几K或者几M字节的存储 文件复制到SERVER_ROOT目录下(如上文中的”/etc/boa”),然器芯片或者
单片机中,适合于特定嵌入式应用场合的专用 后再对boa配置文件(boa.conf)中的参数进行配置。
Linux操作系统。
嵌入式Linux既是Internet上的开放源
代码资 重要参数的配置如下:源,又具有嵌入式操作系统的特性。
Port 80 PWeb服务器的默认端口号是80*/ 随着互联网应用的普及,越来越多的信息化产品需要接入 User nobody,+服务器运行的用户名或者用户ID号。
,互联网通过Web页面进行远程访问。
为此,我们结合一种嵌入 Group nobody,+服务器运行的组名或者组ID号.,式Web Server Boa来介绍嵌入式Linux系统下的CGI程序设 ErrorLog Ivadloglboalerrorlog,+错误日志文件及存放路径.,计技术。
Ivarlloglboalaccess_log,.访问日志文件及存放路径., AccessLog SewerName 192.168.1.109广用于客户访问的服务器名称:域名1嵌入式Linux下Web Server的实现 或者IP地址., Boa是基于GNU/Linux平台的嵌入式web服务器,它的设 DocumentRoot/home/httpd/html,‘存放HTML文档的根目录‘,计目标是速度和安全,速度快是它最大的特点。
Boa是一个单 ScdptAlias/cgi—bin/Ihomelhttpdlcgi—bin/,.指定脚本文件的存放任务web服务器,它不像传统的web服务器,并不使用fork()的 路径,在Web服务器接收到客户端请求时,此目录下的相应脚本派生子进程处理并发请求,而是采用多路复用(Multiplex)技 文件可以自动执行.,术。
初步测试显示,在一个300MHz的奔腾机上,Boa每秒可以 2嵌入式Linux下实现动态Web的CGl技术处理数千个采样数。
Boa源
代码开放、性能优秀、支持CGI,特别适合应用在嵌入式系统中。
所以本文选择Boa作为嵌入式 CGI(Common Gateway Interface)是外部扩展应用程序与Linux下的Web Server。
Web服务器交互的一个标准接口。
CGI规范定义了w曲服务1.1 Web Server Boa的移植 器如何向扩展应用程序发送消息、在收到扩展应用程序的信 ,/叭http://www.boa.org/-F载Boa源码,解压到任意目录dir。
息后又如何进行处理等内容。
CGI程序就是符合这种接口标 进入dir/boa/src目录,修改defines.h文件中的SERVER_ROOT 准,运行在web服务器上的程序,它可以处理客户端浏览器输参数值,以指定Web〕〕E务器的根目录路径: 入的需要协同工作的数据,完成客户端与服务器的交互操 #ifndef SERVER ROOT 作。
它大大扩展了Web提供的功能,丰富了网络应用。
例如, 蒯eftRe SERVER ROOT”/etc/boa。
可以编写CGI程序来访问数据库,客户端可以通过CGI程序和 万方数据 计算机时代2010年第4期 · 5 ·Wcb n艮务器进行数据
查询。
炼。
用CGIC进行C语言的CGI程序开发时,可以将CGIC编 简单来说,CGI程序的工作过程包含以下步骤: 译为模块,也可以直接将自己编写的CGI程序和cgic.C及cgic. (1)客户端通过浏览器把清求发送到web服务器; h一起编泽。
由于所有的CGI程序都必须进行一些初始化操 (2)Web服务器接收清求后,将请求信息发送给指定的 作,比如分析数据和检查环境变量等,所以CGIC库提供了自CGI程序; 己的main()。
当我们用CGIC来开发自己的CGI程序时就不能 (3)CGI程序对客户端的请求进行处理,并把处理结果传 再使用main(),而只能使用CGIC提供的cgiMain0来开始自己送给web服务器; 的程序。
(4)Web服务器把CGI程序的处理结果返回给客户端浏 下面通过一个简单的示例来展示利用CGIC开发CGI程序览器。
的流程。
此示例是在客户端提交一个表单时,CGI
程序把表单 CGI程序与Webg艮务器的通信、参数传递与数据处理是根据 内的值取出并送回客户端显示。
环境变量、命令行参数的没置和标准输入来进行的。
服务器提供 示例使用的表单如下:了客户端(浏览器)与CGI扩展程序之间的信息交换的通道。
<form action=。
cgi—bin/out.cgi。
method=。
POST>CGI的标准输入(Stdin)是服务器的标准输出,而CGI的标准输 <input type=。
te斌name=。
name”/>出(Stdout)是服务器的标准输入。
客户的请求通过服务器的标 <input type=。
submit”value=。
Submit’/> </fonll>准输出传送给CGI的标准输入,CGI对信息进行处理后,将结果发送到它的标准输入,然后由服务器将处理结果发送给客户端。
客户端用户单击提交按钮之后,此清求通过WebIt臣务器发 上述交互过程可以用图1表示。
j鼢CGI程序out.c百。
该CGI程序的主要
代码如下: #include。
cgic.h。
int cgiMain(){ char name【241〕; cgiHeaderContentType(”text/html。
): ,.输出HTMI头部(声明
文档类型)., 图l CGI技术
工作流程 fprinff(cgiOut,。
<HTML><BODY>、n’);3嵌入式Linux下动态Web页面的实现 ,.参.数cgiOut常相当于CGI程序的标准输出(stdout);CGI程 序输出HTML页面的方式是用输出函数把页面一行一行地打 CGI程序可以用任何程序设计语言编写,如Shell脚本语 印出来t, .言、Perl、PHP、Fortran、Pascal、C语言等。
由于C语言在平台无 cgiFormString(。
name。
。
name,241);关性上的优秀表现,以及C语言
设计的CGI程序编泽为二进制 ,.荻取表单中输入框的值,赋给字符串name;cgiFormStrin90是后,Boa可以直接执行且文件较小,所以本文采用C语言来开发 CGIC提供的用于荻取输入参数值的一族函数中最常用的一个.,CGI程序。
fprinff(cgiOut.。
<H1>%s<,H1y,name);3.1 CGlC函数库 广把字符串name的值,即上面取得的表单值输出在HTML页面中., c语言编程是一项复杂且容易出错的工作,所以在完成复 fprinff(cgiOut,”</BODY>/HTML>、n。
):杂任务时,一定要选择合适的库。
用c语言编写CGI程序则更 return 0:是如此。
CGIC是一个支持CGI开发的开放
源码的标准c库, )可以
免费使用,只需要在开发的站点和程序
文档中有个公开声 4结束语明即可,表明程序使用了CGIC库。
CGIC封装了一些用C语言开发CGI程序所
常用的操作, 本文在
嵌入式Linux系统上,移植了嵌入式Web Server给c开发CGI带来了极大的方便。
CGIC能够提供以下功能: Boa,介绍了CGI技术的基本工作原理,并采用c编写CGI程序 (1)对数据进行语法分析; 实现了客户端浏览器与Web Server之间的动态数据交互。
采 (2)接收以GET和POST方式发送的数据; 用这种方案实现的动态web能够高效率地运行,在远程系统管 (3)接收上传文件以及常规的表单文件; 理和监控等领域有着广泛的应用前景。
(4)提供没置和取得cookies的函数; 参考文献: (5)用统一的方式处理表单域中的换行; 【1】李磊.利用CGI蔫I序实统动态Web的方法Ⅻ.科学技术与工程,2009. (6)为提取表单数据提供字符串、整型、浮点及单选和多选 【2】王伟君,月利华.囊入式Linux下基亏CGI的文件上传下栽的实现叨.函数,为数字字段执行边界检查; 计算机技术与宣展,2006. (7)把CGI环境变量处理为非空字串加载到c字符串中; 【31重4伟,李小武,It啊鸽著.CGI杖术全面接触【M】.崎年太学出版社, 2001. (8)提供捕获CGI状态进行凋试的方法。
【4J Boa项口官方一站正〔EB/OL/〕.http://www.boa.org/.3.2利用CGIC开发CGI程序的流程 日官方一站点【EB/oM·http://wwu,·boutell.com/cgic/· 整个CGIC函数库实际上就是cgic.C一个文件,非常的精 〔5〕CGIC 酗 万方数据嵌入式Linux下基于CGI的动态Web的实现作者: 陈红梅, 陈静, 李雪冬作者单位: 通信指挥学院湖北武汉430010刊名: 计算机时代英文刊名: COMPUTER ERA年,卷期: 2010,quotquot4被引用次数: 0次参考文献5条1.李磊.利用CGI程序实现动态Web的方法J.科学技术与工程2009.2.王伟君周利华.嵌入式Linux下基于CGI的文件上传下载的实现J.
计算机技术与发展2006.3.刘伟李小武罗明编著.CGI杖术全面接触M.清华大学出版社2001.4.Boa项目官方网站点EB/OL/.http://www.boa.org/.5.CGIC项目官方网站点EB/OL/http://www.boutell.com/cgic/.相似文献10条1.期刊
论文 高巍.钟梅.徐松惠 嵌入式Linux下基于BOA的远程控制 -电脑知识与技术2009531 分析了在嵌入式Linux平台下构建Web服务器的应用前景介绍了利用嵌入式Web服务器实现Web远程监控系统的体系结构给出了在ARM9处理器上利用
开源Boa作为Web服务器的远程监控系统的设计及关键技术的实现并以远程灯光控制为例介绍了这一解决
方案的典型应用.2.学位
论文 赵会娟 基于ARM9的嵌入式Linux开发平台构建与Boa的实现 2008 随着计算机技术、
通信技术的飞速发展和3C计算机、通信、消费电子的融合,嵌入式
系统已经渗透到各个领域。
在32位嵌入式微处理器市场上,基于ARMAdvanced RISC Machine内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。
在嵌入式操作系统的选择上,Linux一直因其内核精简、
代码开放、易于移植等特点受到广大嵌入式系统工程师的青睐。
另外,嵌入式系统一旦具备网络接入功能,其信息处理能力更加强大,因此有必要为嵌入式系统构建Web服务器。
本文主要目的是研究基于ARM的嵌入式Linux开发平台构建,并在此基础上进行
网络应用程序的开发。
文章深入剖析了ARM9的体系结构,介绍了基于ARM9的S3C2410开发板的特性及资源;阐述了嵌入式操作系统的相关知识及嵌入式Linux移植的基本方法;搭建了移植所需要的开发环境,主要包括在宿主机Linux操作系统下编译arm-linux交叉编译工具等;然后详细阐述了嵌入式Linux开发平台的构建过程,包括对BootLoader的分析和移植,Linux2.6内核的结构分析、
代码修改以及内核裁减、配置和移植,网卡驱动程序的移植,以及根文件系统的创建。
按文中提供的方法和技巧可以很方便的建立一个ARM-Linux开发平台。
文章最后给出了基于所建平台的网络应用,即在上述所建的软硬件平台上创建Web服务器Boa,并基于Boa进行应用开发。
最终实现了基于Boa嵌入式Web服务器的服务器端表单处理程序,实现了PC机与目标板的动态网页交互功能,并且,通过PC机IE浏览器可以直接控制目标板上的硬件和可执行程序,以实现对目标板的远程监控功能。
3.期刊
论文 王斌.王洪俭.冯正华.杨昌武.WANG Bin.WANG Hong-jian.FENG Zheng-hua.YANG Chang-wu 使用Boa作为Web服务器的蓄电池远程监测系统 -电力系统通信2008298 本文以变电站蓄电池实时在线监测系统为例提出了一种以Web技术为核心的远程监测系统解决方案.该方案的实施建立在基于ARMampLinux的软硬件平台之上同时兼.