嵌入式Linux环境下Web页面技术的实现

时间:2024-04-26 03:39:11 5A范文网 浏览: 论文范文 我要投稿

  摘 要:介绍了通用网关接口(CGI)技术的工作原理,并选用Boa Server作为Web服务器,给出嵌入式Linux环境下的Web服务器参数配置方法,并利用该方法在S3C2410硬件开发板中实现了具体的Boa服务器环境,给出了一个具体的CGI应用实例。
  关键词:嵌入式WEB;通用网关接口 ;Boa ;Web服务器
  
  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可执行文件。
  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />  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/ ⑤定义默认页面文件,配置后的Boa服务器将/home/ httpd 作为服务器的根目录,CGI 程序放在/home/httpd/cgi2bin目录下,静态网页文件放在/home/ httpd/html 目录下
  接着将生成的Boa 可执行文件加入到ramdisk中的/bin/下,并把修改后的boa. conf拷贝到Web服务器根目录/home/httpd/下。
  
  3.3 重新编译内核
  将编译好的内核下载到开发板,启动Boa Web Server,然后就可以通过IE浏览器在用户端访问目标板中的网页。
  4 应用实例
  本文整个测试环境由一个S3C2410嵌入式开发板 ,一台Windows PC机组成,一个人用来获取数据的读写器组成,搭建了ARM9平台上的CGI运行环境,并举出了利用IE浏览器访问开发板上的RFID标签数据库,实现对RFID标签数据的嵌入式动态Web查询的应用实例。测试环境如图2所示。
  在测试时,配置IP 分别为192.168.10.1,192.168.10.2。开发板和宿主机之间通过网线连接.通过浏览器点击192.168.10.1,并设置相关参数,就可以查询到原始的标签数据列表。测试结果如图3所示。
  
  5 结语
  
  本文对嵌入式Linux环境下的Web服务及CGI的工作机理进行了分析,提出了在嵌入式ARM-Linux环境下Boa Server 的实现方法,使用户在浏览器端对指定的嵌入式设备进行远程操作。虽然不同的嵌入式系统往往会选用不同硬件平台以及操作系统,但是对于嵌入式系统环境下CGI脚本的开发方法和Web服务器的构建,本文都给出了一个较好的思路。
  
  参考文献
  〔1〕黄光奇.CGI编程指南〔M〕.电子工业出版社,1999.
  〔2〕马晓光.组建Linux服务器〔M〕.人民邮电出版社,2001,(4).
  〔3〕张斌,高波. Linux平台下的Web 编程〔M〕.清华大学出版社,2000,(10).
  〔4〕王刚,陈西宏.基于Linux的动态Web技术研究〔J〕.计算机应用研究, 2001,(9).
  〔5〕薛军超. MySQL网络数据库开发〔M〕.人民邮电出版社,2001,(4).
  〔6〕张曦煌,柴志雷.嵌入式Web服务器中CGI的特点及实现.小型微型计算机系统,2003,(2).
  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 

相关文章:

明星代言助力电视广告?04-26

建筑工程概预算控制措施的研究04-26

广播电视台实施业务通道建设的关键环节04-26

物业专项维修资金管理加强思考04-26

浅析新课标下职业高中体育教学改革04-26

大学生职业生涯规划中存在的问题及其原因分析04-26

浅谈知识管理在数据库课程教学活动中的应用04-26

浅析初中语文课堂教学的导入技巧04-26

房地产企业集团资金管理创新思考04-26

浅谈我国管理会计的现状及未来发展趋势04-26

热搜文章
最新文章