国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式Linux環(huán)境下Web頁面技術(shù)的實現(xiàn)

2009-12-27 05:19
現(xiàn)代商貿(mào)工業(yè) 2009年1期

葉 欣

摘 要:介紹了通用網(wǎng)關(guān)接口(CGI)技術(shù)的工作原理,并選用Boa Server作為Web服務(wù)器,給出嵌入式Linux環(huán)境下的Web服務(wù)器參數(shù)配置方法,并利用該方法在S3C2410硬件開發(fā)板中實現(xiàn)了具體的Boa服務(wù)器環(huán)境,給出了一個具體的CGI應(yīng)用實例。

關(guān)鍵詞:嵌入式WEB;通用網(wǎng)關(guān)接口 ;Boa ;Web服務(wù)器

中圖分類號:TP文獻標(biāo)識碼:A文章編號:1672-3198(2009)01-0356-01お

1 通用網(wǎng)關(guān)接口技術(shù)

CGI(Common Gateway Interface)是實現(xiàn)Web頁面技術(shù)的關(guān)鍵所在,其定義是Web服務(wù)器與外部應(yīng)用程序之間通信的標(biāo)準(zhǔn)接口。與專用編程接口相比具有以下優(yōu)點:

①獨立于服務(wù)器體系結(jié)構(gòu)和編程語言。編程者可以自由選擇適合于特定編程任務(wù)的語言。

②提供完整的進程隔離機制。CGI程序獨立于Web服務(wù)器,運行在自己的進程地址空間,只與服務(wù)器交換接口信息,從而保證了服務(wù)器免受出錯CGI進程的影響和用戶的有意試探,提高了安全性和穩(wěn)定性。

CGI主要功能是在Web環(huán)境下,將WWW與Web數(shù)據(jù)庫集成在一起,順利地實現(xiàn)了動態(tài)Web頁面查詢。從用戶端瀏覽器傳遞一些指令或參數(shù)給Web服務(wù)器,CGI 腳本通過標(biāo)準(zhǔn)輸入STDIN獲得輸入信息,最后使用STDOUT輸出HTML形式的結(jié)果文件,經(jīng)Web服務(wù)器送回瀏覽器顯示給用戶。由于用戶能傳遞不同的參數(shù)給CGI 腳本,所以CGI技術(shù)使得瀏覽器和服務(wù)器之間具有很強交互性。

其具體工作過程如圖1所示。

其中,CGI與表單之間的信息交互方法有兩種模式:“GET”和“POST” 。選擇哪一種模式取決于表單(FORM)的“METHOD”字段的設(shè)置,如果METHOD 設(shè)定為POST,數(shù)據(jù)會以STDIN 方式送入CGI接口;如果METHOD 設(shè)定為GET,數(shù)據(jù)會保存在QUERY_STRING的環(huán)境參數(shù)中,以供接口讀取。 使用GET方式編寫CGI 程序會更加簡單,但是POST 方式則更先進。

2 運行環(huán)境

根據(jù)CGI 的工作機理,在嵌入式系統(tǒng)中構(gòu)建CGI運行環(huán)境需要解決下面幾個主要工作:

(1) 軟硬件平臺: ARM處理器,以高性能、低功耗、低成本等優(yōu)點獲得大量。操作系統(tǒng)方面,Linux因其開源性、可裁剪,廣泛支持ARM體系結(jié)構(gòu),備受親睞。無疑本文采用ARM-Linux作為CGI的系統(tǒng)平臺是很好的選擇。

(2) 合適的Web服務(wù)器:目前的主流Web服務(wù)器,包括Apache ,httpd ,thttpd 和Boa等幾種。其中Boa開放源代碼,性能高,運行所需空間僅為140KB左右,對CGI的支持效果最佳。因此,本文選擇Boa作為ARM-Linux系統(tǒng)的Web服務(wù)器。

(3) 運行環(huán)境配置:不同的Web服務(wù)器的配置方法大同小異,具體過程中需要考慮的因素有:CGI的默認啟動路徑配置,CGI服務(wù)器根路徑(SERVER-ROOT) 配置,CGI 腳本路徑動態(tài)參數(shù)配置,CGI 源碼路徑配置。

(4) 交叉編譯生成目標(biāo)機模塊:在宿主機中完成了全部的配置工作后,需要利用特定平臺的交叉編譯工具來生成特定平臺的交叉編譯模塊,然后再下載到目標(biāo)機。

3 Web服務(wù)器Boa在ARM-Linux平臺上的構(gòu)建

選用ARM-Linux平臺作為嵌入式系統(tǒng)CGI,在S3C2410開發(fā)板上構(gòu)建Boa服務(wù)器的具體過程為:

3.1 對Boa源碼進行交叉編譯

