移植goahead到android或其他嵌入式linux系统上

[size=small] GoAhead是一款强大的嵌入式的web服务器,广泛应用在各种潜入式的系统中。支持各种多种操作系统。可以使用静态html,cgi或ASP以及嵌入式的JavaScript。而现在android又在嵌入式系统中应用越来越广泛,以下为在android上移植goahead的详细步骤,其他嵌入式linux与此相同:[/size]

[b]1.下载goahead的源码[/b]

[url=https://github.com/embedthis/goahead/downloads] https://github.com/embedthis/goahead/downloads[/url]

[b]2.下载和解压arm-linux-gcc[/b]
比如解压到/usr/local/arm-gcc目录

[b]3.修改goahead的mkfile文件[/b]

打开goahead/LINUX/Makefile文件,修改gcc和ar变量,如下两行:

CC=/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc
AR=/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-ar

为了省去链接的麻烦,修改CFLAGS变量,添加static参数,直接修改为静态链接(否则在
执行编译后的目标码时一直报webs not found错误):

CFLAGS = [color=red]-static [/color]-DWEBS -DOS="LINUX" - DLINUX $(UMSW) $(DASW) $(SSLSW) $(IFMODSW)

[b]4.将goahead/LINUX/main.c的initWebs函数中的如下代码注释:[/b]

[color=green]if (gethostname(host, sizeof(host)) < 0) {
error(E_L, E_LOG, T("Can't get hostname"));
return -1;
}
if ((hp = gethostbyname(host)) == NULL) {
error(E_L, E_LOG, T("Can't get host address"));
return -1;
}
memcpy((char *) &intaddr, (char *) hp->h_addr_list[0],
(size_t) hp->h_length);[/color]

修改端口号为8080:

static int port = 8080;

[b]5.修改web服务器的根路径,在goahead/LINUX/initWebs函数中修改[/b]
修改如下两行:

static char_t *rootWeb = T(/data/local/webroot); [color=green]/* Root web directory */[/color]
static char_t *demoWeb = T(/data/local/webrootdemo); [color=green]/* Root web directory */[/color]
修改如下代码:

sprintf(webdir, %s/%s, dir, demoWeb);为:

sprintf(webdir, %s, demoWeb);

修改如下代码:

sprintf(webdir, %s/%s, dir, demoWeb);为:

sprintf(webdir, %s, rootWeb);
[b]6.添加监听端口的提示:[/b]
在在goahead/webs.c的websOpenListen函数的倒数第二行增加如下代码:
fprintf(stderr,"goahead has started!\nlistener port:%d\n",port);
使goahead运行起来我们可以看到它的监听端口。

[b]7.编译:[/b]

在goahead/LINUX下执行make命令进行编译,在此目录下生产webs可执行文件

[b]8.创建相关目录[/b]
创建/data/local目录;
然后在此目录下创建webroot文件夹和webrootdemo文件夹;
在webroot目录下创建cgi-bin目录
在cgi-bin目录下创建tmp目录

[b]8.运行[/b]
拷贝webs到android的/data/local目录下,并且修改为可执行权限,然
后在/data/local目录下,执行如下命令./webs &

[b]9.测试[/b]
在/data/local/webroot文件夹下放入测试的静态网页hello.html
在android的浏览器上输入
http://ip:8080/hello.html
就可以看到hello.html网页的内容了;
在/data/local/webroot放入goahead/wwwdemo/asptest.asp
然后在android的浏览器上输入
http://ip:8080/asptest.asp,就可以看到asptest.asp的执行结果了。
在/data/local/webroot/cgi-bin目录下放入
goahead/wwwdemo/cgi- bin/cgitest
然后在android的浏览器上输入
http://ip:8080/cgi-bin/cgitest,就可以看到cgi的执行结果了。
也可以使用pc测试(前提是pc的ip应该和运行goahead程序的android或linux在同
一网段),结果一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值