BOA服务器的搭建以及移植到开发板

一、 概述

  • 硬件资源:IAC-335X-Kit 开发板
  • 宿主机:ubuntu16.04
  • 交叉编译工具:arm-arago-linux-gnueabi

二、 BOA搭建

  1. 先确定交叉编译工具是否安装正确。
  2. 安装需要工具bison,flex
    sudo apt-get install bison flex
  3. 解压boa-0.94.13.tar.gz
    tar –zxvf boa-0.94.13.tar.gz
  4. 修改文件
    (1)修改 src/compat.h
    找到 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
    (2)修改 src/log.c
    注释
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}

为:

/*if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}*/

(3)修改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

注释掉下面语句:

if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!);
}

#if 0
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!);
}
#endif

(4)修改src/defines.h (修改boa传输文件的大小限制,默认1MB修改为16MB)
找到
#define SINGLE_POST_LIMIT_DEFAULT 1024 * 1024 /* 1 MB */
修改为
#define SINGLE_POST_LIMIT_DEFAULT 1024 * 1024 * 16 /* 16 MB */

  1. 生成Makefile文件
    执行:
    cd boa-0.94.13/src
    ./configure
  2. 修改Makefile
    cd src
    vim Makefile
    修改CC = gccCC = arm-arago-linux-gnueabi-gcc
    修改CPP = gcc -ECC = arm-arago-linux-gnueabi-gcc -E
  3. 编译
    make
    然后为生成的二进制文件boa瘦身
    arm-arago-linux-gnueabi-strip boa

三、 BOA移植

  1. Boa的配置(宿主机下进行)
    在boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:
    vi boa.conf
    (1)Group的修改
    修改 Group nogroupGroup root
    (2)user的修改
    修改 User nobodyUser root
    (3)ScriptAlias的修改
    修改 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ScriptAlias /cgi-bin/ /www/cgi-bin/
    (4)DoucmentRoot的修改
    修改 DoucmentRoot /var/www
    DoucmentRoot /www
    (5)ServerName的设置
    修改 #ServerName www.your.org.here
    ServerName www.your.org.here
    (6)AccessLog修改(访问日志文件,不需要可以直接#注释)
    修改 AccessLog /var/log/boa/access_log
    AccessLog /www/log/boa/access_log
  2. BOA移植(开发板上进行):
    (1)创建目录/etc/boa并且把boa 和 boa.conf拷贝到这个目录下
    mkdir /etc/boa
    (2)创建HTML文档的主目录/www
    mkdir /www
    (3)创建CGI脚本所在录 /www/cgi-bin
    mkdir /www/cgi-bin
    (4)创建日志文件目录及空日志文件
    mkdir /www/log
    mkdir /www/log/boa
    touch /www/log/boa/error_log
    (5)将boa.conf拷贝到开发板根文件系统的/etc/boa下
    (6)将boa拷贝到开发板根文件系统的/etc/boa下
    (7)将宿主机下/etc/mime.types拷贝到开发板根文件系统的/etc下
  3. 测试
    (1)在开发板运行BOA程序
    /etc/boa/boa
    出现如下图信息即可
    (2)静态网页测试
    随便找个*.html文件放入/www目录下,在浏览器中地址栏输入 开发板ip/*.html,访问成功即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章