嵌入式Linux下BOA网页服务器的移植
2014-09-28 21:50
555 查看
***************************************************************************************************************************
作者:EasyWave 时间:2014.09.28
类别:Linux应用-网页服务器BOA WebServer 声明:转载,请保留链接
注意:如有错误,欢迎指正。这些是我学习的日志文章......
***************************************************************************************************************************
一:BOA WebServer简介
BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新的简称,在最大程度上节省了系统资源,这对于资源受限的嵌入式系统来说非常重要,同时它还自动生成目录、自动解压文件等功能,因此BOA具有很高的HTTP请求处理速度和效率,应用在嵌入式系统中具有很高的价值,同时如果想要BOA支持ASP,就需要将ASP服务组件移植到BOA中,我有看到一个路由器上做了一个定制化的ASP服务器。如果朋友们有兴趣可以将ASP移植到BOA中,这里就不详细介绍ASP的移植啦。
二:BOA WebServer的功能
嵌入式网页服务器BOA完成的功能包括接收客户端请求、分析请求、响应请求、向客户端返回请求处理的结果等,其工作流程如下:
修正BOA WebServer服务器的根目录
读配置文件(boa.conf)
写日志文件
初始化网页服务器,包括创建环境变量、创建TCP套接字、绑定端口、开始侦听、进入循环结构,以及等待和接收客户的连接请求
当客户端一连接请求到达时,网页服务器负责接收客户端请求,并保存相关请求信息
收到客户端的连接请求之后,网页服务器分析客户端请求,解析出请求的方法、URL目标、可选的查询信息以及表单信息,同时根据客户端的请求做出相应的处理
网页服务器处理玩客户端的请求后,向客户端发送响应信息,最后关闭与客户端的TCP连接
三:BOA WebServer官方网站
如下图所示:
BOA WebServer官网网址:http://www.boa.org/,不过好久没有更新过啦,但是针对嵌入式的网页服务器已经够用的啦。
四:BOA WebServer的移植
首先我们来看看BOA WebServer的目录架构,如下图所示:
注意的是需要仔细看的目录是src目录,src目录的主要结构如下所示:
在配置编译BOA WebServer之前,需要修改几个地方才可以的,否则会出现无法编译,并且会出错,首先需要检查Host PC Linux下是否有安装bison和flex,如果没有安装的话,采用如下的命令来安装,如下所示:
sudo apt-get install bison
sudo apt-get install flex
其次需要修改的地方是SERVER_ROOT,看是否有这个宏定义,如果有就不需要修改啦,如何没有就修改它就好啦,这是因为boa.conf文件必须放在SERVER_ROOT目录下,也就是/etc/boa/ 目录下,如下所示:
从上图可以看出,SERVER_ROOT是有定义的,并且就是在defines.h文件定义的,因此无须在修改代码啦。接下来就是配置文件的修改,主要是修改Makefile文件,但是我这里修改的src目录下的Makefile.in文件,我这里的修改如下所示:
注意红色选中的部分都需要修改的,修改完Makefile.in文件之后,就可以编译啦,但是此时编译一定会出现错误的,如下所示的错误:
这是由于compat.h文件中的几行代码导致的,如下红色圈中的所示:
将其修改为下面所示,即将##取消掉就好,请看下面红色圈中的部分代码:
经过这么多的修改之后,这个时候编译是不会出错的啦,为了简化操作,我这里采用一个build.sh的脚本来运行编译的,脚本如下所示:
注意这里$INSTALL_PATH可以自己定义,比如:
INSTALL_PATH=`pwd`/_install
mkdir -p $INSTALL_PATH
运行./build.sh命令之后,通过file boa 和 file boa_indexer查看是否已经stripped啦!!!到这里为止说明已经编译OK啦,至于如何配置BOA就请到网络上去搜索吧,这里就不详细说明。
作者:EasyWave 时间:2014.09.28
类别:Linux应用-网页服务器BOA WebServer 声明:转载,请保留链接
注意:如有错误,欢迎指正。这些是我学习的日志文章......
***************************************************************************************************************************
一:BOA WebServer简介
BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新的简称,在最大程度上节省了系统资源,这对于资源受限的嵌入式系统来说非常重要,同时它还自动生成目录、自动解压文件等功能,因此BOA具有很高的HTTP请求处理速度和效率,应用在嵌入式系统中具有很高的价值,同时如果想要BOA支持ASP,就需要将ASP服务组件移植到BOA中,我有看到一个路由器上做了一个定制化的ASP服务器。如果朋友们有兴趣可以将ASP移植到BOA中,这里就不详细介绍ASP的移植啦。
二:BOA WebServer的功能
嵌入式网页服务器BOA完成的功能包括接收客户端请求、分析请求、响应请求、向客户端返回请求处理的结果等,其工作流程如下:
修正BOA WebServer服务器的根目录
读配置文件(boa.conf)
写日志文件
初始化网页服务器,包括创建环境变量、创建TCP套接字、绑定端口、开始侦听、进入循环结构,以及等待和接收客户的连接请求
当客户端一连接请求到达时,网页服务器负责接收客户端请求,并保存相关请求信息
收到客户端的连接请求之后,网页服务器分析客户端请求,解析出请求的方法、URL目标、可选的查询信息以及表单信息,同时根据客户端的请求做出相应的处理
网页服务器处理玩客户端的请求后,向客户端发送响应信息,最后关闭与客户端的TCP连接
三:BOA WebServer官方网站
如下图所示:
BOA WebServer官网网址:http://www.boa.org/,不过好久没有更新过啦,但是针对嵌入式的网页服务器已经够用的啦。
四:BOA WebServer的移植
首先我们来看看BOA WebServer的目录架构,如下图所示:
注意的是需要仔细看的目录是src目录,src目录的主要结构如下所示:
在配置编译BOA WebServer之前,需要修改几个地方才可以的,否则会出现无法编译,并且会出错,首先需要检查Host PC Linux下是否有安装bison和flex,如果没有安装的话,采用如下的命令来安装,如下所示:
sudo apt-get install bison
sudo apt-get install flex
其次需要修改的地方是SERVER_ROOT,看是否有这个宏定义,如果有就不需要修改啦,如何没有就修改它就好啦,这是因为boa.conf文件必须放在SERVER_ROOT目录下,也就是/etc/boa/ 目录下,如下所示:
从上图可以看出,SERVER_ROOT是有定义的,并且就是在defines.h文件定义的,因此无须在修改代码啦。接下来就是配置文件的修改,主要是修改Makefile文件,但是我这里修改的src目录下的Makefile.in文件,我这里的修改如下所示:
注意红色选中的部分都需要修改的,修改完Makefile.in文件之后,就可以编译啦,但是此时编译一定会出现错误的,如下所示的错误:
这是由于compat.h文件中的几行代码导致的,如下红色圈中的所示:
将其修改为下面所示,即将##取消掉就好,请看下面红色圈中的部分代码:
经过这么多的修改之后,这个时候编译是不会出错的啦,为了简化操作,我这里采用一个build.sh的脚本来运行编译的,脚本如下所示:
注意这里$INSTALL_PATH可以自己定义,比如:
INSTALL_PATH=`pwd`/_install
mkdir -p $INSTALL_PATH
运行./build.sh命令之后,通过file boa 和 file boa_indexer查看是否已经stripped啦!!!到这里为止说明已经编译OK啦,至于如何配置BOA就请到网络上去搜索吧,这里就不详细说明。
相关文章推荐
- 嵌入式linux web服务器boa的移植方法/arm开发板linux嵌入式web服务器boa
- 在嵌入式Linux系统(OK6410)中移植Boa 服务器
- 在嵌入式Linux系统(OK6410)中移植Boa 服务器
- 嵌入式网页服务器boa移植有感
- 嵌入式linux WEB服务器BOA的移植方法 【转自:http://hi.baidu.com/549800946/blog/item/6f9a7b31d07268a05edf0ebf.html】
- 在嵌入式Linux系统(OK6410)中移植Boa 服务器
- (转)嵌入式WEB服务器BOA的移植方法(以前开发过,留下以备后用)
- 移植Boa Web服务器到ARM-Linux系统
- 嵌入式WEB服务器BOA的移植方法(一)
- {嵌入式}三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记
- 《华清远见学习手记》之 移植Boa网页服务器到FS2410
- ubuntu10.10嵌入式boa web服务器移植
- S3C4510上嵌入式Web服务器-boa在uclinux下的的移植
- 嵌入式WEB服务器BOA的移植方法211034328
- 移植Boa Web服务器到ARM-Linux系统
- linux boa WEB服务器移植安装与使用
- 移植BoaWeb服务器到ARM-Linux&mipsel-linux系统
- 嵌入式Web服务器Boa的移植及其应用
- 嵌入式WEB服务器BOA的移植方法
- 移植Boa Web服务器到ARM-Linux系统