基于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...

嵌入式web服务器boa移植全过程(含图解过程)

移植平台:mini2440(arm9 s3c2440)开发板 ,内核2.6.29   一、boa下载和安装: 1、修改编译安装文件: 1)在www.boa.org下载boa-0.94...

在嵌入式linux下搭建Boa Webserver

背景: 1、嵌入式Web的应用。在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的C/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器...
  • lyiya
  • lyiya
  • 2016年03月12日 15:55
  • 1098

嵌入式服务器boa的搭建

嵌入式服务器Boa的搭建方法 虚拟机:RHEL5.0.2 物理机:win7旗舰版 Arm平台:博创UP-TECH-P270 一.在虚拟机上搭建boa 1.      在www.boa.org...
  • Jcy8126
  • Jcy8126
  • 2012年04月26日 14:25
  • 1106

CentOS环境下的web服务搭建

  • 2016年06月06日 09:52
  • 4KB
  • 下载

在idea中搭建gradle的web服务

前言 : 本文假定读者对idea开发工具和gradle已经有了简单的了解 安装准备: 介绍idea工具的安装 环境配置: 如何配置gradle插件 热部署 : 如何配置jrebel插件 断点调...

Nginx_Supervisor_tornado搭建web服务

  • 2013年05月17日 15:41
  • 469KB
  • 下载

小米路由+花生壳动态域名搭建web服务

我们很容易在计算机安装搭建好一套WEB服务,但想要让外网计算机访问的时候,却往往因为没有固定的公网IP地址而导致访问非常不方便。不过我们现在可以通过动态域名解析服务对动态公网IP进行实时绑定,从而达到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于BOA的WEB服务的搭建
举报原因:
原因补充:

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