- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux环境下Web页面技术实现
嵌入式Linux环境下Web页面技术实现摘 要:介绍了通用网关接口(CGI)技术的工作原理,并选用Boa Server作为Web服务器,给出嵌入式Linux环境下的Web服务器参数配置方法,并利用该方法在S3C2410硬件开发板中实现了具体的Boa服务器环境,给出了一个具体的CGI应用实例。?
关键词:嵌入式WEB;通用网关接口 ;Boa ;Web服务器?
中图分类号:TP文献标识码:A文章编号:1672-3198(2009)01-0356-01??
1 通用网关接口技术?
CGI(Common Gateway Interface)是实现Web页面技术的关键所在,其定义是Web服务器与外部应用程序之间通信的标准接口。与专用编程接口相比具有以下优点:?
①独立于服务器体系结构和编程语言。编程者可以自由选择适合于特定编程任务的语言。?
②提供完整的进程隔离机制。CGI程序独立于Web服务器,运行在自己的进程地址空间,只与服务器交换接口信息,从而保证了服务器免受出错CGI进程的影响和用户的有意试探,提高了安全性和稳定性。?
CGI主要功能是在Web环境下,将WWW与Web数据库集成在一起,顺利地实现了动态Web页面查询。从用户端浏览器传递一些指令或参数给Web服务器,CGI 脚本通过标准输入STDIN获得输入信息,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户。由于用户能传递不同的参数给CGI 脚本,所以CGI技术使得浏览器和服务器之间具有很强交互性。?
其具体工作过程如图1所示。?
其中,CGI与表单之间的信息交互方法有两种模式:“GET”和“POST” 。选择哪一种模式取决于表单(FORM)的“METHOD”字段的设置,如果METHOD 设定为POST,数据会以STDIN 方式送入CGI接口;如果METHOD 设定为GET,数据会保存在QUERY_STRING的环境参数中,以供接口读取。 使用GET方式编写CGI 程序会更加简单,但是POST 方式则更先进。?
2 运行环境?
根据CGI 的工作机理,在嵌入式系统中构建CGI运行环境需要解决下面几个主要工作:?
(1) 软硬件平台: ARM处理器,以高性能、低功耗、低成本等优点获得大量。操作系统方面,Linux因其开源性、可裁剪,广泛支持ARM体系结构,备受亲睐。无疑本文采用ARM-Linux作为CGI的系统平台是很好的选择。?
(2) 合适的Web服务器:目前的主流Web服务器,包括Apache ,httpd ,thttpd 和Boa等几种。其中Boa开放源代码,性能高,运行所需空间仅为140KB左右,对CGI的支持效果最佳。因此,本文选择Boa作为ARM-Linux系统的Web服务器。?
(3) 运行环境配置:不同的Web服务器的配置方法大同小异,具体过程中需要考虑的因素有:CGI的默认启动路径配置,CGI服务器根路径(SERVER-ROOT) 配置,CGI 脚本路径动态参数配置,CGI 源码路径配置。?
(4) 交叉编译生成目标机模块:在宿主机中完成了全部的配置工作后,需要利用特定平台的交叉编译工具来生成特定平台的交叉编译模块,然后再下载到目标机。?
3 Web服务器Boa在ARM-Linux平台上的构建?
选用ARM-Linux平台作为嵌入式系统CGI,在S3C2410开发板上构建Boa服务器的具体过程为:?
3.1 对Boa源码进行交叉编译?
此过程中需要在/boa/src/configure文件中添加CC与CPP交叉编译选项,同时还要对Makefile文件中CC与CPP选项做同样的改动。在Redhat虚拟操作系统下:CC=/opt/host/ armv4l/bin/armv4l-unknown-linux-gcc;CPP =/opt/host/armv4l/bin/armv4l-unknown-linux.cpp,然后make即可生成所需平台的Boa可执行文件。?
3.2 Boa的配置?
Boa的配置是在boa.conf文件里进行设定,该文件是一个文本文件,由一些规则组成,用于配置Boa 服务器时指定相应接口、服务器名称、一些相关文件路径等。对其具体修改如下:?
①将User nobody改为User 0?
②将Group nogroup 改为Group 0 ?
③将DocumentRoot/var/www改为DocumentRoot/home/httpd/html?
④定义CGI 程序所在的目录:ScriptAlias/cgi2bin/home/httpd/cgi2bin/ ⑤定义默
文档评论(0)