首页 > 技术文章 > CentOS下搭建BOA及配置

dragon-aslan 2013-12-31 10:22 原文

  最近接受一个活,要用到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 nobodyUser 0,修改Group nogroupGroup 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点。其他错误请问度娘。

推荐阅读