goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇
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服务器)之交叉编译、移植篇相关推荐
- goahead(嵌入式Web服务器)之总结篇
goahead编译环境介绍 本次章节主要讲解goahead在不同平台的编译,如x86.arm平台.提供gohead源码集成编译,支持https协议,提供openssl源码以及不同平台的编译环境,提供g ...
- goahead(嵌入式Web服务器)之交叉编译、移植篇
GoAhead简介: GoAhead是一个开源(商业许可).简单.轻巧.功能强大.可以在多个平台运行的嵌入式Web Server. GoAhead主要特性: 1 很小的内存消耗 2 支持认证功能Dig ...
- goahead(嵌入式Web服务器)之文件传输篇
goahead文件上传原理: 使用html form即表单提交文件上传请求,web服务器核心处理接收客户端Post过来的文件数据(注意post的是二进制数据),最后,web服务器把接收到文件数据以二进 ...
- 常见嵌入式WEB服务器
常见嵌入式WEB服务器 最近在搞一款应用到嵌入式WEB的产品,早期常为搭建服务器头疼,故在此列出几款常用的.不过我公司现在使用的goahead,下载见www.goahead.com 2.5.1版本.下 ...
- goaheadlinux移植_goAhead2.5嵌入式web服务器移植
1. GoAhead Web服务器介绍 goAhead Web服务器,小巧.精致,提供了值得称道的性能,特别适合于嵌入式系统,因此,在很多嵌入式产品如路由器中都用到了goAhead作为嵌入式web服务 ...
- 三种嵌入式web服务器(Boa / lighttpd / shttpd)的 linux移植笔记
一:移植Boa(web服务器)到嵌入式Linux系统 一.Boa程序的移植 1.下载Boa源码 下载地址: http://www.boa.org/ 目前最新发行版本: 0.94.13 ...
- 嵌入式web服务器lighttpd的交叉编译及配置
一.前言 最近项目用到嵌入式web服务器lighttpd,在网上找了相关材料并不是很齐全,在这里整理总结一下: 二.编译环境 centos 7.0 lighttpd-1.4.39 pcre-8.42 ...
- arm linux goahead,goAhead 2.5嵌入式web服务器移植到arm9 2440 + linux中
本文内容概要:详细描述了移植goAhead 2.5到S3C2440的linux系统的过程.步骤.遇到的问题及其解决方法. 开发环境: 宿 主 机:window XP: 虚 拟 机: ...
- boa服务器如何运行cgi,嵌入式WEB服务器BOA+CGI.ppt
嵌入式WEB服务器BOACGI 嵌入式WEB服务器:BOA+CGI 报 告 人: 李 实 * ASIPP 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流 ...
- 嵌入式web服务器预研报告(转)
现在在嵌入式设备中所使用的web服务器主要有:boa.thttpd.mini_httpd.shttpd.lighttpd.goaheand.appweb和apache等. Boa 1.介绍 Boa诞生 ...
最新文章
- ubuntu下安装redis
- linux 分区克隆软件 partclone 简介
- github搜索不能用
- s5-2 Cpu调度算法
- 为什么torch.nn.Linear的表达形式为y=xA^T+b而不是常见的y=Ax+b?
- iphone视频教程
- oracle数据分布不均,oracle性能优化操作七:索引提高数据分布不均匀时查询效率...
- Python | 如何创建模块(模块示例)?
- 虚拟服务器数据库怎么导入数据库,BlueHost虚拟主机使用SSH怎么导入MySQL数据库...
- Echarts官网突然不能登录了?
- 怎么认识自己--《思辩与立场:生活中无处不在的批判性思维工具》
- R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)
- 完全删除iCloud注册的Apple ID
- cas单点登录配置,Java导入证书失败Keystore was tampered with, or password was incorrect
- 网络测速一原理及实例
- lol 5.24版本top5:火男胜率登顶
- esxi能直通的显卡型号_七彩虹RTX SUPER祝融(火神)版显卡上手体验
- 解读 CVSS 通用评分系统中最具争议的 Scope
- js 一个等号= 二个等号== 三个等号=== 的区别
- mysql空值判断怎么优化_MySQL查询语句优化的十个小技巧!