你們好!這裏是電魚電子(www.dianyu.net)給你們分享的一期boa製做:html
1.準備開發環境:linux
(1)VMware 10.0瀏覽器
(2)Ubuntu 14.04 64bit網絡
(3)Sail335開發板測試
(4)交叉編譯器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linuxui
2.源碼:.net
(1)Boa源碼:boa-0.94.13.tar.gzserver
(2)Boa測試頁面:index.htmlhtm
3.移植過程:ip
(1)移植Boa
①解壓縮
#tar zxvf boa-0.94.13.tar.gz
②進入boa-0.94.13目錄
#cd boa-0.94.13
③進入src目錄,在src目錄下運行./configure
④生成Makefile,修改Makefile的編譯器選項
#gedit Makefile
CC = gcc 改爲 CC = arm-linux-gnueabihf-gcc
CPP = gcc -E 改爲 CPP = arm-linux-gnueabihf-gcc -E
⑤添加交叉編譯器臨時環境變量
#export PATH=/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/:$PATH
⑥修改文件 src/boa.c,將boa.c文件中如下幾行判斷去掉便可。
if ( setuid ( 0 ) != - 1 ) {
DIE ( "icky Linux kernel bug!" );
}
⑦ 修改文件src/compat.h
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改爲
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
⑧把src 文件夾下的config.c 裏的 if(!server_name){..........}
(大概在266 行到 286 行之間)註釋掉
⑨修改src/log.c 註釋掉
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
⑨編譯代碼
#make
4.運行環境搭建
(1)在開發板中建立如下目錄
/etc/boa /var/logs /var/logs/boa /var/www /var/www/cgi-bin
#mkdir -p /etc/boa
#mkdir -p /var/logs
#mkdir -p /var/logs/boa
#mkdir -p /var/www
#mkdir -p /var/www/cgi-bin
(2)拷貝、修改文件
拷貝boa-0.94.13/boa 和 boa-0.94.13/boa_indexer 到 /usr/bin。
拷貝Ubuntu12.04的/etc/mime.type 到 開發板 /etc
拷貝boa-0.94.13/boa.conf 到 /etc/boa
修改/etc/boa/boa.conf
#ServerName www.your.org.here 改成 ServerName www.dianyu.org
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 改成 ScriptAlias /cgi-bin/ /var/www/cgi-bin/
AccessLog /var/log/boa/access_log 改成 AccessLog /var/logs/boa/access_log
ErrorLog /var/log/boa/error_log 改成 ErrorLog /var/logs/boa/error_log
拷貝 index.html 到 /var/www
5.測試與運行
鏈接好PC與開發板網卡0(eth0)的網絡鏈接
將開發板eth0網卡設置ip爲192.168.1.123
#ifconfig eth0 192.168.1.123 up
測試開發板網卡0與PC的網絡鏈接
#ping PC的IP地址
運行Boa
#boa&
在PC上打開瀏覽器,在瀏覽器中輸入192.168.1.123,查看boa顯示的index.html(這個文件名稱和boa.conf文件中的DirectoryIndex index.html中的index.html要同樣)