官网:http://www.boa.org/

BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高

配置

boa-0.94.13 # ./configure

修改Makefile

CC = arm-linux-gcc
CPP = arm-linux-gcc -E

编译

boa-0.94.13 # make

出现如下错误

出现错误:

yacc  -d boa_grammar.y
make: yacc: Command not found
make: *** [y.tab.c] Error 127

解决办法:

# sudo apt-get install bison

出现错误:

lex  boa_lexer.l
make: lex: Command not found
make: *** [lex.yy.c] Error 127

解决办法:

# sudo apt-get install flex

出现错误:

arm-none-eabi-gcc  -g -O2 -pipe -Wall -I.   -c -o alias.o alias.c
In file included from alias.c:26:0:
boa.h:41:19: fatal error: netdb.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'alias.o' failed
make: *** [alias.o] Error 1

解决办法:

//将交叉编译工具链换成
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

出现错误:

arm-linux-gcc -g -O2 -pipe -Wall -I.   -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1

解决办法:

# vi compat.h //修改120行

#ifdef HAVE_TM_GMTOFF
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
#else

制作cgi页面

交叉编译出一个cig脚本,供boa使用。boa默认支持cig格式的网页显示

cgic205 # ls
capture capture.c capture.o cgic.c cgic.h cgic.html cgic.o cgictest.c cgictest.cgi
cgictest.o libcgic.a license.txt Makefile readme.txt support.txt

移植

boa-0.94.13 # cp src/boa /rootfs/sbin
boa-0.94.13 # cp boa.conf /rootfs/etc/boa
boa-0.94.13 # cp cgictest.cgi /rootfs/var/www/cgi-bin/
boa-0.94.13 # cp favicon.ico /rootfs/var/www/

开发板测试

# /sbin/boa

出现如下错误

出现错误:

gethostbyname:: No such file or directory

解决办法:

//取消#注释
# vi boa.conf ServerName www.your.org.here

出现错误:

boa.c:211 - getpwuid: No such file or directory

解决办法:

//注释掉以下代码
# vi boa.c #if 0
struct passwd *passwdbuf;
passwdbuf = getpwuid(server_uid);
if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}
#endif

出现错误:

boa.c:228 - icky Linux kernel bug!: Success

解决办法:

//注释掉以下代码
# vi boa.c #if 0
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
#endif

成功启动

[01/Jan/2000:10:09:27 +0000] boa: server version Boa/0.94.13
[01/Jan/2000:10:09:27 +0000] boa: server built Sep 22 2018 at 05:23:16.
[01/Jan/2000:10:09:27 +0000] boa: starting server pid=909, port 80

客户端测试

浏览器输入 http://192.168.1.99/cgi-bin/cgictest.cgi 测试

boa移植 boa交叉编译的更多相关文章

  1. arm linux上的第一个应用程序 BOA移植

    1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...

  2. 移植BOA服务器到开发板

    移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...

  3. 嵌入式开发之web服务器---boa移植

    近段时间在做ti8148的编解码器又涉及到boa web服务器的移植.在移植到ARM开发板的过程中,遇到很多的问题.原先的自带thttpd 由于功能没有boa完善,比如在ubuntu下面的utf-8编 ...

  4. 在嵌入式Linux系统(OK6410)中移植Boa 服务器

    OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf ...

  5. ubuntu11.10(TQ210)下移植boa服务器

    平台:ubuntu11.10 一.下载源码包www.boa.org   boa-0.94.13.tar.gz 二.解压,在其src目录下生产makefile #tar xvfz  boa-0.94.1 ...

  6. linux(TINY6410)下移植boa服务器

    今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包  我这里用的是 boa-0.94.13.tar. ...

  7. boa移植

    1.交叉编译 2.复制文件 配置文件boa.conf 移动到/etc/boa/ 目录下 可执行文件boa移动到/usr/sbin/目录下 3.修改配置文件 4.将Linux系统上/etc/mime.t ...

  8. DM8168 IPNC Boa移植

    1.交叉编译openssL 下载openssL-1.0.0.tar.gz在虚拟机下进行交叉编译,生成libcrypto.a及libssl.a.将这两个文件复制到DVRRDK_03.00.00.00/b ...

  9. qt5 移植 交叉编译出现错误

    类似这样的错误,当时没有完整的记下来,undefined reference to `std::__detail::_List_node_base@GLIBCXX_3.4.10 当时是在编译qt5cl ...

随机推荐

  1. Django—常见问题解决

    让Django项目运行允许外部访问 1.将python manage.py runserver 改为 python manage.py runserver 0.0.0.0:80 或者 python m ...

  2. SpringCloud学习笔记(七、SpringCloud Netflix Zuul)

    目录: springcloud整合eureka.config.zuul zuul源码分析 springcloud整合eureka.config.zuul: 1.架构图 2.GitHub:https:/ ...

  3. 2019.6.13_SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  4. Mybatis 的 mapper配置文件,XXXXMapper.xml

    存着一个配置文件,方便开发使用.主要是XML标签. <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...

  5. 开源规则引擎 drools

    java语言开发的开源业务规则引擎 DROOLS(JBOSS RULES )具有一个易于访问企业策略.易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快.效率高.业务分析师或审核人员可以利用 ...

  6. 无法用排他锁锁定该数据库,以执行该操作。 (Microsoft SQL Server,错误: 5030)

    ALTER DATABASE Test_DB modify name = Howie --更改数据库名 EXEC sp_renamedb 'Howie' , 'Howie_Wee' --更改数据库名 ...

  7. Kavex GameDev-Resources

    https://github.com/Kavex/GameDev-Resources 各种资源

  8. Paper | UNet++: A Nested U-Net Architecture for Medical Image Segmentation

    目录 1. 故事 2. UNet++ 3. 实验 3.1 设置 作者的解读,讲得非常好非常推荐:https://zhuanlan.zhihu.com/p/44958351 这篇文章提出的嵌套U-Net ...

  9. Vue+Element UI 实现视频上传

    一.前言 项目中需要提供一个视频介绍,使用户能够快速.方便的了解如何使用产品以及注意事项. 前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传AP ...

  10. Ubuntu 14.04 安装mysql

    Ubuntu 14.04 没有mysql5.7的源,需要连接外部资源下载安装. wget http://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.d ...