一、下載源碼包、準備編譯工具、環境。
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”