文档章节

arm7上搭建boa并进行测试cgi+html

青春无极限
 青春无极限
发布于 2017/06/23 15:28
字数 700
阅读 106
收藏 0

参考两篇帖子

http://blog.csdn.net/bull_liu/article/details/7486298 boa移植

http://blog.csdn.net/wang_walfred/article/details/46728499 cgi+html测试文档

1.下载源码:

下载网址http://www.boa.org/boa-0.94.13.tar.gz,但实际上下载的包为boa-0.94.13.tar.tar

2.解压源码包:

将源码拷贝到/usr/src目录下,

#tar -xvf boa-0.94.13.tar.tar

之后,会在/usr/src目录下生成boa-0.94.13目录。

3.修改源码:

①修改boa-0.94.13/src目录下的boa.c源文件,大概在225行,注释掉如下语句:

if (setuid(0) != -1){

          DIE("icky Linux kernel bug!");

}

注释掉的具体原因还没有弄懂!正在研究中……不注释无法使用post方法。

②修改boa-0.94.13/src目录下的compat.h头文件,大概在120行,修改如下:

将foo##->tm_gmtoff中的##去掉即可,不然在编译时会出现:

util.c:100:1:error:pasting "t" and "->"does not give a valid prearocessing token.

具体原因可能是使用了较高版本的编译器。

4.执行configure:

在boa-0.94.13/src目录下执行configure:

#./configure

之后会生成Makefile文件

5.修改Makefile文件:

修改boa-0.94.13/src目录下的Makefile文件,修改如下:(前提是已配置好交叉编译工具链)

将CC = gcc修改为CC=arm-none-linux-gnueabi-gcc

将CPP = gcc -E 修改为CPP=arm-none-linux-gnueabi-gcc -E

6.执行make:

在boa-0.94.13/src目录下执行make:

#make

一般make不过

      debian:/home/a/boa-0.94.13/src# make 
  yacc -d boa_grammar.y 
  make: yacc: Command not found 
  make: *** [y.tab.c] Error 127 
  解决方法: 
  debian:/home/a/boa-0.94.13/src# sudo apt-get install bison 
  错误2: 
  debian:/home/a/boa-0.94.13/src# make 
  lex boa_lexer.l 
  make: lex: Command not found 
  make: *** [lex.yy.c] Error 127 
  解决方法: 
  debian:/home/a/boa-0.94.13/src#sudo apt-get install flex 

之后会在boa-0.94.13/src目录下生成boa可执行文件,即可以在ARM板子上运行的程序。

7.在开发板上创建执行目录:

#mkdir /var/www                (如果有了,就省略)

#mkdir /var/www/cgi-bin

#mkdir /var/log

#mkdir /var/log/boa

#mkdir /etc/boa

将在boa-0.94.13/目录下的boa.conf文件拷贝到开发板/etc/boa目录下;

将宿主机中/etc/mime.types文件拷贝到开发板/etc目录下;

将boa-0.94.13/src目录下的boa拷贝到开发板/bin目录下(或其他默认系统路径);

8.修改boa.conf文件:

①修改48行:User nobody 为 User root

修改48行:User group 为  User root

②修改193行:ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 为 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

至此,boa移植完毕。

1、编写HelloworldCGI.c程序

[tekkamanninja@Tekkaman-Ninja source]$ vi helloworldCGI.c

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
        printf("Content-type: text/html\n\n");
        printf("<html>\n");
        printf("<head><title>CGI Output</title></head>\n");
        printf("<body>\n");
        printf("<h1>Hello,world.</h1>\n");
        printf("<body>\n");
        printf("</html>\n");
        exit(0);
}


交叉编译
arm-none-linux-gnueabi-gcc hellowworld.c -o helloworld

(主程序的程序开头一定要用Tab,而不是空格,不然编译可能不通过)

放到/var/www/cgi-bin/下

浏览器输入
   http://192.168.1.2/cgi-bin/helloworld

网页出现 Hello,world. 调试成功!

 

© 著作权归作者所有

青春无极限
粉丝 2
博文 127
码字总数 70524
作品 0
卢湾
程序员
私信 提问
boa与cgic库写cgi简介

嵌入式 WEB 服务器 BOA 和 CGI 一、嵌入式 WEB 服务器 BOA 简介 嵌入式 WEB 服务器常见的有: boa lighttpd shttpd thttpd mathopd minihttpd appweb goahead 随着 Internet 技术的兴起,在嵌...

唧唧帝
2014/01/15
1K
0
大数据storm应该怎么学?

帮助大家在业务上面快速使用Storm,相信学完之后可以直接面对生成环境的问题,解决问题,优化结构。项目使用Storm0.9.1+Kafka0.8.1.1+Zookeeper锁+Memcached+mysql架构,从集群搭建到集群连通...

让往事随风
2016/04/19
71
0
Python学习札记(2)——搭建Boa-constructor

一、Boa-constructor是什么 看看来自己百度的解释:Boa Constructor是一个跨平台的Python集成开发环境和wxPython图形用户界面构建器。它提供了可视化方式的框架(窗口) 的创建 和处理、对象...

东方卯
2014/03/04
3.5K
2
SylixOS移植Boa服务器

1. Boa简介 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,...

遗忘丶彻底
2017/07/10
0
0
嵌入式Web服务器移植

第一步 Boa程序的移植 1、下载Boa源码 下载地址: http://www.boa.org/, 或者 http://sourceforge.net 最新发行版本: 0.94.13 下载 boa-0.94.13.tar.gz,注意:从boa上下载的是boa-0.94.13...

晨曦之光
2012/03/09
76
0

没有更多内容

加载失败,请刷新页面

加载更多

sync 包讲解

sync.Once Once 的作用是多次调用但只执行一次,Once 只有一个方法,Once.Do(),向 Do 传入一个函数,这个函数在第一次执行 Once.Do() 的时候会被调用,以后再执行 Once.Do() 将没有任何动作...

李琼涛
20分钟前
3
0
java中的byte占一字节或4字节

https://www.jianshu.com/p/2f663dc820d0

南桥北木
34分钟前
4
0
Cassandra 常用命令

Linux控制台命令 #进入Cassandra的安装目录 cd /home/db/cassandra/cassandra #进入Cassandra 无密码 ./bin/cqlsh localhost(IP)有密码 ./bin/cqlsh localhost(IP)-u 用户名 #显示所...

最菜最菜之小菜鸟
39分钟前
4
0
自建redis笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
47分钟前
4
0
扛住阿里双十一高并发流量,Sentinel是怎么做到的?

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景 本文介绍阿里开源限流熔断方案Sentinel功能、原理、架构、快速入门以及相关框架比较 基本介绍 1 名词解释 服务限流 :当系统资源...

分布式系统架构
55分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部