因?yàn)橐?所以查了一些資料,再結(jié)合自己的實(shí)際情況,在ARM板子上做了一個WEB服務(wù)器,服務(wù)器可以通過CGI進(jìn)行動態(tài)交互.現(xiàn)記錄于此.
主機(jī):redhat企業(yè)版4
目標(biāo)板:EBD9260-S(內(nèi)核版本2.6.19)
主機(jī)IP:192.168.0.12
目標(biāo)板IP:192.168.0.11
交叉編譯環(huán)境已經(jīng)設(shè)置好.由于ARM資源的限制,不可能將一些大型的服務(wù)器移植上去,對腳本的支持也不大可能,開源的boa就是這么一個服務(wù)器:可以傳送靜態(tài)網(wǎng)頁和通過純CGI的方式進(jìn)行交互.
步驟:
1.從
www.boa.org上下載boa的源碼,目前版本是boa-0.94.13
2.tar -xzvf boa-0.94.13
cd boa-0.94.13/src
./configure,生成Makefile
3.vi Makefile,修改:
CC=armv5l-linux-gcc
CPP=armv5l-linux-gcc -E
保存退出
4.make,出現(xiàn)錯誤:
util.c:100:1:pasting "t" and "->" does not give a valid preprocessing token
5.修改compat.h中:
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
#define TIMEZONE_OFFSET(foo) foo##->tm_zone
為:
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
#define TIMEZONE_OFFSET(foo) (foo)->tm_zone
6.還有一個錯誤需要修改:
將boa.c中的
if(setuid(0)!=-1){
DIE("icky Linux Kernel bug!");
}
將這三行注掉,不然編譯不會出錯,但是啟動不起來
7.重新make,生成可執(zhí)行文件boa
8.剝?nèi)フ{(diào)試信息:armv5l-linux-strip boa
9. 修改boa-0.94.13目錄中的boa.conf:
port 80
user 0
group 0
Errorloog /var/log/boa/error_log
Accesslog /var/log/boa/access_log
server Name
www.xibiren.comDocument Root /var/www
DirectaryIndex index.html
KeepAliveMax 1000
KeepAliveTimeOut 10
Mimetypes /etc/mime.types
DefaultType text.plain
CGIPATH /bin:/usr/bin:/usr/local/bin
Alias /doc /usr/doc
ScriptAlias /cgi-bin/ /var/www/cgi/bin/
10:在目標(biāo)板上:
mkdir /var/www
mkdir /var/www/cgi-bin
mkdir /var/log/boa
mkdir /etc/boa
通過ftp或者nfs的方式將主機(jī)下的/etc/mime_types.h傳到目標(biāo)板/etc下
將剛才修改的boa.conf傳到/etc/boa下
將生成的boa可執(zhí)行文件傳到/usr/bin下
制作index.html,將其傳到目標(biāo)板/var/www/下
11.在目標(biāo)板上啟動boa,在主機(jī)上的瀏覽器中輸入:
http://92.168.0.11就可以看到index.html的內(nèi)容了,如果看到,則說明boa移植成功了
12.測試cgi.
編寫hello.cgi:
#include <stdio.h>
int main(void)
{
printf("Conten-type:text/html\n\n");
printf("<html>\n");
printf("<head><title>CGI OUTPUT</title></head>\n");
printf("<body\n>");
printf("<h1>Hello,xibiren!</h1>\n");
printf("</body>\n");
printf("</html>\n");
exit(0);
}
然后armv5l-linux-gcc -o hello.cgi hello.c
生成hello.cgi,將其傳輸?shù)侥繕?biāo)板上/var/www/cgi-bin/目錄下
13.在主機(jī)瀏覽器中輸入http://192/168.0.11/cgi-bin/hello.cgi
如果能看到:
Hello,xibiren!
的測試界面,則說明cgi測試通過.
//****----------------//
要想進(jìn)一步用好boa的cgi功能,還必須移植CGIC庫.下次再寫了.
//****----------------//
按照上面的步驟執(zhí)行之后,需要重新制作文件系統(tǒng),才能在下此開機(jī)之后能夠使用.
//****-----------------//