boa移植

来源:互联网 发布:php手册离线版 编辑:程序博客网 时间:2024/04/27 22:27
  1. boa介绍:Boa Webserver是一个效率较高的web服务器,大小只有60kb左右,很适合于嵌入式系统的单任务的http服务器,但是它不可以实现像Apache、thttpd等高性能的服务器那样实现并发响应。Boa只有在完成一个请求之后才可以响应下一个请求。但是Boa却支持CGI,当CGI程序发出请求时,Boa可以fork出子进程为CGI服务实现并发响应。
  2. 编译Boa:
    a、解压源码,进入src目录执行./configure 使之生成Makefile。修改交叉编译工具链:
CC = arm-none-linux-gnueabi-gccCPP = arm-none-linux-gnueabi-gcc -E
 b、编译前准备:安装一个词法和语法分析模块(bison和flex) 。bison是yacc的GNU版本。 
sudo  apt-get  install  bisong   flex

c、编译:执行make
d、对生成的boa进行廋身:

arm-none-linux-gnueabi-strip boa//完成之后可以利用file boa查看是否廋身成功

3、对嵌入式系统的根文件系统进行配置,使之将Boa移植到板子上之后可以成功运行。
a、在根文件系统的根目录下的etc文件夹中建立boa文件夹,这个文件夹是用来放置boa的配置的。
根文件系统中的etc目录结构
boa目录中的boa是我们编译好的廋过身之后的arm平台的可执行文件,boa.conf是在boa源码中的顶层目录下复制过来的。但是我们要对其进行修改配置,比如设置存放HTML文件的路径、存放CGI脚本的的路径、用户和组的权限等。
b、根据/etc/boa/boa.conf文件中的设置内容,我们在根文件系统的源码目录下建立www文件夹(存放HTML文件),然后在这个文件夹中建立cgi-bin目录(存放CGI脚本)。
存放HTML和CGI脚本
c、在浏览器中显示的内容有 HTML、有 XML、GIF、Flash等。此时浏览器要通过MIME.Type(资源的媒体类型)来决定这些内容是用什么形式来显示。媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:ontent-Type: text/HTML表示内容是 text/HTML 类型,也就是超文本文件。此时我们可以将ubuntu的/etc目录下的mime.type拷贝到根文件系统中的etc目录下,使之为嵌入式的Boa使用。

4、板子通过nfs挂在根文件系统,在板子上运行的etc目录下运行./boa。在pc机上的浏览器中输入板子的ip地址即可静态访问。

0 0