现在的位置: 首页 > 综合 > 正文

Ubuntu下配置boa服务器

2013年09月08日 ⁄ 综合 ⁄ 共 2056字 ⁄ 字号 评论关闭

    一 下载Boa源码

  下载地址: http://www.boa.org/

  最新发行版本: 0.94.13

  下载 boa-0.94.13.tar.gz

  解压:# tar xzf boa-0.94.13.tar.gz

     二 安装需要工具bison,flex

  sudo apt-get install bison flex

     三 生成Makefile文件

  执行:

  cd boa-0.94.13/src

  ./configure


     四 然后make,但是为了保证make不出现错误的话必须现修改一些文件(即配置)

        Boa的配置

 

        1 Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。

        修改boa.conf文件:servername去掉注释,nogrounp改为0,/var/www改为/www(可选,设置的什么系统中对应即可)

        2 修改compat.h中的

          #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
          为:
         #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

       3 修改log.c

      注释掉
      if (dup2(error_log, STDERR_FILENO) == -1) {
      DIE("unable to dup2 the error log");
     }
     即修改为:
    #if 0
        if (dup2(error_log, STDERR_FILENO) == -1) {
    DIE("unable to dup2 the error log");
    }
        #endif

修改完成后,make,然后切换为root用户,./boa运行

 

      五 在浏览器中输入本机的ip的地址及访问页面即可,如果有index.html页面,输入ip地址就显示出来了

 

       六 常见错误:

      1    错误1: gethostbyname:: No such file or directory
            解决办法: 修改boa.conf 去掉 ServerName www.your.org.here 前的注释符号(#)
      2   错误1: util.c:100:1: error: pasting "t" and "->" does not give a
valid preprocessing token make: *** [util.o]
           解决办法: 修改 src/compat.h
       找到
       #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
       修改成
       #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
     3   错误2: boa.c:211 - getpwuid: No such file or directory
          解决办法: 修改src/boa.c
     注释掉下面这段程序:
     if (passwdbuf == NULL) {
      DIE(”getpwuid”);
     }
    if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
    DIE(”initgroups”);
    }
   即修改为:
   #if 0
   if (passwdbuf == NULL) {
   DIE(”getpwuid”);
   }
   if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
   DIE(”initgroups”);
   }
  #endif
    4    错误3: boa.c:228 - icky Linux kernel No such file or directory
          解决办法: 修改src/boa.c
      注释掉下面语句:
      if (setuid(0) != -1) {
      DIE(”icky Linux kernel bug!”);
      }
      即修改为:
     #if 0
     if (setuid(0) != -1) {
     DIE(”icky Linux kernel bug!”);
     }
    #endif
   5   错误4: log.c:73 unable to dup2 the error log:bad file descriptor
       解决方法:
       方法1> 确定日志目录对与所有用户都具有可读/写的权限
       方法2> 修改src/log.c (建议采用方法1)
  注释掉
   if (dup2(error_log, STDERR_FILENO) == -1) {
   DIE("unable to dup2 the error log");
   }
  即修改为:
  #if 0
      if (dup2(error_log, STDERR_FILENO) == -1) {
   DIE("unable to dup2 the error log");
   }
      #endif

 

 

 

 

    

抱歉!评论已关闭.