虽然与Apache等Linux下的服务器相比,Boa只支持单任务和静态网页,但是由于其占用资源很小,所以特别适合与嵌入式环境中。下面将就Boa在ARM-Linux环境下的移植进行说明。
1.下载Boa源代码:
下载地址:www.boa.org,最新版本是boa-0.94.13.tar
解压:tar xzf boa-0.94.13.tar
2.交叉编译源代码:
直接进入/src目录下运行/configure
修改Makefile文件:修改CC=gcc为CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc (此处应根据自己实际情况替换为交叉编译器所在路径)
修改CPP = gcc -E 为CPP= =/usr/local/arm/3.4.1/bin/arm-linux-gcc -E
修改Boa.c文件:
将下面这几行注视掉
if (setuid(0) != -1) { |
编译:make
程序瘦身:=/usr/local/arm/3.4.1/bin/arm-linux-strip boa,这时boa的大小减小至瘦身前的一半
3.配置Boa
修改boa.conf:
修改 Group nogroup 为Group 0
修改 User nobody为 User 0
修改 Scriptalias /cgi-bin/ /usr/lib/cgi-bin/为Scriptalias /cgi-bin/ /var/www/cgi-bin/
取消注释,打开ServerName www.your.org.here
3.开发板上的设置:
将编译生成的boa,boa.conf,mime.types拷贝至开发板
mkdir文件夹:/etc/boa ,/var/log,/var/log/boa,/var/www,/var/www/cgi-bin
复制文件:boa.conf到 /etc/conf mime.types到/etc/
4.编写测试CGI程序;
#include <stdio.h> |
交叉编译生成helloworld.cgi:arm-linux-gcc -o hello.cgi hello.c
讲程序拷贝到开发板/var/www/cgi-bin下
在PC浏览器中输入开发板IP/cgi-bin/hello.cgi出现helloworld移植结束。