GoAhead简介:

GoAhead是一个开源(商业许可)、简单、轻巧、功能强大、可以在多个平台运行的嵌入式Web Server。

GoAhead主要特性:

1 很小的内存消耗

2 支持认证功能Digest Access Authentication (DAA)

3 支持安全的通信,例如SSL(安全的套接字层)

4 支持动态Web页面,如ASP页面

5 可以使用传统的C语言编程定制Web页面里的HTML标签

6 支持CGI(公共网关编程接口)

7 嵌入式的Javascript脚本翻译器

8 独特的URL分析器

9 它基本上属于一个HTTP1.0标准的WEB服务器,对一些HTTP1.1的特性如(持久连接)也提供了支持。每秒65次connections

10 可执行文件大小、内存使用情况:内存需求60K,它的WIN CE版本编译后的大小还不到60k。

goahead源码(百度云盘)

链接:https://pan.baidu.com/s/1ux_9k3ixycMFjLsmHRirBQ

提取码:0gmd

goahead版本:5.1.1

交叉编译:

进入goahead-5.1.1目录,进行编译

make CC=工具链(如arm-himix200-linux-gcc) ARCH=arm //编译

make CC=工具链(如arm-himix200-linux-gcc) ARCH=arm clean //清除

编译后,会在build目录里生成linux-arm-default文件,里面有目标文件以及对于的依赖文件。

注:实际是在编译projects目录下的Makefile文件:goahead-linux-default.mk,编译可以不用传参的形式,直接在goahead-linux-default.mk里修改CC工具链等参数。

移植:

1、将build的linux-arm-default文件的bin目录里的目标文件goahead,依赖的动态库libgo,安全证书self.crt、self.key、auth.txt、route.txt拷贝到开发部的同一个目录下

2、运行goahead 如./goahead

移植可能遇到的问题以及解决方法:

问题1:

goahead: 0: Cannot get host address for host (none): errno 2

goahead: 0: Cannot initialize server. Exiting.

原因分析:

没有设置好IP,需要goahead设置IP

解决措施:

在http.c的setLocalHost函数里,将这块代码

struct hostent *hp;

if ((hp = gethostbyname(host)) == NULL) {

error("Cannot get host address for host %s: errno %d", host, errno);

return -1;

}

memcpy((char*) &intaddr, (char *) hp->h_addr_list[0], (size_t) hp->h_length);

ipaddr = inet_ntoa(intaddr);

屏蔽掉,并添加 ipaddr=“0.0.0.0”;

即如:

/*struct hostent *hp;

if ((hp = gethostbyname(host)) == NULL) {

error("Cannot get host address for host %s: errno %d", host, errno);

return -1;

}

memcpy((char*) &intaddr, (char *) hp->h_addr_list[0], (size_t) hp->h_length);

ipaddr = inet_ntoa(intaddr);*/

ipaddr="0.0.0.0";

**注:**0.0.0.0 代表本机的所有ip地址

问题二:

goahead: 0: Cannot bind to address *:80, errno 98

goahead: 0: Unable to open socket on port 80.

原因分析:

其他的应用程序在占用80端口,例如web程序等

解决措施:

kill占用80端口的进程即可

测试例子:

在浏览器上输入设备ip即可显示首页网站

(1)建立网页文件

网页文件index.html,其内容:

index.html

Link to reload this page

Link to log out

Link to test.html

(2)设置goaeah网页html文件的查找路径

在projects目录的goahead-linux-default-me.h文件里修改ME_GOAHEAD_DOCUMENTS为

#define ME_GOAHEAD_DOCUMENTS "./"

改为当前路径。

(3)将index.html文件放在与目标文件goahead相同的目录即可

(4)在网页上输入IP运行即可先index.html内容

总结:每次修改源码内容时,都需要把libgo.so库更新才有效,因为goahead把其他依赖的文件做成了动态库。

下一章节会讲asp与goform、文件下载、cgi的应用

goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇相关推荐

  1. goahead(嵌入式Web服务器)之总结篇

    goahead编译环境介绍 本次章节主要讲解goahead在不同平台的编译,如x86.arm平台.提供gohead源码集成编译,支持https协议,提供openssl源码以及不同平台的编译环境,提供g ...

  2. goahead(嵌入式Web服务器)之交叉编译、移植篇

    GoAhead简介: GoAhead是一个开源(商业许可).简单.轻巧.功能强大.可以在多个平台运行的嵌入式Web Server. GoAhead主要特性: 1 很小的内存消耗 2 支持认证功能Dig ...

  3. goahead(嵌入式Web服务器)之文件传输篇

    goahead文件上传原理: 使用html form即表单提交文件上传请求,web服务器核心处理接收客户端Post过来的文件数据(注意post的是二进制数据),最后,web服务器把接收到文件数据以二进 ...

  4. 常见嵌入式WEB服务器

    常见嵌入式WEB服务器 最近在搞一款应用到嵌入式WEB的产品,早期常为搭建服务器头疼,故在此列出几款常用的.不过我公司现在使用的goahead,下载见www.goahead.com 2.5.1版本.下 ...

  5. goaheadlinux移植_goAhead2.5嵌入式web服务器移植

    1. GoAhead Web服务器介绍 goAhead Web服务器,小巧.精致,提供了值得称道的性能,特别适合于嵌入式系统,因此,在很多嵌入式产品如路由器中都用到了goAhead作为嵌入式web服务 ...

  6. 三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记

    一:移植Boa(web服务器)到嵌入式Linux系统 一.Boa程序的移植 1.下载Boa源码     下载地址: http://www.boa.org/     目前最新发行版本: 0.94.13  ...

  7. 嵌入式web服务器lighttpd的交叉编译及配置

    一.前言 最近项目用到嵌入式web服务器lighttpd,在网上找了相关材料并不是很齐全,在这里整理总结一下: 二.编译环境 centos 7.0 lighttpd-1.4.39 pcre-8.42 ...

  8. arm linux goahead,goAhead 2.5嵌入式web服务器移植到arm9 2440 + linux中

    本文内容概要:详细描述了移植goAhead 2.5到S3C2440的linux系统的过程.步骤.遇到的问题及其解决方法. 开发环境: 宿    主   机:window XP: 虚    拟   机: ...

  9. boa服务器如何运行cgi,嵌入式WEB服务器BOA+CGI.ppt

    嵌入式WEB服务器BOACGI 嵌入式WEB服务器:BOA+CGI 报 告 人: 李 实 * ASIPP 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流 ...

  10. 嵌入式web服务器预研报告(转)

    现在在嵌入式设备中所使用的web服务器主要有:boa.thttpd.mini_httpd.shttpd.lighttpd.goaheand.appweb和apache等. Boa 1.介绍 Boa诞生 ...

最新文章

  1. ubuntu下安装redis
  2. linux 分区克隆软件 partclone 简介
  3. github搜索不能用
  4. s5-2 Cpu调度算法
  5. 为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?
  6. iphone视频教程
  7. oracle数据分布不均,oracle性能优化操作七:索引提高数据分布不均匀时查询效率...
  8. Python | 如何创建模块(模块示例)?
  9. 虚拟服务器数据库怎么导入数据库,BlueHost虚拟主机使用SSH怎么导入MySQL数据库...
  10. Echarts官网突然不能登录了?
  11. 怎么认识自己--《思辩与立场:生活中无处不在的批判性思维工具》
  12. R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)
  13. 完全删除iCloud注册的Apple ID
  14. cas单点登录配置,Java导入证书失败Keystore was tampered with, or password was incorrect
  15. 网络测速一原理及实例
  16. lol 5.24版本top5:火男胜率登顶
  17. esxi能直通的显卡型号_七彩虹RTX SUPER祝融(火神)版显卡上手体验
  18. 解读 CVSS 通用评分系统中最具争议的 Scope
  19. js 一个等号= 二个等号== 三个等号=== 的区别
  20. mysql空值判断怎么优化_MySQL查询语句优化的十个小技巧!

热门文章

  1. jupyter能debug了,使用vscode的jupyter插件进行debug
  2. access 套用表格_Word表格编辑技巧:在Word中使用Access的数据-word技巧-电脑技巧收藏家...
  3. 干货 | 深度理解数据采集与埋点,提高自主数据分析能力!
  4. 详解脑的功能区域分布以及布罗德曼分区系统
  5. 服务器端身份证识别技术
  6. 请问php中 $_data是啥变量呢
  7. Java实战之继承与多态
  8. 【贪心】兔警官朱迪买礼物
  9. 计算机基本原理 学习笔记(八)
  10. 怎么登录163vip邮箱?163vip邮箱登录方式有哪些?