|
1、解压
将下载的源码压缩包放到某目录下,然后执行:
tar –xvzf boa-0.94.13.tar.tar
2、进入/boa-0.94.13/src目录,可以看到如下文件
修改compat.h文件
#ifdef HAVE_TM_GMTOFF
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
#else
#define TIMEZONE_OFFSET(foo) timezone
#endif
改为:
#ifdef HAVE_TM_GMTOFF
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
#else
#define TIMEZONE_OFFSET(foo) timezone
#endif
3.执行:./configure
之后,可以查看,生成了些新文件:
再执行make
make编译
4.拷贝/boa-0.94.13/boa.conf 到/etc/boa目录下:
mkdir /etc/boa
cp boa.conf /etc/boa
5.进入/etc/boa目录,打开boa.conf文件,并做如下修改:
(1)将User nobody和Group nogroup 分别改为:User 0和Group 0,如下所示:
(2)修改路径
改为:
保存后退出
6.根据boa.conf创建必要的目录
(1)存放网页目录:mkdir /var/www
(2)存放CGI文件目录:mkdir /var/www/cgi-bin
(3)存放日志目录:mkdir /var/log/boa/
7.创建用于测试的index.html文件
保存为index.html,并存至/var/www目录下
8.启动服务器
执行./boa
输入:./boa 出现:
[31/Jan/2013:10:42:55 +0000] log.c:73 - unable to dup2 the error log: Bad file descriptor 这样的错误。
我们要改动log.c文件
注释掉:
if(dup2(error_log, STDERR_FILENO) == -1)
{
DIE("unable to dup2 the error log");
}
然后:
make clean
make
然后再在src目录下 执行: ./boa 若出现:Cannot open /var/log/boa/access_log for logging: logfile open: No such file or directory,或者是其他的Cannot open /var/log/boa/error_log for logging: logfile open: No such file or directory
哪个出现,你就在boa.conf里把它给注释掉(不要忘了/etc/boa/目录下的boa.conf),即 改成:
#AccessLog /var/log/boa/access_log
还会出现错误:
boa.c:226 - icky Linux kernel bug ! :Success 错误 ,注释重新编译即可
然后再./boa 此时boa服务器就已经启动,打开ubuntu浏览器,输入ubuntu的ip地址,就可以看到你放在/var/www里的网页了。
BOA启动后会显示出:
可以看到服务器启动的进程ID和端口号。
通过ps -e查看:
可见,进程PID为3449,表明已经启动成功。
9.成功启动后,当然要看看是否真正可以通过浏览器看到服务器中的网页。打开网页,输入本机的ip
以下是CGI测试程序和测试网页代码
在网页上显示如下
点击确定跳转到:
不同的平台使用相应的编译工具,其中包括修改MakeFile文件
将生成的boa文件移植到嵌入式板中的/sbin目录下并更改脚本文件 /etc/init.d/rcS, 新增一行: /sbin/boa ,确保boa服务器随系统上电自启动。