boa是一個開源web server,簡單小巧,很適合嵌入式場合
下載最新的boa源碼,版本是0.94.14rc21
http://www.boa.org/
先安裝兩個包,否則可能configure通不過
sudo apt-get install bison flex
./configure
cd src
vi Makefile
修改編譯器gcc爲相應的arm-linux-gcc
CC=arm-linux-gcc
CPP=arm-linux-gcc -E
返回根目錄
cd ..
make
在src目錄下生成可執行文件boa
這裏值得一說的是log.c裏面有一個error_log_name默認是沒有指定的,如果需要的話自己指定以下,不需要的話就把它註釋掉,否則boa啓動回報錯
我是這樣處理的,跳過整個if,這樣就不需要error log了
log.c line 53
if (0/*error_log_name*/) {
49 int error_log;
50
51 /* open the log file */
52 error_log = open_gen_fd(error_log_name);
53 if (error_log < 0) {
54 DIE("unable to open error log");
55 }
另外還需要一些配置文件
boa根目錄下有個example,裏面有boa.conf
修改一下配置,以下是從別人那裏靠的,記錄下來當作參考:
#vi boa.conf
(1)Group的修改
修改 Group nogroup
爲 Group 0
(2)user的修改
修改 User nobody
爲 User 0
(3)ScriptAlias的修改
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
爲 ScriptAlias /cgi-bin/ /www/cgi-bin/
(5)DoucmentRoot的修改
修改DoucmentRoot /var/www
爲DoucmentRoot /www
(6)ServerName的設置
修改#ServerName www.your.org.here
爲 ServerName www.your.org.here
否則會出現錯誤“gethostbyname::No such file or directory”
(7)AccessLog修改
修改AccessLog /var/log/boa/access_log
爲#AccessLog /var/log/boa/access_log
否則會出現錯誤提示:“unable to dup2 the error log: Bad file descriptor”
(8)以下配置和boa.conf的配置有關,都是在ARM根文件系統中創建
以下步驟在開發板上進行:
創建目錄/etc/boa並且把boa 和 boa.conf拷貝到這個目錄下
mkdir /etc/boa
創建HTML文檔的主目錄/www
mkdir /www
創建CGI腳本所在錄 /www/cgi-bin
mkdir /www/cgi-bin
以下步驟在ubuntu下進行:
將boa.conf拷貝到開發板根文件系統的/etc/boa下
#cp boa.conf /source/rootfs/etc/boa
將boa拷貝到開發板根文件系統的/etc/boa下
#cp src/boa /source/rootfs/etc/boa
將ubuntu下/etc/mime.types拷貝到開發板根文件系統的/etc下
#cp /etc/mime.types /source/rootfs/etc
將你的主頁index.html拷貝到www目錄下
./boa&