goahead php 例子,GoAhead WebServer移植小结

VxWorks中自带了WebServer组件,在network components->network protocols-> network applications下选择http server即可。也可以采用rapid control for Web。这里我们介绍GoAhead WebServer,它是一个源码免费、功能强大、可以运行在多个平台的嵌入式WebServer。

GoAhead WebServer的主要特性有:

l 支持ASP

l 嵌入式的JavaScript

l 标准的CGI执行

l 内存中的CGI处理GoFroms

l 扩展的API

l 快速响应,每秒可处理超过50个请求

l 完全和标准兼容

l 如果不包含SSI,仅要求60K的内存;包含SSI,要求500K内存

l web页面可以存在ROM或文件系统中

l 支持多种操作系统,包括eCos 、LINUX 、LynxOS 、QNX 、VxWorks 、WinCE、pSOS等

下面讲述一下通过downloadable工程来架设GoAhead WebServer的过程,当然也可以用类似的方法把它集成到bootable工程中:

①  下载最新的GoAhead Webserver。

②  建立基于bsp 的downloadable 工程, 名称为 goaheadweb 。

③  将下列下载的源文件加入到工程中:

balloc.c

base64.c

default.c

ejlex.c

ejparse.c

emfdb.c

form.c

h.c

handler.c

md5c.c

mime.c

misc.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

cgi.c

/vxworks/main.c

④ 参考/vxworks/makefile来修改工程的makefile。

在makefile 中增加定义  -DWEBS -DUEMF -DOS="VXWORKS" –DVXWORKS

如下:

CFLAGS = -g -m486 -ansi -nostdinc -DRW_MULTI_THREAD -D_REENTRANT -DWEBS -DUEMF -DOS="VXWORKS" -DVXWORKS -fvolatile -nostdlib -fno-builtin -fno-defer-pop -I. -IE:/Tornado-x86/target/h -DCPU=I80486

如果需要增加用户管理、存取控制支持,则还需要增加下列定义

-DUSER_MANAGEMENT_SUPPORT

-DDIGEST_ACCESS_SUPPORT

具体可以参考原makefile进行。

⑤ 根据文档修改/vxworks/main.c。

设置根目录,例如

#define ROOT_DIR  T("/tffs0/webs")

设置缺省主页

websSetDefaultPage(T("index.asp"));

利用ftp等工具将index.asp等主页下到tffs0中。

⑥ 编译为 goaheadweb.out 下载。

⑦ 在 WindShell 下加载webserver

sp  websvxmain

⑧ 在浏览器端键入 http://192.168.0.2/index.asp  就可以访问到 /tffs0/webs/index.asp 文件了。

⑨ Asp编程:

GoAhead Asp编程首先需要预先定义Asp函数,在main.c的函数initWebs()中有如下的例子:

websAspDefine(T("aspTest"), aspTest);

这里将aspTest()定义为Asp函数,用户可提供相关的函数来进行想要完成的功能,例如:

/*

* Test Javascript binding for ASP. This will be invoked when "aspTest" is

* embedded in an ASP page. See web/asp.asp for usage. Set browser to

* "localhost/asp.asp" to test.

*/

static int aspTest(int eid, webs_t wp, int argc, char_t **argv)

{

char_t *name, *address;

if (ejArgs(argc, argv, T("%s %s"), &name, &address) < 2) {

websError(wp, 400, T("Insufficient args\n"));

return -1;

}

return websWrite(wp, T("Name: %s, Address %s"), name, address);

}

然后在Asp的页面中调用Asp函数即可,如调用上述例子:

Expanded ASP data:

※  注意:如果要停止或重起WebServer,请不要使用taskDelete 或者 td来删除webserver任务,而是调用kill()来给webserver任务发送9或者15信号。

GoAhead 的详细介绍:请点这里

GoAhead 的下载地址:请点这里

相关阅读:

0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值