嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程_第1頁
嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程_第2頁
嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程_第3頁
嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程_第4頁
嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、嵌入式web服務(wù)器boa移植到mini2440開發(fā)板詳細過程1、概述為了和開發(fā)板上用的httpd服務(wù),我選用的服務(wù)器是boa,boa已經(jīng)沒有更新了,但是現(xiàn)在的應(yīng)用仍然很大,當然更先進的AppWeb當然是更好的選擇,不過學習應(yīng)先從簡單的入手。本教程使用環(huán)境是Red Hat Enterprise Linux 6,交叉編譯工具是arm-linux-gcc4.3.2,開發(fā)板是mini2440,開發(fā)板內(nèi)核是、到/下載源碼,boa最終版是0.94.133、解壓文件1)解壓rootlocalhost open_source# lsboa-0.94.13.ta

2、r.gz rootlocalhost open_source# tar -xvf boa-0.94.13.tar.gz -C ./rootlocalhost open_source# lsboa-0.94.13 boa-0.94.13.tar.gz2)為了和X86版本區(qū)別把解壓出來的文件夾boa-0.94.13重新命名為boa-0.94.13_armrootlocalhost open_source# mv boa-0.94.13 boa-0.94.13_arm4. 編譯前修改工作(主要是因為boa太久沒有更新,目前相對說比較老,要修改下才能通過編譯)1)修改vi compat.h文件root

3、localhost open_source# lsboa-0.94.13_arm boa-0.94.13.tar.gz rootlocalhost open_source# cd boa-0.94.13_arm/src/rootlocalhost src# vi compat.h找到#define TIMEZONE_OFFSET(foo) foo#-tm_gmtoff修改成#define TIMEZONE_OFFSET(foo) (foo)-tm_gmtoff即將120行和126行的foo#-tm_gmtoff改為foo-tm_gmtoff否則會出現(xiàn)錯誤:util.c:100:1: error

4、: pasting t and - does not give a valid preprocessing token make: * util.o 錯誤 12)修改 src/log.c注釋掉if (dup2(error_log, STDERR_FILENO) = -1) DIE(unable to dup2 the error log); 為:/*if (dup2(error_log, STDERR_FILENO) = -1) DIE(unable to dup2 the error log);*/否則會出現(xiàn)錯誤:log.c:73 unable to dup2 the error log:b

5、ad file descriptor3)修改src/boa.c注釋掉下面兩句話:if (passwdbuf = NULL) DIE(”getpwuid”);if (initgroups(passwdbuf-pw_name, passwdbuf-pw_gid) = -1) DIE(”initgroups”);為#if 0 if (passwdbuf = NULL) DIE(”getpwuid”);if (initgroups(passwdbuf-pw_name, passwdbuf-pw_gid) = -1) DIE(”initgroups”);#endif否則會出現(xiàn)錯誤:boa.c:211 -

6、 getpwuid: No such file or directory 。注釋掉下面語句:if (setuid(0) != -1) DIE(”icky Linux kernel bug!”);為#if 0if (setuid(0) != -1) DIE(”icky Linux kernel bug!”);#endif否則會出現(xiàn)問題:boa.c:228 - icky Linux kernel bug!: No such file or directory5、 配置boa服務(wù)器,編輯boa-0.94.13目錄下的boa.conf文件,按如下配置:修改:User nobody (48行)為:Use

7、r0 #用戶修改: Group nogroup (49行)為:Group0 #用戶組修改Group的參數(shù)為0是因為系統(tǒng)中沒有nogroup組,如果你沒有nobody用戶,那么User nobody也要做相應(yīng)修改(修改成自己的用戶名亦可)。其它采用默認設(shè)置。如有必要,可以參看中的參數(shù)說明。ServerNamechenzhifa # (94行)服務(wù)器名字,這里默認是注釋掉的,一定要去掉注釋 DocumentRoot/var/www #(111行) 為HTML文件目錄ScriptAlias/cgi-bin/ /var/www/cgi-bin/#(193行)CGI程序目錄注意ScriptAlias 項

8、ScriptAlias /cgi-bin/ /var/www/cgi-bin是錯的,要改為ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 就相差一個 / ,否則測試cgi程序時,在瀏覽器地址欄中輸入9/cgi-bin/cgi-hello.cgi會出現(xiàn)以下錯誤:The requested URL /cgi-bin/ cgi-hell.cgi was not found on this server.6. 生成Makefile文件,并修改其中的交叉編譯器rootlocalhost boa-0.94.13_arm# cd src/rootloca

9、lhost src# ./configurerootlocalhost src# vi Makefile修改 編譯器:第31行,32行 31 CC = gcc 32 CPP = gcc E為,保存并退出。7. 編譯:rootlocalhost src# make8. 復(fù)制編譯得到的可執(zhí)行文件到根文件系統(tǒng):rootlocalhost src# cp boa /opt/s3c2440/root_nfs/bin/9. 修改boa服務(wù)器程序權(quán)限(給最大權(quán)限):rootlocalhost boa-0.94.13_arm# chmod 777 /opt/s3c2440/root_nfs/var/www/c

10、gi-bin/cgi-hello.cgi10. 在根文件系統(tǒng)中創(chuàng)建服務(wù)器目錄(和boa中的相同)rootlocalhost src# mkdir /opt/s3c2440/root_nfs/varrootlocalhost src# mkdir /opt/s3c2440/root_nfs/var/wwwrootlocalhost src# mkdir /opt/s3c2440/root_nfs/var/www/cgi-bin11. 復(fù)制配置文件到根文件系統(tǒng)中/etc/boa/目錄中,注意boa目錄要自動先創(chuàng)建rootlocalhost src# cd ./rootlocalhost boa-0

