一、下载源码包、准备编译工具、环境。
1、下载源码:
boa-0.94.13.tar 到PC,解压(我解压在/tmp/boa)
tar -jxvf boa-0.94.13.tar
2、我用的编译工具链:
arm-linux-gcc 4.5.1
3、安装bison和flex语法分析模块
我在配置完后make的时候报错 make: yacc: Command not found
安装完上面的工具后解决问题:
sudo apt-get install flex bison
二:修改源码文件、配置并编译:
1、修改/tmp/boa/
boa-0.94.13
/src目录下的defines.h:
第30行#define SERVER_ROOT “/etc/boa“ 改为#define SERVER_ROOT “/home/boa“
2、
修改/tmp/boa/
boa-0.94.13
/
src目录下的compat.h:(原因:##是早期编译器使用的)
去掉 第120行"#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff" 中的 "##
去掉 第126行"#define TIMEZONE(foo) foo##->tm_zone" 中的 "##"
3、
修改/tmp/boa/
boa-0.94.13
/
src目录下的boa.c:
注释掉 第210行~215行:
注释掉 第226行 : //DIE("icky Linux kernel bug!");
4、配置:执行 ./configure 生成Makefile
5、修改
Makefile:
CC = gcc 和CPP = gcc -E 改为 CC = arm-linux-gcc 和 CPP = arm-linux-gcc -E
6、
make 生成boa boa_indexer
三、构建安装boa目录
1、在家目录新建一个boa目录(即 /home/boa),将刚才生成的boa和boa_indexer拷贝到该目录下
2、将tmp/boa
/
boa-0.94.13
下的boa.conf拷贝到这个目录下;
3、修改boa.conf:
修改
User nobody 为 User 0 (表示root用户运行该程序)
修改Group nogroup 为 Group 0
ErrorLog /home/boa/log/error_log (错误日志放在该文件夹下)
AccessLog /home/boa/log/access_log (访问日志放在该文件夹下)
DocumentRoot /home/boa/www (网页文件放在该目录下)
DirectoryMaker /home/boa/boa_indexer
ScriptAlias /cgi-bin/ /home/boa/cgi-bin (脚本放置目录)
#ServerName 去掉注释后面为服务器的名字,可以随便取
4、在/home/boa目录下创建
log、www、cgi-bin目录
5、编写cgi脚本放进cgi-bin目录:
vim hello.c
#include <stdio.h>
int main(void)
{
printf("Content-type: text/html\n\n");
printf("\n");
printf("\n");
printf("\n");
printf("Hello Mumu!\n");
return 0;
}
编译成cgi脚本:
arm-linux-gcc -o hello.cgi hello.c
将hello.cgi放到cgi-bin目录下
四、移动boa目录至开发板
1、将PC上/home/boa目录压缩打包
tar -zcvf boa.gz boa
2、将boa.gz下载到开发板,解压后放置boa目录至开发板/home下
3、给cgi-bin目录下的cgi脚本文件执行权限
4、启动boa:
./boa 可查看到boa进程(ps -a)
5、PC上打开浏览器,输入
www.开发板IP/cgi-bin/hello.cgi
可看到浏览器页面输出 “Hello Mumu”