主机环境:UBUNTU10.10
编译器:arm-linux-gcc4.3.2
1.下载boa源码
下载地址: http://www.boa.org/
最新发行版本: 0.94.13
移动到/forlinx目录下解压 # tar xzf boa-0.94.13.tar.gz2.安装工具bison,flex
sudo apt-get install bison flex
3.修改文件src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
(2)修改 src/log.c
注释掉
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
为:
/*if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}*/
(3)修改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
注释掉下面语句:
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
为
#if 0
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
#endif
3.生成Makefile文件#./configure在src目录下执行#./configure,生成Makefile文件
修改Makefile文件
CC = arm-linux -gcc
CPP = arm -linux -gcc -E
保存退出,
4.编译
make
生成boa二进制文件,给二进制文件瘦身
执行 arm-linux-strip boa,可以发现boa文件变小了。
5. boa配置
回到主目录,修改boa.conf配置文件
修改 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”
6.移植在开发板的根文件系统中新建/etc/boa目录,拷贝boa和boa.conf文件到该目录下,
拷贝主机/etc/mime.types文件到开发板的文件系统/etc目录下,
在开发板的根文件系统中新建/www目录和/www/cgi-bin
在/www目录下放置自己的index.thml网页文件
7,测试,重启开发板,打开/etc/boa目录执行boa
[root@key boa]#./boa
[root@key boa]#[11/Jul/2012:11:00:30 +0000] boa: server version Boa/0.94.13
[11/Jul/2012:11:00:30 +0000] boa: server built Jul 10 2012 at 21:00:00.
[11/Jul/2012:11:00:30 +0000] boa: starting server pid=53, port 80
在主机打开网页输入开发板ip“172.19.72.10”
可以看到index.html正常显示。