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地址。