嵌入式linuxweb服务器boa的移植方法arm开发板linux嵌入式web服务器boa资料讲解.doc
《嵌入式linuxweb服务器boa的移植方法arm开发板linux嵌入式web服务器boa资料讲解.doc》由会员分享,可在线阅读,更多相关《嵌入式linuxweb服务器boa的移植方法arm开发板linux嵌入式web服务器boa资料讲解.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。嵌入式linuxweb服务器boa的移植方法arm开发板linux嵌入式web服务器boa-嵌入式linuxweb服务器boa的移植方法/arm开发板linux嵌入式web服务器boa今天自己在开发板上移植了boa服务器。参考资料是李驹光、郑耿大侠在恒颐论坛上的帖子。李大侠写的好,我没有费什么力气就搞定了,:-)。步骤如下:1.从http:/www.boa.org/下载Boa源码,将其解压并进入源码目录的src子目录#tar-zxvfboa-0.94.13.tar.gz#cdboa-0.94.13/sr
2、c2.生成Makefile文件#./configure修改Makefile文件,a.找到CC=gcc,将其改成CC=arm-linux-gcc,b.找到CPP=gccE,将其改成CPP=arm-linux-gccE,保存退出。3.运行make进行编译,得到的可执行程序为boa,并将调试信息剥去#make#arm-linux-stripboa4.编写boa.conf5.cpboa到开发板的/bin目录下,在开发板/etc目录下建boa目录,cpboa.conf到板子的/etc/boa目录。6.创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,创建CGI脚本所
3、在目录/var/www/cgi-bin/,在/var/www中放置一个index.html文件7.cpmime.types文件到开发板/etc目录8.vipasswd,添加nouser用户,vigroup添加nogroup组8.运行boa:#/bin/boa现在通过其他机器就可以访问了。http:/192.168.0.12就可以访问到你放置的那个index页面了。9.编辑helloworld.c程序测试cgi的运行#arm-linux-gcc-ohelloworld.cgihelloworld.c#cphelloworld.cgi到开发板的/var/www/cgi-bin目录下在pc机的浏览器
4、地址栏输入http:/192.168.0.12/cgi-bin/helloworld.cgi,可以看到相关页面,CGI脚本测试通过。10.从CGIC的主站点下载源码,将其解压并进入源码目录#tar-zxvfcgic205.tar.gz#cdcgic20511.修改Makefile文件a.找到CC=gcc,将其改成CC=arm-linux-gcc,b.找到AR=ar,将其改成AR=arm-linux-ar,c.找到RANLIB=ranlib,将其改成RANLIB=arm-linux-ranlib。e.找到gcccgictest.o-ocgictest.cgi$LIBS,将其改成$(CC)$(CF
5、LAGS)cgictest.o-ocgictest.cgi$LIBS,f.找到gcccapture.o-ocapture$LIBS,将其改成$(CC)$(CFLAGS)capture.o-ocapture$LIBS,保存退出。12.然后运行make进行编译,得到的CGIC库libcgic.a,我们通过调试辅助程序capture和测试程序cgictest.cgi,来验证生成CGIC库的正确性。13.将capture和cgictest.cgi拷贝到主机的/var/www/cgi-bin目录下。在工作站的浏览器地址栏输入http:/192.168.0.12/cgi-bin/cgictest.cgi,
6、可以看到页面,CGIC库和测试脚本都移植成功。下边是李大侠的大文了。随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍这种应用的开发和移植工作。用户首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。1、嵌入式Web服务器移植由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因
7、此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存贮空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。典型的嵌入式Web服务器有Boa(www.boa.org)和thttpd(我们介绍比较常用的Boa服务器的移植。Boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全,在其站点公布的性能测试中,Boa的性能要好于Apac
8、he服务器。第一步完成Boa程序的移植。从www.boa.org下载Boa源码,当前最新版本为0.94.13,将其解压并进入源码目录的src子目录#tarxzfboa-0.94.13.tar.gz#cdboa-0.94.13/src生成Makefile文件#./configure修改Makefile文件,找到CC=gcc,将其改成CC=arm-linux-gcc,再找到CPP=gccE,将其改成CPP=arm-linux-gccE,并保存退出。然后运行make进行编译,得到的可执行程序为boa,将调试信息剥去,得到的最后程序只有约60KB大小。#make#arm-linux-stripboa第
9、二步完成Boa的配置,使其能够支持CGI程序的执行。Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改,下面解释一下该文件的含义:#监听的端口号,缺省都是80,一般无需修改Port80#bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址#Listen192.68.0.5#作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需要/etc/passwd中有nobody用户Usernobody#作为哪个用户组运行,即它拥有该用户组的权限
10、,一般都是nogroup,需要在/etc/group文件中有nogroup组Groupnogroup#当服务器发生问题时发送报警的email地址,目前未用,注释掉#ServerAdminrootlocalhost#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录ErrorLog/var/log/boa/error_log#访问日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null或直接注释掉。在下面设置时,注意一定要建立/var/log
11、/boa目录#AccessLog/var/log/boa/access_log#是否使用本地时间。如果没有注释掉,则使用本地时间。注释掉则使用UTC时间#UseLocaltime#是否记录CGI运行信息,如果没有注释掉,则记录,注释掉则不记录#VerboseCGILogs#服务器名字ServerN#是否启动虚拟主机功能,即设备可以有多个网络接口,每个接口都可以拥有一个虚拟的Web服务器。一般注释掉,即不需要启动#VirtualHost#非常重要,HTML文档的主目录。如果没有以/开始,则表示从服务器的根路径开始。DocumentRoot/var/www#如果收到一个用户请求的话,在用户主目录后
12、再增加的目录名UserDirpublic_html#HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名DirectoryIndexindex.html#当HTML目录没有索引文件时,用户只指明访问目录时,boa会调用该程序生成索引文件然后返回给用户,因为该过程比较慢最好不执行,可以注释掉或者给每个HTML目录加上DirectoryIndex指明的文件#DirectoryMaker/usr/lib/boa/boa_indexer#如果DirectoryIndex不存在,并且DirectoryMaker被注释,那么就用Boa自带的索引生成程序来生成目录的索引文件并输出到下面目录,该
13、目录必须是Boa能读写#DirectoryCache/var/spool/boa/dircache#一个连接所允许的HTTP持续作用请求最大数目,注释或设为0都将关闭HTTP持续作用KeepAliveMax1000#HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位,超时将关闭连接KeepAliveTimeout10#指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉避免使用mime.types文件,此时需要用AddType在本文件里指明MimeTypes/etc/mime.types#文件扩展名没有或未知的话,使用的缺省MIME类型Defa
14、ultTypetext/plain#提供CGI程序的PATH环境变量值CGIPath/bin:/usr/bin:/usr/local/bin#将文件扩展名和MIME类型关联起来,和mime.types文件作用一样。如果用mime.types#文件,则注释掉,如果不使用mime.types文件,则必须使用#AddTypeapplication/x-httpd-cgicgi#指明文档重定向路径#Redirect/barhttp:/elsewhere/feh/bar#为路径加上别名Alias/doc/usr/doc#非常重要,指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 linuxweb 服务器 boa 移植 方法 arm 开发 linux web 资料 讲解
链接地址:https://www.taowenge.com/p-52394252.html
限制150内