一、BOA服务器移植环境
1、 主机:Ubuntu10.10发行版
2、 目标机:FS_S5PC100平台
3、 交叉编译工具:arm-none-linux-gnueabi-4.5.1
4、内核:linux-2.6.35
二、环境的配置与修改
1.解压源码
$tar xvf boa-0.94.13.tar.tar
2.修改Makefile
$cd boa-0.94.13
$./configure (生成Makefile)
修改Makefile(修改交叉工具链)
修改CC = gcc 为 CC = arm-none-linux-gnueabi-gcc
修改CPP = gcc -E 为 CPP = arm-none-linux-gnueabi-gcc –E
3.Makefile用到的文件配置
(1). 下载Lex和YACC
注:Lex(生成一个词法分析器(scanner)的C源码)任务就是将输入的各种符号,转化成相应的标识符(token),转化后的标识符 很容易被后续阶段处理。
YACC:yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。
(2). 修改 src/compat.h
找到 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
(3). 修改 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");
}*
(4). 修改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
4.make与瘦身
make之前安装交叉编译连arm-none-linux-gnueabi
$make
给boa瘦身
三、配置BOA服务器
1、 创建目录
2、 将boa源码目录下的boa.conf拷贝到/source/rootfs/etc/boa目录下
3、修改配置文件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)DocumentRoot的修改
修改DocumentRoot /var/www
为DocumentRoot /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
4.创建boa服务器所需的目录(注:与boa.conf配置文件里的目录对应)
(注:当不能使用cgi 时,将#AddType application/x-httpd-cgi cgi改为AddType application/x-httpd-cgi cgi)
将boa拷贝到开发板根文件系统的/etc/boa下
将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下
将你的主页index.html拷贝到www目录下
四、测试
1.启动开发板2.进入etc/boa/文件夹
#cd etc/boa/
3.启动boa服务器
4.打开ie浏览器,输入开发板的ip地址,回车
可以打开你的测试网页,证明boa服务器移植成功。