基于BOA的WEB服务的搭建

原创 2013年12月02日 13:24:29
1、BOA服务程序编译 
1.1、解压下载好的BOA压缩包 
tar xzvf boa-0.94.13.tar.bz2 
1.2、进入解压后的目录 
cd boa-0.94.13 
1.3、先BOA源码包的src目录(下面操作均在该目录下进行) 
cd src 
1.4、利用configure 工具配置生成Makefile文件 
./configure 
1.5、修改生成的Makefile文件(设置为交叉编译器)将 
CC = gcc 
CPP = gcc –E 
修改为: 
CC=arm-linux-gcc 

CPP=arm-linux-gcc –E

测试为本机的话就不用修改

1.6、修改defines.h文件 
将#define SERVER_ROOT “/etc/boa”修改为#define SERVER_ROOT “/gec/web” 
该处定义的是WEB服务器的文件根目录,跟boa.conf文件中的DocumentRoot一致即可。 
1.7、修改compat.h文件 
将 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 
修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 
防止在make时出现如下错误提示: 
util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token 
1.8、修改boa.c文件 
注释掉下面两句话: 
  #if 0 
  if (passwdbuf == NULL) { 
  DIE(”getpwuid”); 
  } 
  if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) { 
  DIE(”initgroups”); 
  } 
  #endif 
否则会出现错误: getpwuid: No such file or directory 

注释掉下面语句: 
  #if 0 
  if (setuid(0) != -1) { 
  DIE(”icky Linux kernel bug!”); 
  } 
 #endif 
否则会出现错误: - icky Linux kernel bug!: No such file or directory 

1.9、编译boa 
Make 

至此,在src目录中将得到交叉编译后的boa程序,可以使用以下方法缩小程序的体积 
arm-linux-strip boa //去掉相关调试信息,对交叉编译生成的boa程序瘦身 


2、BOA服务器运行环境搭建 
2.1、在解压后的boa源码目录下有个boa.conf文件,根据GEC2440根文件系统的设计,对它进行如下修改: 
2.1.1、修改用户与用户组信息 
1)、User 的修改: 
将User nobody 修改为User 0 
2)、Group的修改: 
将Group nogroup修改为Group 0 
在根文件系统中的/etc/passwd文件中没有nobody 用户,所以设成0。 
在根文件系统中的/etc/group文件中没有nogroup组,所以设成0。 
2.1.2、相关日志文件存放位置项,保留将保存日志文件,根据需要可以选择是否注释掉 
#ErrorLog /var/log/boa/error_log 
#AccessLog /var/log/boa/access_log 
2.1.3、打开ServerName的设置: 
将#ServerName www.your.org.here前面的#号去掉,该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。 
2.1.4、将DirectoryMaker /usr/lib/boa/boa_indexer注释掉。 
2.1.5、将MimeTypes /etc/mime.types修改为:MimeTypes /gec/web/mime.types 
2.1.6、将DefaultType text/plain修改为:DefaultType text/html。 
2.1.7、将Alias /doc /usr/doc注释掉。 
2.1.8、SccriptAlias的设置: 
将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/修改为: 
ScriptAlias /cgi-bin/ /gec/web/cgi-bin/ 


至此,BOA服务器配置已经完成,接下来完善根文件系统即可在GEC2440上运行。 


2.2、完善根文件系统 
2.2.1、在开发板的根文件系统根目录创建必要的BOA服务器运行目录: 
在根文件系统的根目录下创建/gec/web目录: 
cd /root/rootfs 
mkdir -p gec/web 
进入到创建好的web目录下,创建cgi-bin目录: 
mkdir cgi-bin 
2.2.2、把交叉编译生成的boa程序和配置好的boa.conf文件及主机下的/etc/mime.types文件都复制到板上的/gec/web目录下,并在该目录下创建一文件index.html,文件内容可以参考如下: 
<html> 
<head> 
<title>BOA TEST</title> 
</head> 
<body> 
<h1>BOA TEST</h1> 
</body> 
</html> 
2.2.3、进入到板上的/gec/web目录下,执行./boa,可以看到如下启动信息: 
在主机上启动浏览器,输入URL为http://192.168.25.150,访问板上的BOA服务。 
2.2.4、测试完静态页面后,接下来测试CGI脚本文件: 
在主机上创建一文件hello.c,文件内容如下: 
#include<stdio.h> 
int main() 

