最近接受一个活,要用到BOA,遂在网上找资料搭环境,看了很多教程,总结如下:
一、搭建的环境
CentOS5(我是在虚拟机理安装的);
二、准备工作
1、上BOA官网(www.boa.org)下载BOA源码,我下载的是最新的发行版0.94.13;
2、解压下载的文件,linux下解压命令:tar -xzf [packname].tar.gz,这里假定解压缩后的文件名为boa,且放在根目录下;
3、确保你的Linux装有gcc;
三、安装
1、打开命令终端;
2、进入解压后的boa/src目录: #cd boa/src
3、执行configure:#./configure
4、修改修改compat.h中的
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
为:
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
也就是将后面的注释取消,不注释掉编译会出错,错误提示是:util.c: 100: 1: pasting “t” and “->” does not give a valid preprocessing token make: [util.o] Error1。
5、这一步是可选项,修改defines.h中的 #define SERVER_ROOT "/etc/boa",这一句声明BOA站点的根目录,要指定自己想要的根目录,将后面的"/etc/boa"修改为相应的路径即可,这里假定你的根目录就是"/etc/boa";
6、修改boa.c文件,找到下面这句:
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
注释或删除这句,原因不清楚,如果不注释会出现的后果后面会说到。
7、编译:#make
8、将生成的可执行的文件boa复制到usr/bin或/usr/local/bin中。
四、配置
1、在/etc目录下建立boa目录,这就是boa的根目录。
2、回到boa源代码目录/boa,将目录下的boa.conf文件复制到/etc/boa目录下,就是根目录下;
3、修改boa.conf文件(可选,此文件只是对boa的配置管理):
a、修改访问权限:修改User nobody 为 User 0,修改Group nogroup 为Group 0;
b、设定日志目录:boa 日志有两部分,Errorlog 和AccessLog,一般情况下为/var/log/boa/error_log和/var/log/boa/access_log 两个文件。所以根据自己的情况情况设置日志目录:
ErrorLog /etc/boa/log/error_log
AccessLog /etc/boa/log/access_log
注意:这里/var/log/boa 目录必须为可写,否则会出现错误:log.c:73 – Unable to dup2 the error log: Bad。
c、设置html 文件目录: DocumentRoot /etc/boa/html;
d、设置默认首页: DirectoryIndex index.html;
e、设置cgi 脚本目录: 将
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改为
ScriptAlias /cgi-bin/ /etc/boa/cgi-bin
这些目录可以自己修改,但是要和网页存放的目录一致。
4、根据3.b创建 /etc/boa/log/error_log文件和/etc/boa/log/access_log文件;
5、根据3.c创建/etc/boa/html目录;
6、根据3.e创建/etc/boa/cgi-bin目录;
7、根据3.d在/etc/boa/html目录下新建index.html文件;
8、要测试cgi程序,可以在/etc/boa/cgi-bin目录下放置cgi程序;
五、测试是否成功
在linux下浏览器中输入你的linux的IP(查看方法#ifconfig),若显示你编写的index.html的内容,恭喜你成功了,此时查看/etc/boa/log/access_log文件,会发现里面有记录访问信息。
若访问失败,可以查看/etc/boa/log/error_log文件,这里会记录一些失败的原因,若出现“icky Linux kernel bug!”,请参照第三项第6点。其他错误请问度娘。