boa是一个开源web server,简单小巧,很适合嵌入式场合
下载最新的boa源码,版本是0.94.14rc21
http://www.boa.org/
先安装两个包,否则可能configure通不过
sudo apt-get install bison flex
./configure
cd src
vi Makefile
修改编译器gcc为相应的arm-linux-gcc
CC=arm-linux-gcc
CPP=arm-linux-gcc -E
返回根目录
cd ..
make
在src目录下生成可执行文件boa
这里值得一说的是log.c里面有一个error_log_name默认是没有指定的,如果需要的话自己指定以下,不需要的话就把它注释掉,否则boa启动回报错
我是这样处理的,跳过整个if,这样就不需要error log了
log.c line 53
if (0/*error_log_name*/) {
49 int error_log;
50
51 /* open the log file */
52 error_log = open_gen_fd(error_log_name);
53 if (error_log < 0) {
54 DIE("unable to open error log");
55 }
另外还需要一些配置文件
boa根目录下有个example,里面有boa.conf
修改一下配置,以下是从别人那里靠的,记录下来当作参考:
#vi 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 /var/www
为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”
(8)以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建
以下步骤在开发板上进行:
创建目录/etc/boa并且把boa 和 boa.conf拷贝到这个目录下
mkdir /etc/boa
创建HTML文档的主目录/www
mkdir /www
创建CGI脚本所在录 /www/cgi-bin
mkdir /www/cgi-bin
以下步骤在ubuntu下进行:
将boa.conf拷贝到开发板根文件系统的/etc/boa下
#cp boa.conf /source/rootfs/etc/boa
将boa拷贝到开发板根文件系统的/etc/boa下
#cp src/boa /source/rootfs/etc/boa
将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下
#cp /etc/mime.types /source/rootfs/etc
将你的主页index.html拷贝到www目录下
./boa&