移植Boa网页服务器到FS2410
【编译环境】ubuntu 8.10 + Vmware + windows xp
【目标机】FS2410
【交叉编译器】arm-softfloat-linux-gnu-gcc
1. 从http://www.boa.org 下载 boa-0.94.13.tar.gz 。
2. 解压之后进入src ,执行 ./configure 生成 Makefile。
3. 修改 Makefile :
CC= arm-softfloat-linux-gnu-gcc
CPP= arm-softfloat-linux-gnu-gcc -E
4. make,若出现错误:
util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token
修改 src/compat.h ,找到#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff,
改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
5. 再次make ,编译通过,生成的boa有184KB。
6. 用arm-softfloat-linux-gnu-strip boa 给 boa “减肥”,减后仅有60KB。
7. 找到源码目录下的boa.conf 和 主机根目录 下 /etc/mime.types 。
8. 修改boa.conf文件:
Group 0
User nobody
DocumentRoot /web
DocumentIndex index.html
ScriptAlias /cgi-bin/ /web/cgi-bin
9. 在目标板上:mkdir /etc/boa ,将boa.conf 复制到该目录下,并将mime.types 复制到/etc 下。
10. 在目标板上 :mkdir /var/log/boa 用于记录日志,mkdir /web/cgi-bin 用于存放cgi脚本。
11. 找一个可用的html文件,改名为index.html 放入到目标板的/web下,以作测试用 。
12. 将第6步生成的boa复制到目标板的/bin目录下, 执行boa,若出现错误:
log.c:73-unable to dup2 the error log:Bad file descriptor
修改 src/log.c文件,注释掉:
/*if(dup2(error_log,STDERR_FILENO)==-1)
{
.....
}*/
(为什么会出现这个错误?没有去深究,如果你知道请告诉我:boat_man@163.com)
重做5、6、12步。
13. 执行boa成功,显示:
boa: server version Boa/0.94.13
boa: server build Jan 8 2011 at 12:09:40
boa: starting server pid=302 port 80
14. 在IE/firefox测览器地址栏输入http://192.168.2.100 (我的目标板的IP),就可以看到index.html的内容了!