發新話題
打印

GoAhead WebServer下載

GoAhead WebServer下載

GoAhead WebServer,它是一個源碼免費、功能強大、可以運行在多個平台的嵌入式WebServer。 GoAhead WebServer的主要特性有:
1. 支持ASP
2. 嵌入式的javascript
3. 標準的CGI執行
4. 內存中的CGI處理GoFroms
5. 擴展的API
6. 快速響應,每秒可處理超過50個請求
7. 完全和標準兼容
8. 如果不包含SSI,僅要求60K的內存;包含SSI,要求500K內存
9. web頁面可以存在ROM或文件系統中
10. 支持多種操作系統,包括eCos 、LINUX 、LynxOS 、QNX 、VxWorks 、WinCE、pSOS等
目前Goahead WebServer最新版本為2.1.8,可在http://webserver.goahead.com上免費獲取。
下載可能需要填寫一些信息,下載完成文件為webs218.tar.gz。
用解壓工具打開即可看到其全部內容。解壓後ws031202文件夾根目錄下的文件為Goahead的源代碼文件,子文件夾對應各個支持系統,web文件夾下面是一個示例web頁面,同時也提供了Goahead的幫助信息,當webServer建立後,可將web文件夾拷貝至您需要的web目錄,然後直接訪問即可,缺省情況下Goahead支持web文件夾所有的內容。
目前WebServer中所支持的操作系統,都會有對應的BSP文件夾與之對應。

在其中存在有支持該系統所必須的啟動代碼及系統相關代碼。轉入正題,webServer在移植過程相對簡單,僅需簡單的配置和操作就可以完成。
下面講述一下通過downloadable工程來架設GoAhead WebServer的過程,當然也可以用類似的方法把它集成到bootable工程中。第一步、新建一個downloadable工程,將下列下載的源文件加入到工程中: balloc.c base64.c default.c ejlex.c ejparse.c emfdb.c form.c hc handler.c md5c.c mime.c misc.c mocana_ssl.c page.c ringq.c rom.c security.c sock.c
sockGen.c sym.c uemf.c um.c umui.c url.c value.c webrom.c webs.c asp.c websuemf.c websda.c cgi.c /vxworks/main.c 在上述文件的列表中,幾乎包含了webServer的全部文件,少了兩個文件websSSL.c和webcomp.c,(也就是說你可以將其外層所有的.c文件包含後,再包含/vxworks/main.c,去掉上述兩個文件即可。)
websSSL.c文件用在ssl上,如果需要使用ssl的話,還需要下載openSSL系列的文件,此處省略。
webcomp.c文件用在網頁壓縮上,功能是將網頁內容全部轉換成C源代碼,一起編譯進vxwroks。
考慮到嵌入式系統網頁內容一般比較小,此處不考慮頁面壓縮。
第二步、完成需要修改該項目的配置,打開該項目的編譯屬性,將文件所在路徑增加進Include路徑中,同時在編譯屬性中增加:-DWEBS -DUEMF -DOS="VXWORKS" –DVXWORKS -DUSER_MANAGEMENT_SUPPORT ,這些選項中定義了vxworks系統,用戶管理等屬性,如需要增加存取控制,可再增加-DDIGEST_ACCESS_SUPPORT。
此部分的修改可在MakeFile文件中實現,作者修改完成的MakeFile文件中如下:
CFLAGS = -g –mcpu = pentium –march = pentium -nostdlib -fno-builtin -fno-defer-pop -I. -I$ (WIND_BASE)/target/h/ -I$(PRJ_DIR)/ws031202 -IE:/Mpe5/mpe5/head -Ie:/mpe5/mpe5/Templet/head -Ie:/Mpe5/mpe5/Templet/head/include - IE:/Mpe5/mpe5/Templet -IE:/Mpe5/mpe5/interface -DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu -DWEBS -DUEMF -DOS="VXWORKS" -DVXWORKS -DUSER_MANAGEMENT_SUPPORT。在兩種方式中建議修改編譯屬性,如果非常熟悉makefile則可修改Makefile文件。
注:makefile可以把宏傳遞給源文件,作用就相當於在預編譯的每個文件中定義了這樣的宏。
第三步、這一步要根據實際系統要求來進行修改main.c。
將下面列出的定義按照您系統的實際情況進行修改,
#define ROOT_DIR T("/ata0a") static char_t *rootWeb = T("/web");
/* Root web directory */ static char_t *password = T("");/* Security password */ static int port = 80; /* Server port */
修改後的系統web文件放在/ata0a/web中,沒有安全密碼,使用缺省80端口進行通訊。另外websSetDefaultPage(T("home.asp"));中定義了缺省頁面,即用戶直接輸入IP地址後進入時所看到的頁面,缺省為home.asp,更換成您所需要的文件即可。利用搜索工具查找一下home.asp可能不止一處,將碰到的都修改完成。
最後一步、到現在為止,該downloadable項目可以正確編譯了,編譯完成後下載後,
必需用命令啟動它,最簡單的方式是main(0,0),更可靠的方式為添加任務。
對於bootable項目,可在usrAppinit()中加入web server入口“main(0,0)” web server只用了系統的socket協議棧和定時器,自己沒有建任務,所以為了性能監視方便,建議專門建一個任務給他。這樣web server的內存使用、任務狀態就可以看到了。
任務堆棧的大小在剛開始時可給出一個較大的值如200k,然後不斷觀察其最大值後再調整,web頁面的不同其占用就會發生變化,一般情況下(沒有ssl)50K足夠了。
對於有些OS沒有完整的TCP stack,對於GoAhead WebServer的移植就有點麻煩了,還得按照標準的協議棧補全。

TOP

發新話題