boa移植 boa交叉编译
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交叉编译的更多相关文章
- arm linux上的第一个应用程序 BOA移植
1. 首先, linux在开发板上能跑起来了. 包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才 ...
- 移植BOA服务器到开发板
移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...
- 嵌入式开发之web服务器---boa移植
近段时间在做ti8148的编解码器又涉及到boa web服务器的移植.在移植到ARM开发板的过程中,遇到很多的问题.原先的自带thttpd 由于功能没有boa完善,比如在ubuntu下面的utf-8编 ...
- 在嵌入式Linux系统(OK6410)中移植Boa 服务器
OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf ...
- ubuntu11.10(TQ210)下移植boa服务器
平台:ubuntu11.10 一.下载源码包www.boa.org boa-0.94.13.tar.gz 二.解压,在其src目录下生产makefile #tar xvfz boa-0.94.1 ...
- linux(TINY6410)下移植boa服务器
今天在tiny6410上移植了boa服务器,中间遇到了一些小问题.当时也及时解决了. 第一步:boa的编译 在www.boa.org下载Boa的压缩包 我这里用的是 boa-0.94.13.tar. ...
- boa移植
1.交叉编译 2.复制文件 配置文件boa.conf 移动到/etc/boa/ 目录下 可执行文件boa移动到/usr/sbin/目录下 3.修改配置文件 4.将Linux系统上/etc/mime.t ...
- DM8168 IPNC Boa移植
1.交叉编译openssL 下载openssL-1.0.0.tar.gz在虚拟机下进行交叉编译,生成libcrypto.a及libssl.a.将这两个文件复制到DVRRDK_03.00.00.00/b ...
- qt5 移植 交叉编译出现错误
类似这样的错误,当时没有完整的记下来,undefined reference to `std::__detail::_List_node_base@GLIBCXX_3.4.10 当时是在编译qt5cl ...
随机推荐
- 【LeetCode】70. 爬楼梯
爬楼梯 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...
- [PHP] 深度解析Nginx下的PHP框架路由实现
所有的框架处理业务请求时,都会处理URL的路径部分,分配到指定的代码中去处理.实现这一功能的关键就是获取$_SERVER全局变量中对于URL部分的数据 当请求的路径为http://test.com/a ...
- 在C++工程上添加CUDA编译环境
1.直接在新建工程的时候选择CUDA,这样的工程既能编译C++也能编译CU 2.在已有的C++工程上添加CUDA编译环境 右键工程-->生成依赖项-->生成自定义-->勾选CUDA ...
- k8s中的client-go编译成功
要分版本的,好像1.4跟12差别好大. 1.4中用的模块管理还是vendor,12就换成mod了. 这个要记住差异. 一,从github上下载client-go的1.4版本 https://githu ...
- 往对象数组里面添加相同的key 不同的value 和删除相同的key值
应用场景:后盾字段没有发给你 自己补充数据 <div v-for="item in list" :key="item.id"> <p> ...
- 初学JavaScript正则表达式(五)
范围类 [ ] 例: 'a1b1c1s1v1d1f1'.replace(/[a-z]/g,'q') //q1q1q1q1q1q1q1 将a-z范围内的字符替换为q 'a1b1c1s1v1d1f1AKS ...
- win10,anconda, python3.6安装dlib19.17
目的和经验: 几个月前在笔记本上安过一次,按着教程用cmake编译其实也蛮简单的,不过当初忘了收藏了.现在换了台机子需要重新安装一遍,奈何之前的帖子找不到了. pypi 网站上有19.8.whl,如果 ...
- Django2.2报错 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
准备将 Django 连接到 MySQL,在命令行输入命令 python manage.py makemigrations 后报错: django.core.exceptions.Improperly ...
- DRF--序列化
为什么要用序列化 当我们做前后端分离的项目时,前后端交互一般都是JSON格式的数据,那么我们给前端的数据就要转为JSON格式,就需要我们拿到数据库后的数据进行序列化.在看DRF的序列化之前,先来看看d ...
- A1047 Student List for Course (25 分)
一.技术总结 首先题目要看清湖,提出的条件很关键,比如for循环的终止条件,特别注意. 还有这个题目主要考虑到vector的使用,还有注意一定要加上using namespace std; 输出格式, ...