此過程中需要在/boa/src/configure文件中添加CC與CPP交叉編譯選項,同時還要對Makefile文件中CC與CPP選項做同樣的改動。在Redhat虛擬操作系統(tǒng)下:CC=/opt/host/ armv4l/bin/armv4l-unknown-linux-gcc;CPP =/opt/host/armv4l/bin/armv4l-unknown-linux.cpp,然后make即可生成所需平臺的Boa可執(zhí)行文件。

3.2 Boa的配置

Boa的配置是在boa.conf文件里進行設(shè)定,該文件是一個文本文件,由一些規(guī)則組成,用于配置Boa 服務(wù)器時指定相應(yīng)接口、服務(wù)器名稱、一些相關(guān)文件路徑等。對其具體修改如下:

①將User nobody改為User 0

②將Group nogroup 改為Group 0

③將DocumentRoot/var/www改為DocumentRoot/home/httpd/html

④定義CGI 程序所在的目錄:ScriptAlias/cgi2bin/home/httpd/cgi2bin/ ⑤定義默認頁面文件,配置后的Boa服務(wù)器將/home/ httpd 作為服務(wù)器的根目錄,CGI 程序放在/home/httpd/cgi2bin目錄下,靜態(tài)網(wǎng)頁文件放在/home/ httpd/html 目錄下

接著將生成的Boa 可執(zhí)行文件加入到ramdisk中的/bin/下,并把修改后的boa. conf拷貝到Web服務(wù)器根目錄/home/httpd/下。

3.3 重新編譯內(nèi)核

將編譯好的內(nèi)核下載到開發(fā)板,啟動Boa Web Server,然后就可以通過IE瀏覽器在用戶端訪問目標(biāo)板中的網(wǎng)頁。

4 應(yīng)用實例

本文整個測試環(huán)境由一個S3C2410嵌入式開發(fā)板 ,一臺Windows PC機組成,一個人用來獲取數(shù)據(jù)的讀寫器組成,搭建了ARM9平臺上的CGI運行環(huán)境,并舉出了利用IE瀏覽器訪問開發(fā)板上的RFID標(biāo)簽數(shù)據(jù)庫,實現(xiàn)對RFID標(biāo)簽數(shù)據(jù)的嵌入式動態(tài)Web查詢的應(yīng)用實例。測試環(huán)境如圖2所示。

在測試時,配置IP 分別為192.168.10.1,192.168.10.2。開發(fā)板和宿主機之間通過網(wǎng)線連接.通過瀏覽器點擊192.168.10.1,并設(shè)置相關(guān)參數(shù),就可以查詢到原始的標(biāo)簽數(shù)據(jù)列表。測試結(jié)果如圖3所示。

5 結(jié)語

本文對嵌入式Linux環(huán)境下的Web服務(wù)及CGI的工作機理進行了分析,提出了在嵌入式ARM-Linux環(huán)境下Boa Server 的實現(xiàn)方法,使用戶在瀏覽器端對指定的嵌入式設(shè)備進行遠程操作。雖然不同的嵌入式系統(tǒng)往往會選用不同硬件平臺以及操作系統(tǒng),但是對于嵌入式系統(tǒng)環(huán)境下CGI腳本的開發(fā)方法和Web服務(wù)器的構(gòu)建,本文都給出了一個較好的思路。

參考文獻

[1]@黃光奇.CGI編程指南[M].電子工業(yè)出版社,1999.

[2]@馬曉光.組建Linux服務(wù)器[M].人民郵電出版社,2001,(4).

[3]@張斌,高波. Linux平臺下的Web 編程[M].清華大學(xué)出版社,2000,(10).

[4]@王剛,陳西宏.基于Linux的動態(tài)Web技術(shù)研究[J].計算機應(yīng)用研究, 2001,(9).

[5]@薛軍超. MySQL網(wǎng)絡(luò)數(shù)據(jù)庫開發(fā)[M].人民郵電出版社,2001,(4).

[6]@張曦煌,柴志雷.嵌入式Web服務(wù)器中CGI的特點及實現(xiàn).小型微型計算機系統(tǒng),2003,(2).

盐亭县| 崇明县| 柘城县| 讷河市| 安福县| 安图县| 玛沁县| 涪陵区| 阜宁县| 个旧市| 突泉县| 木里| 清丰县| 门源| 青浦区| 德化县| 呼玛县| 太仆寺旗| 朝阳区| 静宁县| 娱乐| 乌苏市| 太白县| 峨眉山市| 丰顺县| 安新县| 兰州市| 烟台市| 大同县| 盐边县| 开化县| 改则县| 永定县| 江津市| 隆德县| 新巴尔虎右旗| 海门市| 睢宁县| 广灵县| 石泉县| 镇坪县|