Boa 下载地址:http://www.boa.org/boa-0.94.13.tar.gz

1、解压生成Makefile

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

cd boa-0.94.13/src #进入源代码文件夹

./configure
#生成Makefile

注:

1、假设为嵌入式开发板编译需改动Makefile

改动Makefile文件。找到CC=gcc,将其改成CC = arm-linux-gcc( arm-linux-gcc是3.3.2版的arm gcc编译器,

假设是3.4.5版本号的gcc用:arm-softfloat-linux-gnu-gcc。当使用该版本号,本文其余地方都如此更改),

再找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,并保存退出。

2、编译时会出现错误

错误信息:

  debian:/home/a/sss/boa-0.94.13/src# make

  gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c

  util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token

  make: *** [util.o] Error 1

  解决方法:

  改动 src/compat.h

  找到

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

  改动成

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

改动log.c

   凝视掉

   if (dup2(error_log, STDERR_FILENO) == -1) {

   DIE("unable to dup2 the error log");

   }

3、简单配置

Boa须要在/etc文件夹下建立一个boa文件夹,里面放入Boa的主要配置文件boa.conf。在Boa源代码文件夹下已有一个演示样例boa.conf。

mkdir /etc/boa/

cp boa-0.94.13/boa.conf
/etc/boa/

改动 ScriptAlias 项 为 :ScriptAlias /cgi-bin/ /var/www/cgi-bin/

并加入 /var/www/cgi-bin 文件

#监听的port号,缺省都是80。一般无需改动

Port 80

# bind调用的IP地址。一般凝视掉。表明绑定到INADDR_ANY。通配于server的全部IP地址

#Listen 192.68.0.5

#作为哪个用户执行。即它拥有该用户的权限。一般都是nobody(linux默认有),须要/etc/passwd中有nobody用户

User nobody

#作为哪个用户组执行。即它拥有该用户组的权限,一般都是nogroup(linux默认有)。须要在/etc/group文件里有nogroup组

Group nogroup

#很重要。HTML文档的主文件夹。

假设没有以/開始,则表示从server的根路径開始。

DocumentRoot /var/www

#假设收到一个用户请求的话,在用户主文件夹后再添加的文件夹名

UserDir public_html

#HTML文件夹索引的文件名称,也是用户没有指定訪问文件夹时返回的文件名称

DirectoryIndex index.html

#很重要。指明CGI脚本的虚拟路径相应的实际路径。一般全部的CGI脚本都要放在实际路径里

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

4、错误

1.错误1: gethostbyname:: No such file or directory

解决的方法: 改动boa.conf 去掉 ServerName www.your.org.here 前的凝视符号(#)

2

解决的方法: 改动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

解决的方法: 改动 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

解决的方法: 改动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

解决的方法: 改动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

解决方法:

方法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

5、启动

将boa boa_indexer 拷贝到/bin 文件夹下

运行 boa 启动boa

通过 ps aux | grep boa 查看boa是否启动。

注:

无法启动可能是port问题,尝试改动port

boa安装的更多相关文章

  1. ubuntu1304下安装boa服务器

    本测试在ubuntu1304下测试,具体步骤如下: 1下载源码:www.boa.org,可在ubuntu下自带的火狐浏览器下载,也可在window下下载,然后再移到ubuntu下: 2打开终端,将bo ...

  2. PostgreSQL系列一:PostgreSQL简介与安装

    一.PostgreSQL简介     1.1 PostgreSQL概述             PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON和JSONB类型. ...

  3. wxPython+Boa Constructor环境配置

    配置之前先完成eclipse + Pydev的配置环境.详见http://www.cnblogs.com/dflower/archive/2010/05/13/1734522.html 1. 安装 w ...

  4. 基于mini2440的boa服务器移植

    win7 系统  开发板:mini2440 虚拟机:ubuntu12.04 准备工作:确保主机与开发板之间能够正常通信,即能够ping通,具体的操作课参考我上一篇随笔. 1.首先从 http://ww ...

  5. Ubuntu 14.04下安装eclipse搭建C++开发环境

    安装过程分为两部分:1.JAVA开发环境,即JDK的安装:2.eclipse的安装: 一.安装包下载 1.JDK官网下载地址:http://www.oracle.com/technetwork/jav ...

  6. DG_Oracle DataGuard Primary/Standby物理主备节点安装实践(案例)

    2014-09-09 Created By BaoXinjian

  7. boa服务器安装

    boa是一个轻量级的web服务器,单进程单任务模式,支持CGI,是嵌入式行业应用较广的一个轻量级服务器系统. 这是我准备往嵌入式开发板里移植的时候在ubuntu上做的实验.多少有点参考价值. 现在简要 ...

  8. 三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记

    一:移植Boa(web服务器)到嵌入式Linux系统 一.Boa程序的移植 1.下载Boa源码    下载地址: http://www.boa.org/    目前最新发行版本: 0.94.13   ...

  9. Boa服务器在ARM+Linux上的移植

    下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助. 环境        主机:ubuntu8.10        交叉工具链:gcc-3.4.5-glibc-2.3.6         ...

随机推荐

  1. python字典概述

    字典 1.    概述 字典是一个无序的数据集合,序列类型用有序的数字键做索引将数据以数组的形式存储. 在字典中能获得的有序集合只能是键的集合或者是值得集合,方法keys()或者value()返回一个 ...

  2. 《C陷阱与缺陷》读书笔记

    1. 词法“陷阱” = 不同于 == , 可以通过if( 1 == a )来避免 & | 不同于 && || 词法分析中的“贪心法” 编译器将程序分解成符号的方法是,从左到右一 ...

  3. Exploit用法示例

    一.msf> show exploits与msf> show payloads:这两条命令用于展示Metaploit目录中所有可用的漏洞利用代码和攻击载荷. 二.msf> searc ...

  4. PHP中mysql_affected_rows()和mysql_num_rows()区别

    mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数mysql_num_rows -- 函数返回结果集中行的数目. config.php <?php hea ...

  5. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  6. Asp.net MVC Bundle 的使用与扩展

    一.Asp.net 自带Bundle的使用: 1. 在Globale中注册与配置 BundleConfig.RegisterBundles(BundleTable.Bundles); public c ...

  7. 基于MapReduce的关系代数运算(2)

    1.自然连接 Map函数:对于R中的每个元组(a,b),生成键值对(b,(R,a)),对于S中的每个元组(b,c),生成键值对(b,(S,c)) Reduce函数:每个键值b会与一系列对相关联,这些对 ...

  8. [翻译]Behavior-Driven Development (BDD)行为驱动开发(二)

    测试驱动开发体现了开发人员对软件产品各部分运作方式的理解,而行为驱动开发则关注于开发人员对软件产品最终表现的行为的预期. 行为驱动开发 TDD更像是一种范式而不是一个过程.它描述了一种先编写测试,然后 ...

  9. 修改hosts文件解决OneDrive被墙的问题

    增加如下内容就可以了.如果不知道修改hosts文件的具体方法请自行百度. 134.170.108.26 onedrive.live.com 134.170.108.152 skyapi.onedriv ...

  10. 解决Windows时间同步失败问题!系统时间同步设置!

    使用NTP协议可以让你的计算机自动与服务器上的时间同步.从而保持最准确的时间. 中国国家授时中心的IP地址是:210.72.145.44 (至少我一直没ping通) 在Windows XP/2000/ ...