第9章 嵌入式Web环境的设置.ppt

上传人:p** 文档编号:576038 上传时间:2023-11-08 格式:PPT 页数:38 大小:411.50KB
下载 相关 举报
第9章 嵌入式Web环境的设置.ppt_第1页
第1页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第2页
第2页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第3页
第3页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第4页
第4页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第5页
第5页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第6页
第6页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第7页
第7页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第8页
第8页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第9页
第9页 / 共38页
第9章 嵌入式Web环境的设置.ppt_第10页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第9章 嵌入式Web环境的设置.ppt》由会员分享,可在线阅读,更多相关《第9章 嵌入式Web环境的设置.ppt(38页珍藏版)》请在第壹文秘上搜索。

1、第9章 嵌入式Web环境的设置本章重点 通用网关接口(CGI)技术的工作原理 thttpd服务器。Boa服务器。本章内容 9.1 Linux环境下Web 服务器 9.2 Linux环境下基于thttpd动态服务器的实现过程 9.3 Linux环境下基于Boa的动态服务器实现 9.4 用DMF实现搭建动态Web 服务器9.1 Linux环境下Web 服务器 嵌入式系统已经大量应用于各种场合,网络技术的发展使嵌入式系统的网络功能日益完善。在测控领域里,常常需要远程查询被测控对象的实时状态,或进行某种控制操作,采用服务器浏览器进行工作的嵌入式系统,可以仅通过浏览器就完成所有的测控任务而不依赖于其他客

2、户端程序,具有简单网络服务器功能的嵌入式系统可以方便地提供这种功能。9.1 Linux环境下Web 服务器将嵌入式系统接入网络,一般是为了提供一种系统与外界交互的途径,由于网络的可扩展性,嵌入式系统一旦连接到网络中,其所能提供的信息和获得的信息都将成倍增加。为了更方便地通过网络向外提供信息,必须为系统构建Web服务器。Linux环境下的嵌入式主流Web服务器,包括Apache、httpd、thttpd 和Boa等几种。httpd是最简单的一种Web 服务器,它的功能最弱,不支持认证,不支持CGI。如果Web 服务器仅需提供一些静态页面,例如简单的在线帮助、系统介绍等,完全可以用静态服务器htt

3、pd来实现。thttpd和Boa都支持认证、CGI等,功能都比较全。若需提高系统的安全性,或需要与用户进行交互,例如数据查询、实时状态查询等,则必须使用动态Web技术,可以选择这两种服务器之一来实现。其中Boa开放源代码、性能高,运行所需空间仅为140KB左右,对CGI的支持效果最佳。因此,在很多情况下选择Boa作为ARM-Linux系统的Web服务器。9.1 Linux环境下Web 服务器 9.1.1 CGI通用网关接口技术CGI(Common Gate Interface)通用网关接口,是一个连接外部应用程序到服务器的标准。一个简单的静态HTML文档是没有交互后台程序,而CGI程序则可以实

4、时执行并输出动态信息。CGI是实现Web页面技术的关键所在,其定义是Web服务器与外部应用程序之间通信的标准接口。与专用编程接口相比具有以下优点:独立于服务器体系结构和编程语言。编程者可以自由选择适合于特定编程任务的语言。提供完整的进程隔离机制。CGI程序独立于Web服务器,运行在自己的进程地址空间,只与服务器交换接口信息,从而保证了服务器免受出错CGI进程的影响和用户的有意试探,提高了安全性和稳定性。9.1 Linux环境下Web 服务器CGI主要功能是在Web环境下,将WWW与Web数据库集成在一起,顺利地实现了动态Web页面查询。从用户端浏览器传递一些指令或参数给Web服务器,CGI 脚

5、本通过标准输入STDIN获得输入信息,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户。由于用户能传递不同的参数给CGI 脚本,所以CGI技术使得浏览器和服务器之间具有很强交互性。9.1 Linux环境下Web 服务器 9.1.2 eb动态服务的流程目前实现动态Web页面有多种技术可供选择,CGI、ASP、PHP等技术在高端平台上都能很好地实现用户所需的功能。但在嵌入式Linux环境下实现动态网页,目前只能采用CGI。使用CGI需要一个输入界面,一般就是一个包含了表单的页面FORM。FORM在CGI中是最常被使用的输入界面,它由一组标签所组成,目前的标准中,F

6、ORM的标签可分为三大类:INPUT、SELECT以及TEXTAREA。在设置了一系列有关的标签后,每个FORM通常需要一个SUBMIT按钮用来发送表单内容。当用户在客户端按下FORM上的SUBMIT按钮,浏览器(Browser)将客户端输入的参数传回服务器,服务器启动指定的程序并将封装的参数传入,后台程序依照传入的参数完成指定的工作。如果此时有需要传回结果的话,则程序会把结果传回给服务器并发送到浏览器。9.2 基于thttpd动态服务器的实现过程.下载服务器软件下载地址:http:/ home#tar zxvf thttpd-2.25b.tar.gzrootlocalhost home#cd

7、 thttpd-2.25brootlocalhost thttpd-2.25b#./configurerootlocalhost thttpd-2.25b#vim Makefile修改内容:(1)主要把”CC=gcc”修改为”CC=arm-linux-gcc”在此交叉编译器的版本为2.95.3。9.2 基于thttpd动态服务器的实现过程(2)把”LDFLAGS=”设置为”LDFLAGS=-static”,表示指定静态链接二进制文件,假如你的开发板上的文件系统是jffs2文件系统,那建议此项不要设置了。因为,设置了此项后,编译出来的可执行文件比较大。当把可执行文件从宿主机拷贝到开发板时,可能会