printf("Content-type:text/html\n\n"); 
printf("<html>\n"); 
printf("<head><title>BOA TEST</title></head>\n"); 
printf("<body>\n"); 
printf("<h1>BOA CGI TEST</h1>\n"); 
printf("</body>\n"); 
printf("</html>\n"); 
return 0; 

编译:arm-linux-gcc –o hello hello.c 
然后用交叉编译工具链编译,将得到的hello文件复制到板上的/gec/web/cgi-bin目录下: 
在浏览器输入http://192.168.25.150/cgi-bin/hello,可以看到效果。

boa服务器搭建及移植

1、解压 将下载的源码压缩包放到某目录下,然后执行: tar –xvzf  boa-0.94.13.tar.tar sudo apt-get install bison fl...
  • u010841212
  • u010841212
  • 2015年03月29日 22:13
  • 949

嵌入式boa服务器搭建和移植

1.先下载源码 http://www.boa.org/ ==> boa-0.94.13.tar.g 2.tar -xvf boa-0.94.13.tar.g 3./configure ...
  • firefoxbug
  • firefoxbug
  • 2012年06月14日 11:36
  • 4790

Ubuntu14.04下搭建Boa web服务器

Ubuntu 搭建Boa服务 1,下载boa源码       网址:  www.boa.org      版本:boa-0.94.13.tar.gz 2,  解压并进入boa-0.09...
  • crazy0126
  • crazy0126
  • 2014年11月17日 22:59
  • 995

树莓派:2. 树莓派搭建嵌入式web 服务器-BOA

1. 下载BOA源码1. 下载软件 地址为:www.boa.org 最新版本是boa-0.94.13.tar.gz 2. 用FileZilla上传压缩包到树莓派的/home/pi...
  • u012812482
  • u012812482
  • 2016年03月09日 23:17
  • 1169

boa 服务器搭建使用

在官网上下载版本 1、解压  $ tar zxvf boa-0.94.13.tar.gz  2、进入boa的源代码目录  $ cd boa-0.94.13/src  3、配置  $ ./c...
  • yujing2013
  • yujing2013
  • 2016年12月06日 09:23
  • 166

CGI,BOA配置心得

今天下午在开发板上搭建了,一个BOA服务器。进行了相关的配置。 访问网页没有问题。 但是在和CGI交互上面出现了问题。 填写表单,提交后出现:  502   Bad   Gateway   ...
  • A784763307
  • A784763307
  • 2013年03月04日 16:08
  • 732

Android搭建WEB Server—boa(二)

Android搭建WEB Server—boa(二)2017/2/17 14:03:43 上一篇只是对于移植boa的基本讲解,在移植过程中,会出现很多问题。上文已经说明了如何去修改源码和boa.con...
  • yosefzhang
  • yosefzhang
  • 2017年02月21日 19:40
  • 395

centos+php+boa安装配置操作记录

第1章  部署环境说明 系统环境:centos 6.3  说明:最小化安装(或者安装选择开发工具); 第2章  Boa软件说明 软件版本:boa-0.94.13.tar.gz 下载地址:ht...
  • yincg
  • yincg
  • 2013年03月08日 16:12
  • 2762

基于REST的Web服务器客户端

基于REST的Web服务客户端 李宗申 2015-3-15 23:44:19 2人评论 分类:开发者工具 摘要 : 基于REST的Web服务客户端是一款可以使用Chrome插件...
  • layman1024
  • layman1024
  • 2017年06月06日 09:55
  • 711

嵌入式Linux下BOA网页服务器的移植

BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理多链接,而是通过建立HTTP请求列表...
  • wavemcu
  • wavemcu
  • 2014年09月28日 21:50
  • 7292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于BOA的WEB服务的搭建
举报原因:
原因补充:

(最多只允许输入30个字)