goahead 移植与配置 [2013-12-18更新]

goahead5.1.1移植arm Linux开发板 链接:https://pan.baidu.com/s/1JH60KeTF3AoAhbb1dMIWnQ提取码:1111。 阅读详情
- 基本步骤

1. 在官网下载最新的源码包
    官网: http://embedthis.com/downloads/index.html

2. 解压并编译
# tar -zxvf goahead-3.1.3-0-src.tgz -C /usr/src
# cd /usr/src/goahead-3.1.3-0
# make CC=arm-arago-linux-gnueabi-gcc ARCH=arm
编译完成后会在 /usr/src/goahead-3.1.3-0/linux-arm-default/bin 生成可执行文件

3. 将bin目录下的可执行文件goahead,库文件libest.so、libgo.so拷贝到开发板
    库文件可与goahead文件放在同一目录下,也可拷贝到 /usr/lib 目录下

但是,goahead移植没那么简单,此时直接运行goahead会有问题,下面将介绍如何逐一解决。



- 移植配置

问题一(运行错误):
goahead: 0: Can't get host address for host dvr: errno 110
goahead: 0: Can't initialize server. Exiting. 

解决办法:修改 /usr/src/goahead-3.1.3-0/src/http.c
# vi src/http.c      // 共有2处相同的代码需修改
=============================================================================
if ((hp = gethostbyname(host)) == NULL) {
    error("Can't 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);
ddr = inet_ntoa(intaddr);
websSetIpAddr(ipaddr);
websSetHost(ipaddr);
=============================================================================

改为:
=============================================================================
#if 0
    if ((hp = gethostbyname(host)) == NULL) {
        error("Can't get host address for host %s: errno %d", host, errno);
        return -1;
    }
    memcpy((char*) &intaddr, (char *) hp->h_addr[0], (size_t) hp->h_length);
    ipaddr = inet_ntoa(intaddr);
#else
    int sockfd;
    struct sockaddr_in sin;
    struct ifreq ifr;
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    if (sockfd == -1)
    {   
        return -1;
    }   
    strncpy(ifr.ifr_name, "eth0", IFNAMSIZ);
    ifr.ifr_name[IFNAMSIZ - 1] = 0;
    if (ioctl(sockfd, SIOCGIFADDR, &ifr) < 0)
    {   
        return -1;
    }   
    memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
    ipaddr=inet_ntoa(sin.sin_addr);
#endif

    websSetIpAddr(ipaddr);
    websSetHost(ipaddr);
=============================================================================

! 修改源码后需重新编译,并下载到开发板

------------------------------------------------------------------------------------------

问题二(运行错误):
goahead: 0: Can't open config file route.txt
goahead: 0: Can't initialize server. Exiting.

解决办法:把 /usr/src/goahead-3.1.3-0/src/route.txt 拷贝到goahead可执行文件同一目录下。

------------------------------------------------------------------------------------------

问题三(运行错误):
goahead: 0: Can't open config file auth.txt
goahead: 0: Can't load auth.txt

解决办法:在goahead可执行文件同一目录下创建auth.txt。
# touch auth.txt

------------------------------------------------------------------------------------------

问题四:页面存放路径?

答:在goahead可执行文件目录下的web目录,自行创建web目录即可。
# mkdir web

------------------------------------------------------------------------------------------

问题五:CGI存放路径?

答:
1. 修改源码,使错误信息能正确显示(可选)
# vi src/cgi.c +93
error("Cannot find CGI program: ", cgiPath);
修改为:
error("Cannot find CGI program:  %s", cgiPath);
! 修改源码后需重新编译,并下载到开发板

2. 创建cgi-bin目录
# mkdir web/cgi-bin

3. 修改配置文件
# vi route.txt
route uri=/cgi-bin  dir=cgi-bin handler=cgi
修改为:
route uri=/cgi-bin  dir=/opt/linux-arm-default/bin/web handler=cgi     // dir设置为web目录的绝对路径

4. 重启goahead



- 测试

1. 创建 index.html (保存至web/index.html)

<html>
    <head><h3>GoAhead Test Page</h3></head>
    <body>
        Hello, GoAhead!
        <form action=/cgi-bin/test.cgi method=POST>
            <input type=submit name="OK" value="ok">
        </form>
    </body>
</html>

----------------------------------------------------------------------

2. 创建 test.cgi (保存至web/cgi-bin/test.cgi)

#!/bin/sh
echo
echo Content-type: html/plain
echo
echo `/bin/date`

! 创建完成后赋予该文件可执行权限:
# chmod a+x web/cgi-bin/test.cgi

----------------------------------------------------------------------

3. 启动goahead(如果上面的操作全部已经完成了但依然无法启动goahead,则可尝试cd到goahead所在的目录再尝试启动),在浏览器中输入192.168.1.239/index.html(笔者开发板的IP地址为192.168.1.239),然后在显示的页面中点击“ok”,如果能够正确显示系统时间则说明goahead移植成功且已正确配置。





点击“ok”按钮后:









Goahead服务器移植、部署   Goahead服务器移植、部署 说明 本文详细描述在linux下,用goahead发一个web服务,然后通过其他电脑登录,实现一个小功能。本文编写参考了博客:https://blog.youkuaiyun.com/yangguihao/article/details/49820765 部署步骤 下载goahead 到goahead官网下载,下载时的最新版本是4.0.2,然后将下载好的goahead-... 阅读详情

相关推荐

goahead - 环境准备和基本使用

说明 采用第三方开源库实现嵌入式web服务器,goahead是个不错的选择,它支持内存CGI并且可以很方便的嵌入到自己的程序中。 简介 GoAhead是一个开源,免费,功能强大,可以在多个平台运行的嵌入式WebServer,主要特性有: 支持ASP 嵌入式的javascript 标准的CGI执行 内存中的CGI处理GoFroms 扩展的API 快速响应,每秒可处理超过50个请求 完全和标准兼容 如果不包含SSL,仅要求60K的内存;包含SSL,要求500K内存 web页面可以存在ROM或文件系统中

qazw9600的专栏 4430

goahead-5.2.0(嵌入式Web服务器)静态库移植

嵌入式Web服务器 goahead

swl_lidy的博客 1433

GoAhead学习笔记

一、系统环境 GoAhead: 官网下载源码:https://www.embedthis.com/goahead/download.html 官方文档:https://www.embedthis.com/goahead/doc/ 系统平台:Ubuntu 18.04 :https://www.ubuntu.com/download/desktop/thank-you?country=CN&a...

m0_43392334的博客 1万+

LicheePI (荔枝派)Zero 开发笔记(3):安装 GoAhead 5.2.0 并交叉编译在 LicheePI 上运行,增加自定义 Actions

记录了 Goahead 5.2.0 使用荔枝派的交叉编译工具进行编译和安装,并运行起来的过程。这里重点是如何将自定义的功能编译进去。

Tomcat0130 - 代码生涯 1730

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 独特

weixin_40732273的博客 9524

GoAhead 3.6.2 嵌入式Web服务器:tar.gz源码解压、编译部署与定制指南

在嵌入式开发与物联网设备中,轻量级的Web服务器是设备端远程管理与状态查询的核心组件。GoAhead作为一款专为资源受限环境设计的服务器,以占用内存小、启动速度快、依赖少著称,不同于面向高并发的Nginx与Apache,它更适用于路由器、工业网关等场景。tar.gz是Linux源码分发的标准格式,理解其“先打包后压缩”的原理,能有效排查解压过程中的错误。通过校验hash、解压、configure配置、编译安装,即可在本地或ARM交叉环境下运行起一个可交互的设备服务。进一步地,注册URL处理函数、定制动态接口

WGH100817的博客 327

嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数

以集中器设备为例,有人知道吧。这玩意儿没界面,但是还一大堆参数需要配置。 那怎么搞?做个上位机工具,做界面,再做个串口协议一个个的搞吗?太繁琐了,不但得制定协议,还得造工具配合调试, 发布时还得配套给用户提供工具安装和使用。 如果有一web界面,可以通过网页访问它,通过电脑在web网页中对终端参数进行配置岂不是很爽? 只要能访问到集中器设备的IP地址即可。 那么要在嵌入式linux上用c...

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 4733

GoAhead3.4移植到arm平台

开发板arm平台 linux3.X 压缩包是已经成功编译过的,解压后上传到开发板/bin路径下即可

goahead 移植与配置---fwqlzz love is for ever

- 基本步骤 1. 在官网下载最新的源码包     官网:http://embedthis.com/downloads/index.html 2. 解压并编译 # tar -zxvf goahead-3.1.3-0-src.tgz -C /usr/src # cd /usr/src/goahead-3.1.3-0 # make CC=arm-arago-linux-gn

fwqlzz的专栏 3791

GoAHead嵌入式移植

环境: Linux-2.6.20 webs218.tar.gz(goahead2.1.8) arm-linux-gcc-3.4.1.tar

Ansys 19 Mechanical 流体密封分析

start point是一个特殊的概念,在仿真中ansys将从start point开始搜索会发生流体渗漏的点,可以简单理解为从start point开始,向四周逐个节点比较节点上的接触压紧力与流体压力,如果流体压力大于压紧力,则发生渗漏。事实上此处的最后一个参数是指定start point类型的,为1代表这是一个“open”的start point。在通常情况下,如果不人为指定start point,程序会自动寻找指定流体压力面的“边界”,对于二维情况,就是曲线的两个端点,对于三维情况就是曲面的边线。

Dio980的博客 1533

goahead-3.3.6版本源码方式移植到wince

从Linux下的goahead-3.3.6版本移植到wince平台 官网文档表示可以直接支持,但是因为我们wince系统的裁剪 以及我当前开发环境是 visual studio 2005 ,而3.3.6版本需要2010版本后的vs才可以打开 所以直接从源码开始编译移植,并且部分接口在我们系统无法使用 需要重写 先知道需要知道有哪些.c/.cpp文件需要编译,可以通过阅读Linux下gcc编译

Ataraxia的专栏 1148

利用ArcMap实现遥感图像语义分割标注的完整流程解析

本文详细解析了利用ArcMap进行遥感图像语义分割标注的完整工作流。从工程创建、数据导入、SHP文件创建,到实战勾画地物、要素转栅格,再到最终的裁剪对齐,提供了每一步的关键操作与避坑指南。该方法特别适合处理大尺寸、带地理坐标的遥感影像,能高效产出精准对齐的图像-标签对,为后续深度学习模型训练奠定可靠的数据基础。

gpu4optimizer的博客 1213

goahead 移植

1.网上下载goahead-3.1.2-0-src.tgz包   2.解压         tar -zxvf goahead-3.1.2-0-src.tgz  3.编译        cd goahead-3.1.2-0        make CC=arm-hisiv100-linux-gcc ARCH=arm

心中天堂的专栏 8986

AI开发助手介绍

AI开发助手介绍随着NLP方向发展越来越成熟,AI写代码领域出现了几个非常好的模型,今天笔者给大家推荐几个AI Coding 助手AI Coding助手是以IDEA插件或vim插件形式提供服务,在编辑器中写代码时,可以实时预测下一行要输入的代码,提升开发效率。Github Copilot首先要介绍的是Github Copilot,Copilot是个AI Coding助手,它从注释和代码中提取上下文,给出单行和整个函数的代码建议,Copilot由Open AI 的CodeX模型提供支持,它是一个由OpenAI

bobo_simpler的博客 5765

Flutter模块打包AAR集成Android原生项目实践

跨平台开发框架Flutter通过将UI组件渲染为原生代码实现高性能表现,其核心优势在于一套代码可同时运行在iOS和Android平台。在工程实践中,将Flutter模块打包为AAR(Android Archive)进行集成,成为混合开发的主流方案。这种方案既保留了原生项目的稳定性,又能渐进式引入Flutter的高效开发特性。通过配置MethodChannel实现原生与Dart代码通信,开发者可以灵活控制Flutter引擎生命周期,优化内存占用和渲染性能。对于电商、社交等需要快速迭代的业务场景,该方案能显著提

weixin_34025051的博客 399

苹果笔记本怎么找文件夹_苹果电脑的文件存在哪里_苹果电脑把文件放到哪-win7之家...

许多用户在使用苹果mac电脑的时候,由于刚接触可能很多操作不熟悉,对于一些刚下载的文件不知道默认存在哪里,这让用户们很是捉急,那么苹果电脑把文件放到哪呢?我们要怎么查找这些文件呢,接下来跟随小编一起来阅读一下苹果电脑的文件存在哪里吧。具体步骤如下:1、例如图一打开finder,你会看到左侧边栏有不同的目录,分别是电影音乐图片目录。那么你下载的文件都会在各自目录里面,例如视频会到电影目录,MP3到音...

weixin_39872257的博客 7491

视图库对接系列(GA-T 1400)一、简单介绍

GA/T 1400《公安视频图像信息应用系统》 是我们需要参考看看的相关文档,里面有对应的标准和介绍,没有这个文档的话可以加群找我要。群的话 我放在最下面了。我们先简单想几个问题, 也就是这个协议主要干什么用的,为什么要有, 能做什么。

qq_37716298的博客 4288

goahead3.6.4移植总结

一、下载源码    官网:http://embedthis.com/二、解压编译# tar -zxvf goahead-3.6.4.tar.gz# cd goahead-3.6.4# make CC=arm-linux-gcc ARCH=arm或(configure &amp;&amp; make)编译完成后进入linux-arm-default/bin生成可执行文件三、拷贝文件将bin目录下的可...

richu123的专栏 7272

2024年数字IC秋招-速腾聚创-数字芯片验证工程师-笔试题

笔试题型:单选 + 问答题笔试平台:牛客(手机+电脑监控)笔试时间:1hA. len取10的概率是1/2;B. len取10的概率是1/3;C. len取10的概率是1/4;D. len取10的概率是1;

qq_42135020的博客 1399

AI:240-YOLOv8高效涨点 |Swin Transformer的主干网络替换与优化(附代码 + 详细修改步骤 +原理介绍)

YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。

一键难忘的博客 3960

嵌入式web服务器goahead搭建并部署cgi程序

搭建goahead服务器,完成cgi程序部署

weixin_47251021的博客 3302

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

Goahead移植教程

之前在系统中用的是boa webserver ,但是在频繁提交多次后,boa会出现request.c 99错误并刷屏,造成系统无法正常工作,于是采用了goahead webserver,这个也是适用于嵌入式的服务器,同样支持CGI,下面是移植过程,以及出错纠正。 我的平台是:主机Windows XP,带有虚拟机上的Ubuntu, 首先从goahead官网上下载到goahead webs

固本培元的专栏 3795

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

GoAhead_交叉编译及在开发板上验证

文章目录1.设置交叉编译环境2. 在开发板上验证GoAhead3. 运行GoAhead4. https访问 1.设置交叉编译环境 如果想要编译在开发板上运行的goahead程序,则必须使用交叉编译器,但是在工程的properties–>C/C++ Build–>Setting下并没有找到Cross Compile的设置。怀疑是不是新建工程应该以C工程开始。但是在properties–>Build Settings 下看到Builder设置。一开始使用的是Use default build

wjjontheway的专栏 1131

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hexo 本地编辑md文件_TechRepo | 用 Hexo 及 GitHub Pages 建立个人博客

TechRepo是由软件学院学生科协推出的技术分享系列推送,每两周会进行一次更新,旨在为同学们提供一个分享技术、学习技术、传承技术的平台。欢迎感兴趣的同学关注我们,也欢迎有意向分享技术的同学联系我们(tech@ssast.org)了解投稿事宜。引言平时想记录自己的学习历程,做题思路,便想建一个个人博客;网上已有的 blog 网站显得不够个性化,当然想建立一个个人网站,最好再有个个性域名,...

weixin_39630466的博客 263

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: sqlite3 编译安装及快速入门 [2013-11-30更新]
下一篇: [Qt] Qt实现HTTP请求 [2013-12-18更新]
xb_ma
博客等级 码龄18年 23粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值