S3C2440移植嵌入式Web服务器--Boa教程

1. 前期准备
上周通过wifi模块的AP功能,可以通过连接WiFi访问到目标开发板。突然想移植个嵌入式Web服务器,为后续开发物联设备做一下准备工作。说干就干,度娘了一番,最终选择了Boa。BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。本文以boa-0.94.13.tar.gz为例,通过官网下载,并用FTP工具将所下载文件上传至服务器并解压。
官方下载地址:http://www.boa.org/

2. 交叉编译
依次执行以下命令
tar zxvf boa-0.94.13.tar.gz
cd boa-0.94.13/src
./configure
修改Makefile
将CC = gcc,CPP = gcc -E 改为CC = arm-linux-gcc,CPP = arm-linux-gcc -E
make
错误解决
在这里插入图片描述
将src/compat.h120中的宏定义
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改为
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
在这里插入图片描述
将src/boa.c中的
if (setuid(0) != -1) {
DIE(“icky Linux kernel bug!”);
}
改为
#if 0
if (setuid(0) != -1) {
DIE(“icky Linux kernel bug!”);
}
#endif
再次make即可。

3. 验证测试
3.1 目录创建
分别执行以下指令
mkdir -p /etc/boa
mkdir -p /var/log/boa
mkdir -p /var/www/cgi-bin
3.2 拷贝文件
拷贝boa-0.94.13/src目录下的可执行程序boa至目标开发板,拷贝boa-0.94.13目录下的boa.conf至目标开发板/etc/boa目录,拷贝服务器/etc目录下的mime.types文件至目标开发板/etc目录。
3.3 修改配置文件boa.conf

User nobody
Group nogroup
#ServerName www.your.org.here
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
改为
User 0
Group 0
ServerName www.your.org.here
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
3.4 测试
在后台运行boa,打开error_log如下图所示即启动成功。
在这里插入图片描述
编写CGI测试程序hello.c
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
printf(“Content-type: text/html\n\n”);
printf("\n");
printf("\n");
printf("\n");
printf(“Hello,world.\n”);
printf("\n");
printf("\n");
exit(0);
}
交叉编译arm-linux-gcc hello.c -o helloCGI并将helloCGI拷贝至目标开发板/var/www/cgi-bin/目录下。在谷歌浏览器键入
http://192.168.1.1/cgi-bin/helloCGI出现如下久违的Hello,world.界面即宣告Boa服务器移植成功。
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值