11、.94.13_arm# mkdir /opt/s3c2440/root_nfs/etc/boarootlocalhost boa-0.94.13_arm# cp boa.conf /opt/s3c2440/root_nfs/etc/boa/12. 復(fù)制mime.types文件到根文件系統(tǒng)的中etc文件夾中。(mime.types為x86主機/etc/目錄下的文件,里面內(nèi)容是Linux下文件類型對應(yīng)的處理程序)rootlocalhost boa-0.94.13_arm# cp /etc/mime.types /opt/s3c2440/root_nfs/etc/13. 創(chuàng)建boa日志存放目錄和日志

12、文件,需要手動創(chuàng)建(路徑要和boa中的配置相同)rootlocalhost boa-0.94.13_arm# mkdir /opt/s3c2440/root_nfs/var/logrootlocalhost boa-0.94.13_arm# mkdir /opt/s3c2440/root_nfs/var/log/boarootlocalhost boa-0.94.13_arm# touch /opt/s3c2440/root_nfs/var/log/boa/access_log14. 編譯測試程序,cgi-hello.c (本人要當前目錄中建了一個test文件夾,其中存放了測試的cgi-hel

13、lo.c文件 )rootlocalhost boa-0.94.13_arm# arm-linux-gcc -o test/cgi-hello.cgi test/cgi-hello.ctest/cgi-hello.c: In function main:test/cgi-hello.c:5: warning: return type of main is not int15. 復(fù)制生成的cgi測試程序到根文件系統(tǒng)中存放boa服務(wù)器目錄下的cgi-bin目錄下(cgi程序全部要放在這個目錄下):rootlocalhost boa-0.94.13_arm# cp test/cgi-hello.cgi

14、 /opt/s3c2440/root_nfs/var/www/cgi-bin/附cgi-hello.c 源碼:#include #include void main() printf(Content-type: text/htmlnn);/注意這里要兩個換行符,這是HTML的規(guī)定 printf(n); printf(CGI TEST); printf(); printf(BOA CGI TEST); printf(huyi); printf(Hellon); printf();16. 測試boa服務(wù)器cgi程序支持功能1)啟動mini2440開發(fā)板,掛接上根文件系統(tǒng)后,在超級終端中啟動boa服

15、務(wù)器程序如下:lib80211: common routines for IEEE802.11 driverss3c2410-rtc s3c2410-rtc: setting system clock to 2008-09-12 12:17:36 UTC ()eth0: link downIP-Config: Complete: device=eth0, addr=9, mask=, gw=, host=www, domain=, nis-domain=, bootserver=02, r

16、ootserver=02, rootpath=Looking up port of RPC /2 on 02eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1Looking up port of RPC /1 on 02VFS: Mounted root (nfs filesystem) on device 0:12.devtmpfs: mountedFreeing init memory: 132KPlease press Enter to activate this console

17、. # boa 以下為成功的提示信息12/Sep/2008:11:25:52 +0000 boa: server version Boa/0.94.1312/Sep/2008:11:25:52 +0000 boa: server built Mar 30 2012 at 21:21:36.12/Sep/2008:11:25:52 +0000 boa: starting server pid=603, port 802)在瀏覽器地址欄中輸入9/cgi-bin/cgi-hello.cgi 可以看到以下效果,則說明服務(wù)器架設(shè)已經(jīng)成功了。(備注:9是mini

18、2440開發(fā)板的ip地址)cgic2.05庫/Upload/2009/8/27/9f283f47-19c8-4251-9e13-7fb7bdc07bc4.rarBoa Webserver配置參數(shù)說明:Port:boa服務(wù)器監(jiān)聽的端口,默認的端口是80。如果端口小于1024,則必須是root用戶啟動服務(wù)器。Listen:綁定的ip地址。不使用這個參數(shù)時,將綁定所有的地址。User:連接到服務(wù)器的客戶端的身份,可以是用戶名或UID。(為什么非要指定為文件的所有者才能訪問網(wǎng)頁呢?nobody用戶也有讀權(quán)限啊)Group:連接到服務(wù)器的客戶端的組,可以是

19、組名或GID。ServerAdmin:服務(wù)器出故障時要通知的郵箱地址。ErrorLog:指定錯誤日志文件。如果路徑?jīng)]有以“/”開始,則相對于ServerRoot路徑。沒有配置時默認的文件是/dev/stderr。若不想記錄日志,指定文件為/dev/null。AccessLog:設(shè)置存取日志文件,與ErrorLog類似。UseLocaltime:設(shè)置使用本地時間,使用UTC時注釋這個參數(shù)。這個參數(shù)沒有值。VerboseCGILogs:在錯誤日志文件中記錄CGI啟動和停止時間,若不記錄,注釋這個參數(shù)。這個參數(shù)沒有值。ServerName:指定服務(wù)器的名稱,當客戶端使用gethostname + gethostbyname時返回給客戶端。VirtualHost:虛擬主機開關(guān)。使用此參數(shù),則會在DocumentRoot設(shè)定的目錄添加一個ip地址作為新的DocumentRoot來處理客戶端的請求。如DocumentRoot設(shè)置為/var/www,則http:/localhost/ 則轉(zhuǎn)換成/var/www//,若注釋此參數(shù),則為/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論