申嵌培訓基于mini2440嵌入式boa服務器移植設計_第1頁
申嵌培訓基于mini2440嵌入式boa服務器移植設計_第2頁
申嵌培訓基于mini2440嵌入式boa服務器移植設計_第3頁
申嵌培訓基于mini2440嵌入式boa服務器移植設計_第4頁
申嵌培訓基于mini2440嵌入式boa服務器移植設計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Internet技術的結合為嵌入式設備的網絡互連提供了一條有效的途徑。把嵌入式設備連接到網絡中,并且實現WebServer功能,使得用戶能通過WEB瀏覽器對現場設備進行,這將極大方便用戶的操作。WebServerWEBInternet互連的關鍵組成部分,研究嵌入式WebServer的原理及其實現對于網絡傳輸、、信息家電等領域具有很強的從功能上來講,Web服務器客戶端的服務請求,并根據客戶端的請求類型提供相應的服務。客戶端使用WEB瀏覽器和服務器進行通信。種交互可以用很多種方法實現,例如SSI(ServerSideIncludes)、CGI(CommonGatewayInterface)、JavaServlet等技術。④嵌入式設備通過嵌入式WebServer與Internet互連,存在一定的問題,例如非用戶操作、信息竊取等,嵌入式WebServer必須解決WEB應用的安全問題。WebServer必須能在嵌入式系統(tǒng)的制約條件下,滿足管理和嵌入式系統(tǒng)的需要。嵌入式系統(tǒng)中WEB服務器也可以包含一個實時操作系統(tǒng)速實現嵌入式WebServer的目的。WEBASP、ASP.NET、JSP、PHP等,然而此等程CGI(公用網關接口,CommonGatewayInterface)為主。CGI是外部擴展應用程序與息交換方式,使得信息在瀏覽器或服務器與外部程序之間流通。更明確的說,CGI僅是在WWW服務器上可執(zhí)行的程序代碼,而它的工作就是控制信息要求而且產生傳回所需的文件,提供通客戶端HTML頁面的接口。按照CGI標準編寫的外部擴展應用程序可以處理客戶端瀏覽器輸入的數據,從而完成CGIHtml網頁無法實現的功能。其www與CGI的工作原理如下。HTTPWWW的基礎,它基于客戶/服務器模型。一個服務器可以為分布在網絡TCP/IP協(xié)議之上的“無連接”協(xié)議。每次連接只處理一提供的信息,并將該部分給指定的CGI擴展程序。CGI擴展程序對信息進行處理CGI的標準輸入。CGI對信息進行處同時也可以進行多進程、多線程的。但是其SIZE不能被嵌入式設備所認同。最后選擇一個名叫BOA的嵌入式WEB服務。BoaHTTP服務器,Web服務器不同的是當有連接請求到來時,它并不為每個連接單獨創(chuàng)建進程,也不通過自身進程來處理多,而是通過HTTPHTTP連接請求,CGI程序創(chuàng)建新的進程,這樣就在最大程度上節(jié)省了系統(tǒng)資源,這對嵌入式系統(tǒng)來說至關重要.、自動解壓文件等功能,因此,BoaHTTP請求處理速度和效率,在嵌入式BoaWeb60KB左右。作為一種單BOAHTTP服務器,源代碼開放、性能優(yōu)秀,特別適合應用在嵌入WebBoaWeb服務器一樣,能夠完成接收客戶端請求、分析請求、響應請求、向客戶端返回請求結果等任務.它的工作過程主要包括:)Web服務器的初始化工作,TCP套接字、綁定端口、開始偵聽、進入循環(huán)結構,以及等待接收客戶瀏覽器的連接請求;)當有客戶端連接請求時,Web服務器負責接收客戶端請求,并保存相關請求信息(c)在接收到客戶端的連接請求之后,分析客戶端請求,解析出請求的方法、URL目標、可選的查詢信息及表單信息,同時根據請求做出相應的處理;(d)Web服務器完成相應處理后,向客戶端瀏覽器發(fā)送響應信息,TCP連用在嵌入式系統(tǒng)中。下面介紹Boa的移植與編譯。Boa ,地址將boa-0.94.13.tar.gz解壓到 下得到boa- ,進入boa-,執(zhí)行./configure,然后在src 下將生成Makefile文件,打開Makefile文件,CC=arm-linux-CPP=arm-linux-gcc在src 下執(zhí)行make命令,將在src 下生成boa可執(zhí)行文件(大致120K,可去掉boa的調試信息對其進行優(yōu)化,執(zhí)行命令#arm-linux-stripboa后,boa變得只有60k不到大小。make時出“util.c:100:1:pasting“t”and“->”doesnotgive make”的錯誤提示,改動compat.h文件:boa boa 下新建 ,并使用命令od-777boa改變文件屬性,將boa-0.94.13/boa.conf拷貝到/opt/rootfs/etc/boa Port80UserrootAccessLog/www/log/boa/error_logServerName/Root/wwwKeepAliveMax1000KeepAliveTimeout10DefaultTypetext/inScriptAlias/cgi-bin//www/cgi-bin/Port的端,默認都是80,無需修改UserUserGroupGroupgroup文件中一個組。作為哪個用戶組,即它擁有該用戶組的權限,一般都是root,需要在/etc/group文件中有root組。ErrorLog錯誤日志文件,error_log記錄了boa的運行日志,如果發(fā)現運行錯誤通過/www/log/boa/error_log也可以設置為:ErrorLog/dev/console AccessLog、ServerName開,否則運行boa時會異常退出,提示“gethostbyname::Nosuchfileordirectory 存放HTML文檔的 ,這里對應根文件系統(tǒng)的 、DirectoryIndexindex.html 索引的文件名KeepAliveMaxHTTP0HTTPKeepAliveTimeoutMimeTypesmime.typesMIMECGIPathCGIPATHScriptAlias/cgi-bin/www/cgi-指明CGI的虛擬路徑對應的實際路徑,一般所有的CGI都要放在實際路徑里,用戶執(zhí)行時輸入站點IP+虛擬路徑+CGI名。其中,/cgi-bin/表示虛擬路徑;/www/cgi-bin/創(chuàng)建與boa.conf相關的 創(chuàng)建HTML文檔的主 創(chuàng)建CGI所在錄:/www/cgi-mkdirwwwod–R777mkdir–m777 mkdirwww/logcdwww/log/boatouch 拷貝Linux主機/etc/mime.types文件到開發(fā)板根文件系統(tǒng)的 將編譯好的boa拷貝根文件系統(tǒng)的 下 [root@localhostsrc]#cpboa[root@smdk2440a/bin]#boa ]boa.c:226-ickyLinuxkernelbug!:Nosuchfileor解決該問題的方法是將boa.c文件中以下幾行判斷注釋即可。if(setuid(0)!=-1)DIE("ickyLinuxkernel}if(setuid(0)!=-1)DIE("ickyLinuxkernel}重新編譯boa,拷貝[root@localhostsrc]#cpboa ]boa:serverversionBoa/0.94.13 ]boa:serverbuiltJan ]boa:startingserverpid=862,port80 下(可以將主機/usr/share/doc/HTML/en-US 的index.html、redhat.css和images 到/www 然后直接在Windows瀏覽器或者虛擬機Linux下的Firefox中輸入開發(fā)板的IP地址(比如:,注意:此IP地址必須與u-boot中設置的開發(fā)板IP地址ipaddr一致)現RedhatenterpriseLinuxVersion5.4的歡迎網頁。至此,靜態(tài)HTML調試成功。如圖所示:}}#includeintmain(void){arm-linux-gccoCGI.c-o最后CGI程序給客戶端發(fā)回一個“留言結束”字樣的頁面,用戶可以在瀏覽器里看到。CC++、PerlPerl等解釋性語CCCGI這種需要大量進行字符串操作的程序,編CGICGIC庫。我們在此只介紹CGIC,有的朋友可以自己在Internet上搜索其他的C庫。無需公開。能接受上傳文件; 能夠設置和接收s;、CGIC庫源代碼從CGIC的主站點http /cgic/源碼,當前版本是2.05版。地址:http /cgic/cgic205.tar.gz。、CGIC解壓cgic205.tar.gz到boa ,得到cgic205 #cdcgic205進入該Makefile改為gcccgictest.o-ocgictest.cgi$(CC$(CFLAGS)cgictest.oocgictest.cgi${LIBS}gcccapture.o-ocapture${LIBS}$(CC$(CFLAGS)capture.oocapture執(zhí)行make命令得到的CGIC庫libcgic.a并生成調試輔助程序capture和測試程序cgictest.cgi,#arm-linux-stripcapturecapture文件進行優(yōu)化,減小大小。capture由原來的100K左右變成29K左右??截愐陨仙傻腸apture和cgictest.cgi可執(zhí)行文件到根文件系統(tǒng)的www/cgi-bin目在瀏覽器輸入,如果打開了cgi測試網頁,表示CGIC庫和測試都移植成功。

溫馨提示

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

評論

0/150

提交評論