嵌入式linux数据库goahead应用测试笔记

  • 1.前言

Goahead作为一个跨平台的微型web服务程序,完全开源代码,官方网站为www.embedthis.com。官网中包含wabapp个goahead两个web服务器源码。本文主要针对goahead在ubuntu系统中的使用测试。本文中使用的是goahead5.1.1版本(2020年5月22日下载时的最新版本)官网中只有goahead的一个网页版本说明,不得不说这个网页版的说明写的犹如天书,你必须通过阅读+推测+尝试+蒙圈+重新猜测+百度+尝试等等等等,才有可能找到最终可行的方法,而且goahead目前的源码中还有几处明显的bug,居然没有人修复,真怀疑这么好的开源东东,现在到底还有没有人在维护。经过多方尝试,终于跑通了goahead5.1.1版本的源码编译、安装、及test例子程序的测试,现将过程记录下来,为以后在使用时查阅,也方便准备使用的少侠们提前参考少走弯路。

本人使用的是make方法编译的,按照官网说明还可以使用makeme方法,也可在windows中使用make.bat脚本编译(这个本人未跑通),还可以通过windows中的visualstudio编译。

建议使用时多阅读goahead的源码来理解其过程,也可参考其源码中的各个readme.dat的文本说明(但不能全信,要自己验证)。重点参考test目录下的test.c源码,及route.txt配置文件。

  • 2.Goahead源码目录

Goahead源码目录如下,install文件夹为安装相关目录,可安装linux macos和windows;paks文件夹是goahead的一些相关组件;projects文件夹为一些支持操作系统或编译工具的工程文件make工具、makeme工具、vs工具;src目录下为goahead源码用于生产goahead可执行程序;test为测试工程源码,用于生产goahead-test可执行程序。

 

  • 3.Ubuntu运行goahead入门

1)解压源码,cmd进入goahead主目录,运行make指令,显示如下:

2)编译后在build目录下生成linux-x64-default文件夹,然后运行sudo make install,执行安装到本机(主要执行一些拷贝动作,将编译后的可执行文件和库拷贝到指定目录);

可执行文件安装目录:

Goahead快捷方式安装目录

网页根目录安装位置:

配置文件安装目录:

3)然后运行goahead,执行命令sudo goahead -v --home /etc/goahead /var/www/goahead :8008。

--home /etc/goahead指定goahead运行时加载配置文件的地址;

/var/www/goahead 为网页的跟目录;

:8008为服务器端口号,不输入的话默认为8080端口;

启动服务器时出现如下错误:()

goahead: 0: Unable to read key self.key

goahead: 0: Cannot initialize server. Exiting.

此时执行:

# cd src

# sudo cp self.crt self.key /etc/goahead/

将self.crt和self.key文件拷贝到/etc/goahead目录。

这个错误是因为makefile中存在bug所致,将650行的内容修改为651行内容也可解决这个bug。

4)输入网址显示如下内容说明goahead启动成功

  • 4.Ubuntu运行goahead的test例子程序

Goahead源码的test目录下存放的是goahead开发例子程序,程序文件test.c是包含main函数程序文件,用于替换原来的goahead.c文件。

1)在主目录下执行make编译指令时test程序也已经编译,生成的目标文件为下图中test相关的文件,如目标程序为goahead-test(可执行程序)。

2)test程序编译后,sudo make install命令没有执行goahead-test文件的拷贝工作,因此需要手动将goahead-test拷贝到系统可执行目录下面,在goahead-test文件根目录中执行命令:sudo cp goahead-test /usr/local/lib/goahead/5.1.1/bin/将目标文件拷贝到安装目录中。

3)执行命令:sudo ln -s /usr/local/lib/goahead/5.1.1/bin/goahead-test /usr/local/bin/goahead-test

在系统可访问目录中创建一个goahead-test可执行文件的链接,如下图:

4)启动goahead-test程序,执行以下命令,网站根目录设置为源码中test文件夹下的web文件夹,其中/home/lph/DevelopTools/goahead/为作者goahead源码的存放目录。

sudo goahead-test -v --home /etc/goahead /home/lph/DevelopTools/goahead/goahead-5.1.1/test/web :8008:

 

 

5)静态网页测试:

6)Action网页测试

7)Asp网页测试

需要在rout.txt配置文件中增加配置:route uri=/ extensions=jst,asp handler=jst,说明.jst后缀和.asp后缀的网页使用jst句柄。

8)表单测试

10)CGI测试

CGI测试时按照官方介绍输入网址127.0.0.1:8008/cgi-bin/cgitest一直报错goahead: 0: Cannot find CGI program:。是因为找不到cgitest文件路径所致。但报错没有更多提示到底是怎么找不到路径的,经过查找cig.c源码中报这条错误的地方发现源码中存在一个bug,如下图所示,源码中的107行要打印路径时少些了%s,图片中已经加上,打印出路径后发现程序自动将你在route.txt中配置的路径后面加了个/cgi-bin/,如你在route.txt中配置的路径为/home/lph/DevelopTools/goahead/goahead-5.1.1/test,实际你要存放cgitest文件的目录必须为/home/lph/DevelopTools/goahead/goahead-5.1.1/test/cgi-bin/。

还有一点要注意,cgitest文件的存放路径在route.txt文件中配置时,要么指定绝对存放路径,要么不指定是默认为/etc/goahead/cig-bin/。可以在指定路径/etc/goahead/cig-bin/下创建一个cgi-bin文件夹的链接,通过指令“sudo ln -s /home/lph/DevelopTools/goahead/goahead-5.1.1/test/cgi-bin/ /etc/goahead/cgi-bin”在文件夹创建链接文件/etc/goahead/下创建cgi-bin的链接文件。

通过浏览器访问127.0.0.1:8008/cgi-bin/cgitest:

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值