Ubuntu 配置 boa 服务器

原文:http://www.linuxidc.com/Linux/2011-08/39780p3.htm

Ubuntu上编译使用boa服务器的教程文章,已经有很多了,博客上也有很多人写了,我就不赘述了,在这里贴出几处初次使用boa的朋友可能遇到的问题

执行 boa

检查 error_log 里面的内容,有如下错误:

boa.c:194 - unable to bind: Address already in use

因为是在pc机上,默认的boa.conf 里面Port的端口设置为 80,因此运行 boa时会有如上错误,可以在 error_log文件里面查看到

解决办法:修改 boa.conf 里面 的 port 值为 8080(可指定其它未被使用的)保存即可。

再次尝试,浏览器地址栏里输入:192.168.1.111:8080后,www目录下的 index.html 访问正常

接下来测试cgi程序:

浏览器地址栏里输入:192.168.1.111:8080/cgi-bin/test.cgi 有可能遇到 bad gateway 的错误,或者 在error_log里面提示:

request from 192.168.1.119 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory

[01/Aug/2011:10:04:37 +0000] request from 192.168.1.119 "(null)" ("(null)"): header read: Connection reset by peer

这时,需要检查一下 boa.conf 里面的 User 和 Group 后面的设置,比如默认的 User后面 跟的是 nobody,我们需要把Group后面的参数 修改为 0,保存

kill -9 pid(boa)

重新启动boa,再次通过浏览器访问cgi,访问成功!

注:做嵌入式开发板上的boa移植时,这里确实如很多博友写的,修改 User 及 Group 后面的参数为 0,可是初次在Ubuntu里面使用boa的朋友可能就忽略了这个。

Ubuntu 配置 boa 服务器 一例:

一 下载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

Ubuntu 配置 boa 服务器 一例:

操作系统及前期准备
    Ubuntu版本:11.04(我的Ubuntu已经从10.10升级到11.04)
    boa安装软件:boa-0.94.14rc21.tar.gz  (最新版本,网上用的比较多的是boa-0.94.13)

第一步:解压boa软件
    tar zxvf boa-0.94.14rc21.tar.gz

第二步:进入解压后的目录
    配置:./configure
    编译:make

第三步:进入src目录
    执行命令:./boa,此时出现错误:
    Could not chdir to "/etc/boa": aborting

    解决方法:在/etc 里建立boa目录,并把配置文件boa.conf拷进去。
  

    执行命令:./boa,出现错误:
[30/Jun/2011:12:15:40 +0000] No such group: nobody
[30/Jun/2011:12:15:40 +0000] log.c:53 (open_logs) - unable to open error log: No such file or directory

    解决方法:
    1) 把boa.conf中的group和user都改为0。

     2) 在/var/log目录下建立boa文件夹:
    执行:mkdir /var/log/boa

    这时,再次执行./boa。则可执行。用ps -e查看所有进程:

    可见,boa已运行。
    这时我们再查看一下它的日志文件:vi  /***/error_log  (error_log的具体存放目录见boa.conf)。若显示为如下,则表示成功运行。

 
 
  1. [04/Jul/2011:05:47:01 +0000] boa: server version Boa/0.94.14rc21  
  2. [04/Jul/2011:05:47:01 +0000] boa: server built Jul  4 2011 at 12:29:41.  
  3. [04/Jul/2011:05:47:01 +0000] boa: starting server pid=5438, port 80 

    以上表示,boa绑定在80端口,它的id号为5438。
    然后,放一个网页文件到已设置的网页目录里,接着在浏览器中输入系统的IP地址,则可显示出被放入的网页。
    如果没有成功的显示出来,则需检查它的错误日志文件,即error_log,看看是否有错误产生,及boa.conf配置文件等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值