Boa服務器移植

一、下載源碼包、準備編譯工具、環境。


1、下載源碼:boa-0.94.13.tar 到PC,解壓(我解壓在/tmp/boa)
tar -jxvf boa-0.94.13.tar

2、我用的編譯工具鏈:arm-linux-gcc 4.5.1

3、安裝bison和flex語法分析模塊

    我在配置完後make的時候報錯 make: yacc: Command not found

    安裝完上面的工具後解決問題:
sudo apt-get install flex bison

二:修改源碼文件、配置並編譯:

1、修改/tmp/boa/boa-0.94.13/src目錄下的defines.h:
    第30行#define SERVER_ROOT   “/etc/boa“ 改爲#define SERVER_ROOT   “/home/boa“

2、修改/tmp/boa/boa-0.94.13/src目錄下的compat.h:(原因:##是早期編譯器使用的)

    去掉 第120行"#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff" 中的 "##
    去掉 第126行"#define TIMEZONE(foo) foo##->tm_zone" 中的 "##" 

3、修改/tmp/boa/boa-0.94.13/src目錄下的boa.c:

    註釋掉 第210行~215行:
    註釋掉 第226行 : //DIE("icky Linux kernel bug!");

4、配置:執行 ./configure 生成Makefile

5、修改Makefile:
    CC = gcc 和CPP = gcc -E 改爲 CC = arm-linux-gcc 和 CPP = arm-linux-gcc -E

6、make  生成boa  boa_indexer

三、構建安裝boa目錄

1、在家目錄新建一個boa目錄(即 /home/boa),將剛纔生成的boa和boa_indexer拷貝到該目錄下

2、將tmp/boa/boa-0.94.13下的boa.conf拷貝到這個目錄下;


3、修改boa.conf:
    修改User nobody 爲 User 0 (表示root用戶運行該程序)
    修改Group nogroup 爲 Group 0
    ErrorLog /home/boa/log/error_log  (錯誤日誌放在該文件夾下)    AccessLog /home/boa/log/access_log    (訪問日誌放在該文件夾下)    DocumentRoot /home/boa/www             (網頁文件放在該目錄下)
    DirectoryMaker /home/boa/boa_indexer    
    ScriptAlias /cgi-bin/ /home/boa/cgi-bin  (腳本放置目錄)
   #ServerName 去掉註釋後面爲服務器的名字,可以隨便取

4、在/home/boa目錄下創建log、www、cgi-bin目錄

5、編寫cgi腳本放進cgi-bin目錄:

vim hello.c

#include <stdio.h>
int main(void)
{
printf("Content-type: text/html\n\n");
printf("\n");
printf("\n");
printf("\n");
printf("Hello Mumu!\n");
 
return 0;
}
編譯成cgi腳本:

arm-linux-gcc -o hello.cgi hello.c

將hello.cgi放到cgi-bin目錄下

四、移動boa目錄至開發板

1、將PC上/home/boa目錄壓縮打包

tar -zcvf boa.gz boa

2、將boa.gz下載到開發板,解壓後放置boa目錄至開發板/home下

3、給cgi-bin目錄下的cgi腳本文件執行權限

4、啓動boa:./boa 可查看到boa進程(ps -a)


5、PC上打開瀏覽器,輸入 www.開發板IP/cgi-bin/hello.cgi

     可看到瀏覽器頁面輸出 “Hello Mumu”
發佈了36 篇原創文章 · 獲贊 27 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章