8、提示”cp:Write Error:No space left on device”。因为采用的是jffs2文件系统,是日志文件系统,拷贝文件不能超过文件系统的容量,使用df-h可以查看容量的大小。rootlocalhost thttpd-2.25b#makerootlocalhost thttpd-2.25b#du thttpd104thttpd 9.2 基于thttpd动态服务器的实现过程.修改配置文件权限rootlocalhost thttpd-2.25b#chmod+777 contrib/redhat-rpm/thttpd.conf.设置配置文件thttpd.conf参数rootlo

9、calhost thttpd-2.25b#vim contrib/redhat-rpm/thttpd.conf内容如下:dir=/etc/thttpd/html#指明webserver存放网页的根目录路径chrootuser=root#default=nobody#以root身份运行thttpdlogfile=/etc/thttpd/log/thttpd.log#日志文件路径pidfile=/etc/thttpd/run/thttpd.pid#pid文件路径9.2 基于thttpd动态服务器的实现过程.在开发板端启动eb服务在开发板上操作如下:#mount 192.168.2.181:/hom

10、e/mnt#cd/mnt/thttpd-2.25b/mnt/thttpd-2.25b#cp thttpd/bin/mnt/thttpd-2.25b#cp contrib/redhat-rpm/thttpd.conf/etc/mnt/thttpd-2.25b#mkdir-p/etc/thttpd/html/mnt/thttpd-2.25b#mkdir/etc/thttpd/log/mnt/thttpd-2.25b#mkdir/etc/thttpd/run/mnt/thttpd-2.25b#cp./index_1.html/etc/thttpd/html/mnt/thttpd-2.25b#cp./

11、index_2.html/etc/thttpd/html/mnt/thttpd-2.25b#thttpd-C/etc/thttpd.conf此时,服务已经启动,可以在其他PC机上,打开浏览器,并输入http:/192.168.2.120,会弹出如下图所示:9.2 基于thttpd动态服务器的实现过程在上图中,点击index_1.html和index_2.html分别显示如下:9.2 基于thttpd动态服务器的实现过程假如要支持CGI,那么thttp.conf的配置文件修改如下:dir=/etc/thttpd/html#指明webserver存放网页的根目录路径#chroot#屏蔽chroot

12、是为了运行动态编译的CGIuser=root#default=nobody#以root身份运行thttpdlogfile=/etc/thttpd/log/thttpd.log#日志文件路径pidfile=/etc/thttpd/run/thttpd.pid#pid文件路径cgipat=/cgi-bin/*声明CGI程序的目录,是以dir为根目录的路径9.3 Linux环境下基于Boa的动态服务器实现 9.3.1 安装与配置boa用Boa来实现动态Web 服务器的方法较为复杂,主要通过boa.conf和mime.types进行,具体过程如下:.下载服务器软件下载地址:http:/www.boa.

13、org/boa-0.94.13.tar.gz.安装Boa(1)#tar xvzf boa-0.94.13.tar.gz(2)#cd boa-0.94.13/src(3)#./configure9.3 Linux环境下基于Boa的动态服务器实现.生成Makefile文件(1)#vim Makefile修改Makefile文件,找到CC=gcc,将其改成CC=arm-linux-gcc(注:此为交叉编译器2.95.3),再找到CPP=gcc-E,将其改成CPP=arm-linux-gcc-E,并保存退出。(2)#make编译生成可执行文件.此时的boa大小为240K左右(3)#arm-linux-

14、strip boa去除调试信息,减小体积,此时的boa大小为60K左右.修改配置文件boa.confrootlocalhost boa-0.94.13#vim boa.conf配置内容如下:(1)#监听的端口号,缺省都是80,一般无需修改Port 809.3 Linux环境下基于Boa的动态服务器实现(2)#bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址(3)#Listen 192.68.0.5(4)#作为哪个用户运行,即他拥有该用户的权限,一般都是nobody,需要/etc/passwd中有nobody用户User nobody(5)#作为哪个

15、用户组运行,即他拥有该用户组的权限,一般都是nogroup,需要在/etc/group文件中有nogroup组Group nogroup(6)#当服务器发生问题时发送报警的email地址,目前未用,注释掉#ServerAdmin rootlocalhost9.3 Linux环境下基于Boa的动态服务器实现(7)#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不必错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录ErrorLog/var/log/boa/error_log#访问日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果

16、不必错误日志,则用#/dev/null或直接注释掉。在下面设置时,注意一定要建立/var/log/boa目录#AccessLog/var/log/boa/access_log(8)#是否使用本地时间。如果没有注释掉,则使用本地时间。注释掉则使用UTC时间#UseLocaltime(9)#是否记录CGI运行信息,如果没有注释掉,则记录,注释掉则不记录#VerboseCGILogs9.3 Linux环境下基于Boa的动态服务器实现(10)#服务器名字ServerName (11)#是否启动虚拟主机功能,即设备能有多个网络接口,每个接口都能拥有一个虚拟的Web服务器。一般注释掉,即不必启动。#VirtualHost(12)#非常重要,HTML文件的主目录。如果没有以/开始,则表示从服务器的根路径始。DocumentRoot/var/www(13)#如果收到一个用户请求的话,在用户主目录后再增加的目录名UserDir public_html9.3 Linux环境下基于Boa的动态服务器实现(14)#HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名DirectoryIndex

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 嵌入式开发

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!