嵌入式web服务器boa移植

1、下载BOA源码

    从www.boa.org下载boa-0.94.13.tar.gz源码

2、生成配置文件

    在BOA顶层目录src下运行./configure

3、修改Makefile文件

    修改Makefile文件中的交叉编译工具选项

    CC = arm-linux-gcc

    CPP = arm-linux-gcc–E

    LDFLAGS = -static

4、修改boa.c文件

    将boa.c文件中的一下内容注释

 if (passwdbuf == NULL) {

   DIE(”getpwuid”);

   }

   if(initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

 DIE(”initgroups”);

 }

if ( setuid ( 0 ) != - 1 ) { 
    DIE ( "icky Linux kernel bug!" ); 
}

5、修改compat.h文件

    #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    修改成
    #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

6、修改config.c文件

    将if(!server_name){..........}内容注释,位于266-286行

    不注释会报错:gethostbyname:: Resource temporarily unavailable

7、修改log.c文件

    注释掉以下内容

if (dup2(error_log, STDERR_FILENO) == -1) {

DIE("unable to dup2 the error log");

}

    不注释会报错:unable to dup2 the error log:bad file descriptor

8、编译

sudo apt-get install byacc

sudo apt-get install flex

make

9、去除调试信息

    arm-linux-strip boa

10、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 /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”

11、文件拷贝到开发版

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

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

mkdir /etc/boa

创建HTML文档的主目录/www

mkdir /www/cgi-bin

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

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

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

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

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

12、测试

运行/bin下的boa,用浏览器打开开发版的IP地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值