Linux下web服务器BOA的移植

Boa 程序的移植

1、下载 Boa 源码

下载地址:http://www.boa.org/
下载 boa-0.94.13.tar.gz,
解压:[root@Localhost source]$tar -zxvf boa-0.94.13.tar.gz

2、生成 Makefile 文件

进入 boa-0.94.13,直接运行 src/configure 文件
[root@Localhost src]$./configure

3、修改 Makefile 文件

修改

LDFLAGS = -g
CC = gcc
   CPP = gcc -E   

为:

LDFLAGS = -g -static
   CC = arm-linux-gcc
   CPP = arm-linux-gcc -E
4、修改 src/compat.h
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

修改成

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

否则会在make时会出现下面错误:

5、修改src/boa.c

注释掉下面语句:

 if (passwdbuf == NULL) {
  DIE(”getpwuid”);
  }
  if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
  DIE(”initgroups”);
 }

 即修改为:

 #if 0
  if (passwdbuf == NULL) {
  DIE(”getpwuid”);
 }
 if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
  DIE(”initgroups”);
  }
    #endif

否则最后在开发板运行时会出现以下错误:
boa.c:211 - getpwuid: No such file or directory

6、交叉编译

[root@Localhost src]$ make
Make过程中可能会出现以下错误:
错误一:
这里写图片描述
解决方法:
apt-get install bison
错误二:
这里写图片描述
解决方法:
apt-get install flex

7、去除调试信息,减小体积,大约能减小一半还多。 (可选)

[root@Localhost src]$ arm-linux-strip boa

配置 Boa

1、修改boa.conf文件

进入网络根文件系统,在/etc 目录下建立一个 boa 目录,里面放入 Boa 的主要配置文件 boa.conf。 在Boa 源码目录下已有一个示例 boa.conf,可以在其基础上进行修改。
修改User nobody 为 User 0 ; 修改Group nogroup 为 Group 0
ScriptAlias 的修改
修改 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/
这是在设置 CGI 的目录,你也可以设置成别的目录。比如用户文件夹下的某个目录。
ServerName 的设置
修改 #ServerName www.your.org.here
为 ServerName www.your.org.here
注意: 该项默认为未打开, 执行 Boa 会异常退出, 提示“ gethostbyname::No such file or
directory”,所以必须打开。其它默认设置即可。

2、将 mime.types 文件复制/etc 目录下,通常可以从 linux 主机的 /etc 目录下直接复制即可。

在根文件系统目录下:cp /etc/mime.types etc/

运行BOA

开发板操作:
[root@~]#/bin/boa
如果发现 boa 没有运行,则可以在开发板的/var/log/boa/error_log 文件中找原因。
比如端口已被其他程序占用:
[root@~]#cat /var/log/boa/error_log
[20/Feb/2008:21:21:57 +0000] boa.c:194 - unable to bind: Address already in
use
或是用户设置错误等等,都可以查到。
Q: 无法启动 Boa, error log 显示 “boa.c:266.icky Linux kernel bug!:No such file”
A:修改 src/boa.c,将以下判断注释掉:

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

重新编译
Q:无法启动 Boa,error log 显示 “boa.c:211 - getpwuid….略”
A:修改 src/boa.c,将以下判断注释掉:

/*if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}*/

重新编译

功能测试

静态网页测试
编写了一个简单的测试HTML程序,并存入根文件系统的 /var/www 目录下,直接在浏览器中输入开发板的 IP 地址 192.168.10.122/aa.html
出现静态页面,配置成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值