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,訪問成功即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章