zedboard--嵌入式web服務器搭建(二十一)

zedboard提供的demo系統很迷你,但是也能移植嵌入式Web服務器的。這裏就移植boa服務器。

1.下載Boa服務器源代碼(安裝好了交叉編譯器)

http://www.boa.org/,選擇最後一個發佈的版本0.94.13

tar -xzvf boa-0.94.13.tar.gz  -C  /home/xzy/sdb1/boa/

目錄自己選擇,要安裝好交叉編譯器

2.修改

進入解壓後的src這個文件夾,執行./configure,如果沒有可執行權限的話用chmod就可以了。

修改Makefile    輸入 vim Makefile

找到CC=gcc,替換成我們的交叉編輯環境。  CC=arm-xilinx-linux-gnueabi-gcc

找到CPP=gcc -E,替換成我們的交叉編輯環境。  CC=arm-xilinx-linux-gnueabi-g++

3.改bug

註釋下面這段代碼,對應225,226,227.

4.修改compat.h

#define TIMEZONE_OFFSET(foo) foo## ->tm_gmtoff,修改

#define TIMEZONE_OFFSET(foo) foo ->tm_gmtoff

5.make

報錯1,yacc -d boa_grammar.y make:yacc:command not found

解決方法apt-get install bison

在make 報錯2,y.tab.c:In function 'yyparse'

解決方法 apt-get install flex

make ,成功了


make成功之後,運行如下命令去除可執行文件的冗餘信息:

arm-xilinx-linux-gnueabi-strip boa


6配置Boa服務器

在源碼目錄下面可以找到一個boa.conf,我們在這個基礎上修改配置。這個配置參考書上的。

User nobody 改爲User 0

Group nobody 改爲Group 0

ServerName 這個可以自己修改,我沒有修改

#DirectoryMaker /usr/lib/boa/boa_indexer 這個原本是沒有註釋項的,

這裏配置好的一些目錄必須要保證其他的輔助文件和設置和這裏相符,如我們要在demo系統中創建一些目錄,下面會創建。另外將可執行文件boa,配置文件boa.conf,mime.types(在linux主機下的/etc下)拷貝到U盤,因爲我還沒有單間NFS服務器,所以要藉助U盤。在新建一個index.html文件。




7.Boa最後的測試

7.1 啓動系統,掛載U盤,mount /dev/sda1 /opt/

7.2 新建目錄 mkdir -p /etc/boa /var/log/boa /var /www/cgi-bin

7.3 拷貝文件到相應目錄  

拷貝配置文件 cp boa.conf /etc/boa/

拷貝 cp mime.types /etc/


7.4 新建兩個log文件 vi /var/log/boa/error_log /var/log/boa/access_log 不輸入任何東西,保存就可以了。

7.5 chmod 777 index.html,並且拷貝到 cp index.html /var/www/

7.6 由於我的ip和電腦的ip不在一個網段,更改開發板的ip,ifconfig eth0 202.38.214.211

可以在運行cmd命令(pc機)來ping一下,看是否能ping通。

7.7 在U盤中不是還一個boa可執行文件沒用上嘛,現在是他用上的時候了, 輸入 ./boa &

7.8 在瀏覽器中輸入202.38.214.211


可以看到成功運行了,ps:在書上有提到運行./boa &的時候會看到一些信息,我沒有看到。

另外開發板一掉電,那些新建的目錄就沒有了,這個時候就可以用我們之前的軟件開機運行的那個方法,重新制作出新的文件系統壓縮鏡像,也可以編寫一個啓動腳本(這個有待嘗試)。

8.CGI小嚐試

index.html源碼爲

<html>
<head>
<title>Zedboard WebServer Demo </title>
</head>
<body>
<h1>hello 214!hello xzy!</h1>
<p><a href="./cgi-bin/a.out">cgi in the boa server</a></p>
</body>
</html>

主要是比上面添加了<p><a href="./cgi-bin/a.out">cgi in the boa server</a></p>

CGI源碼


對CGI源碼進行交叉編譯,然後放入zedboard的/var/www/cgi-bin目錄下即可,原來的index.html用上面的index.html代替,其他都一樣。效果如下:


點擊上面的鏈接:出現


當用戶通過Boa服務器訪問到index.html網頁時,單擊CGI鏈接將可以訪問到由上述C語言所編寫的簡易網頁。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章