移植嵌入式WEB服务器BOA到Bananapi

我们要开发一个项目,需要明确项目的需求,那么作为本开源项目而言,我们需要明确的第一个问题是,我们应该设计为界面形式,还是后台运行的形式?

其实,到底应该选择界面还是后台取决于我们系统的需求,就本项目而言,如果我们需要用户能够设置参数,那么我们一般选择界面的形式,如果系统运行起来无需用户介入,那么就可以采用后台运行的形式,当然我们也许还需要一个用户远程接入的形式,比如用户可以通过WEB设定系统参数,那么我们也许需要一个WEB服务器,并且需要一套WEB程序。在本项目中,我所设想的是用户可以本地、远程双重操作方式,所以我选择使用界面进行开发,对于linux而言,我所使用的较为优秀的UI开发工具是Qt,那么下一步,我们开始想办法移植Qt到Bananapi上面去。

  1. 移植嵌入式WEB服务器BOA到Bananapi

(1) 下载BOA,下载地址http://www.boa.org/

(2) 解压BOA,sudo tar xzf boa-0.94.14rc21.tar.gz

(3) 进入BOA目录,cd boa-0.94.14rc21/

(4) 运行./configure

(5) 进入src目录 cd src/

(6) 修改Makefile文件如下图所示:

修改CC= 与CPP= 参数如上图所示

(7) 退到上一目录,运行make,在src目录下生成boa可执行文件。

以下配置过程来自网络:

Boa的配置

这一步的工作也在电脑主机上完成。

在boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:

#vi boa.conf

(1)Group的修改

修改 Group nogroup

为 Group 0

(2)user的修改

修改 User nobody

为 User 0

(3)ScriptAlias的修改

修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

为 ScriptAlias /cgi-bin/ /www/cgi-bin/

(5)DoucmentRoot的修改

修改DoucmentRoot /var/www

为DoucmentRoot /www

(6)ServerName的设置

修改#ServerName www.your.org.here

为 ServerName www.your.org.here

否则会出现错误“gethostbyname::No such file or directory”

(7)AccessLog修改

修改AccessLog /var/log/boa/access_log

为#AccessLog /var/log/boa/access_log

否则会出现错误提示:“unable to dup2 the error log: Bad file descriptor”

(8)以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建

以下步骤在开发板上进行:

创建目录/etc/boa并且把boa 和 boa.conf拷贝到这个目录下

mkdir /etc/boa

创建HTML文档的主目录/www

mkdir /www

创建CGI脚本所在录 /www/cgi-bin

mkdir /www/cgi-bin

以下步骤在ubuntu下进行:

将boa.conf拷贝到开发板根文件系统的/etc/boa下

#cp boa.conf /source/rootfs/etc/boa

将boa拷贝到开发板根文件系统的/etc/boa下

#cp src/boa /source/rootfs/etc/boa

将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下

#cp /etc/mime.types /source/rootfs/etc

将你的主页index.html拷贝到www目录下

测试

打开一个浏览器输入开发板ip看看效果

OK

文档

http://www.eeboard.com/bbs/forum.php?mod=attachment&aid=ODg5OTR8YjMxOGE1ODd8MTQxMjIxNjE0N3w3OTQwOXwzODg5NA%3D%3D

转自http://www.eeboard.com/bbs/thread-38894-1-1.html