博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arm7上搭建boa并进行测试cgi+html
阅读量:7095 次
发布时间:2019-06-28

本文共 2320 字,大约阅读时间需要 7 分钟。

hot3.png

参考两篇帖子

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

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

1.下载源码:

下载网址,但实际上下载的包为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  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
#include
int main(void){ printf("Content-type: text/html\n\n"); printf("\n"); printf("
CGI Output\n"); printf("\n"); printf("

Hello,world.

\n"); printf("\n"); printf("\n"); exit(0);}交叉编译arm-none-linux-gnueabi-gcc hellowworld.c -o helloworld

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

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

浏览器输入

   

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

152814_42f0_2252538.png

 

转载于:https://my.oschina.net/u/2252538/blog/997812

你可能感兴趣的文章
详解:Redis主从技术的应用
查看>>
听JITStack讲解:什么是边缘计算?边缘计算是靠近数据源的计算基础...
查看>>
机器学习的定义与起源,我国机器学习发展现状和出路?
查看>>
maven 笔记,具体配置
查看>>
Shell/Python实现Mysql读txt文本
查看>>
Linux学习笔记<二十二>——计划任务
查看>>
chart 目录结构 - 每天5分钟玩转 Docker 容器技术(164)
查看>>
自动化运维工具之Zabbix宏使用及用户自定义监控(三)
查看>>
每日一道shell 练习(05)——批量打包文件
查看>>
思科3550交换机 12T 12G 两种型号区别
查看>>
grep 技巧
查看>>
4月第一周中国五大顶级域名增3.7万 美国减3457个
查看>>
RedHat6使用Centos6的yum源
查看>>
NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎
查看>>
206. Reverse Linked List - LeetCode
查看>>
Linux环境下Maven仓库的搭建(nexus)及Mavan的简单使用
查看>>
批量替换多个文件中的字符
查看>>
我的友情链接
查看>>
IndexWriter和IndexReader对象分析
查看>>
Linux设置网络及问题排查
查看>>