boa是一个轻量级的web服务器,单进程单任务模式,支持CGI,是嵌入式行业应用较广的一个轻量级服务器系统。
这是我准备往嵌入式开发板里移植的时候在ubuntu上做的实验。多少有点参考价值。
现在简要说一下移植的过程,详细的过程以后有时间会再仔细整理一下:
1、下载boa源码,www.boa.org上下载源码上面提供0.94.13和0.94.14两个版本这两个版本安装的时候区别较大,大家注意一下。我下载的是0.94.13版本。
2、下载完成后拷入ubuntu中,使用:
tar –xvf boa-0.94.13.tar.gz
解压源码文件
3、进入源代码路径
cd boa-0.94.13
可以阅读README文件
docs文件为本地文档,需要使用make生成网页格式文档
4、进入src源代码路径
修改Makefile文件
修改YACC和LEX的内容如图所示(原内容YACC = yacc, LEX = lex),如果你的系统上没有安装bison和flex那么先安装这两个程序,这是进行语法检查的程序,ubuntu上面由原来的yacc和lex改为了bison和flex,有些朋友使用:
sudo apt-get install yacc lex 提示找不到文件,实际上正确的应该为:
sudo apt-get install bison flex
保存并退出。
5、如果要修改服务器配置文件的路径,打开defines.h将#define SERVER_ROOT “/etc/boa”修改为你想要的路径。
6、执行:
./configure
make
编译
7、如果出现错误
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
修改compat.h文件中的
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 为
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
8、将boa.conf文件拷贝到/etc/boa目录下,根据boa.conf文件的说明在/var/log/boa/error_log和/var/log/boa/access_log建立相应文件,需要修改一下权限,切记。
9、现在运行编译生成的boa文件吧!如果遇到文件打不开的错误提示
基本上是权限的问题,加上sudo。
有机会我再写一下CGI编程中出现的问题。