zedboard提供的demo系统很迷你,但是也能移植嵌入式Web服务器的。这里就移植boa服务器。

1.下载Boa服务器源代码(安装好了交叉编译器)

http://www.boa.org/,选择最后一个发布的版本0.94.13

tar -xzvf boa-0.94.13.tar.gz  -C  /home/xzy/sdb1/boa/

目录自己选择,要安装好交叉编译器

2.修改

进入解压后的src这个文件夹,执行./configure,如果没有可执行权限的话用chmod就可以了。

修改Makefile    输入 vim Makefile

找到CC=gcc,替换成我们的交叉编辑环境。  CC=arm-xilinx-linux-gnueabi-gcc

找到CPP=gcc -E,替换成我们的交叉编辑环境。  CC=arm-xilinx-linux-gnueabi-g++

3.改bug

注释下面这段代码,对应225,226,227.

4.修改compat.h

#define TIMEZONE_OFFSET(foo) foo## ->tm_gmtoff,修改

#define TIMEZONE_OFFSET(foo) foo ->tm_gmtoff

5.make

报错1,yacc -d boa_grammar.y make:yacc:command not found

解决方法apt-get install bison

在make 报错2,y.tab.c:In function 'yyparse'

解决方法 apt-get install flex

make ,成功了

make成功之后,运行如下命令去除可执行文件的冗余信息:

arm-xilinx-linux-gnueabi-strip boa

6配置Boa服务器

在源码目录下面可以找到一个boa.conf,我们在这个基础上修改配置。这个配置参考书上的。

User nobody 改为User 0

Group nobody 改为Group 0

ServerName 这个可以自己修改,我没有修改

#DirectoryMaker /usr/lib/boa/boa_indexer 这个原本是没有注释项的,

这里配置好的一些目录必须要保证其他的辅助文件和设置和这里相符,如我们要在demo系统中创建一些目录,下面会创建。另外将可执行文件boa,配置文件boa.conf,mime.types(在linux主机下的/etc下)拷贝到U盘,因为我还没有单间NFS服务器,所以要借助U盘。在新建一个index.html文件。

7.Boa最后的测试

7.1 启动系统,挂载U盘,mount /dev/sda1 /opt/

7.2 新建目录 mkdir -p /etc/boa /var/log/boa /var /www/cgi-bin

7.3 拷贝文件到相应目录

拷贝配置文件 cp boa.conf /etc/boa/

拷贝 cp mime.types /etc/

7.4 新建两个log文件 vi /var/log/boa/error_log /var/log/boa/access_log 不输入任何东西,保存就可以了。

7.5 chmod 777 index.html,并且拷贝到 cp index.html /var/www/

7.6 由于我的ip和电脑的ip不在一个网段,更改开发板的ip,ifconfig eth0 202.38.214.211

可以在运行cmd命令(pc机)来ping一下,看是否能ping通。

7.7 在U盘中不是还一个boa可执行文件没用上嘛,现在是他用上的时候了, 输入 ./boa &

7.8 在浏览器中输入202.38.214.211

可以看到成功运行了,ps:在书上有提到运行./boa &的时候会看到一些信息,我没有看到。

另外开发板一掉电,那些新建的目录就没有了,这个时候就可以用我们之前的软件开机运行的那个方法,重新制作出新的文件系统压缩镜像,也可以编写一个启动脚本(这个有待尝试)。

8.CGI小尝试

index.html源码为

<html>
<head>
<title>Zedboard WebServer Demo </title>
</head>
<body>
<h1>hello 214!hello xzy!</h1>
<p><a href="./cgi-bin/a.out">cgi in the boa server</a></p>
</body>
</html>

主要是比上面添加了<p><a href="./cgi-bin/a.out">cgi in the boa server</a></p>

CGI源码

对CGI源码进行交叉编译,然后放入zedboard的/var/www/cgi-bin目录下即可,原来的index.html用上面的index.html代替,其他都一样。效果如下:

点击上面的链接:出现

当用户通过Boa服务器访问到index.html网页时,单击CGI链接将可以访问到由上述C语言所编写的简易网页。

zedboard--基于zedboard的demo系统的boa服务器搭建(二十一)的更多相关文章

  1. 基于开源博客系统(mblog)搭建网站

    基于开源博客系统(mblog)搭建网站 上一章讲了基于jpress部署的博客系统,这一章了解一下 mblog这个开源的基于springboot的博客系统,相比与jpress 的热度fork数量要少一些 ...

  2. 基于开源博客系统(jpress)搭建网站

    基于开源博客系统(jpress)搭建网站 JPress 使用 Java8 开发,基于流行的JFinal和Jboot框架. 目前JPress已经内置的文章和页面其实是两个模块,可以移除和新增其他模块,因 ...

  3. BOA服务器搭建步骤

    1.下载Boa Webserver的源码 http://www.boa.org/ 2.解压并编译Boa Webserver $ tar xvf boa-0.94.13.tar.gz 由于Boa Web ...

  4. win7系统中ftp服务器搭建方法(多图)

    一.创建FTP站点 1.打开:控制面板---系统和安全---管理工具---Internet 信息服务 2. 建站:右键点击网站---添加FTP站点 3. 输入FTP 站点名称---选择你的 FTP 目 ...

  5. 基于Centos7.X的CS:GO社区服搭建

    基于Centos7.X的CS:GO私人服务器搭建 由于比完了赛,在学校太过无聊,便想搭建一个CSGO社区服务器,方便舍友同学进来游玩,顺便帮助一些有想法的人,让他们少走一点弯路 一.创建新用户,并下载 ...

  6. 基于ZedBoard的Webcam设计(一):USB摄像头(V4L2接口)的图片采集【转】

    转自:http://www.cnblogs.com/surpassal/archive/2012/12/19/zed_webcam_lab1.html 一直想把USB摄像头接到Zedboard上,搭建 ...

  7. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  8. 基于jeesite的cms系统(一):开发环境搭建

    基于jeesite的cms系统系列,是对基于jeesite进行二次开发的博客模块开发过程的总结.涉及入门安装,二次开发,部署等 一.概况: JeeSite 是一个 Java 企业级快速开发平台,基于经 ...

  9. 前端开发工具包 WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧

    ​ 前端开发工具包WijmoJS在2019年的第一个主要版本2019V1已经发布,本次发布包括了更加易用的在线Demo系统.各控件新增功能.NPM 包的改动,以及全新的浏览器API组件. WijmoJ ...

随机推荐

  1. [实战]MVC5+EF6+MySql企业网盘实战(8)——文件下载、删除

    写在前面 上篇文章通过iframe实现了文件的无刷新上传.这篇我们将实现文件的下载与删除. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySq ...

  2. 【LOJ】#2173. 「FJOI2016」建筑师

    题解 蒟蒻只会\(O(nAB)\)的dp= = 那么先说答案 \(S_{u}(n - 1,a + b - 2) * \binom{a + b - 2}{a - 1}\) 其中\(S_{u}(n,m)\ ...

  3. logstash收集java日志,多行合并成一行

    使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input { ...

  4. 洛谷P2234 [HNOI2002] 营业额统计 [splay]

    题目传送门 营业额统计 题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天 ...

  5. java变量的命名使用规则

    1.环境变量通常是指在操作系统中,用来指定操作系统运行时需要的一些参数 2.变量名以字母.下划线或者美元符(4上面的¥)开头,不能以数字开头,后面跟字母.下划线.美元符.数字,变量名对大小写敏感,无长 ...

  6. JavaWeb 之 AJAX

    Ajax ajax:AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新 AJAX:Asynchronous JavaScript and XML,异步 javasc ...

  7. ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null

    ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null,解决方法:判断什么null都可以用is null.

  8. Kail Linux渗透测试教程之Recon-NG框架

    Kail Linux渗透测试教程之Recon-NG框架 信息收集 信息收集是网络攻击最重要的阶段之一.要想进行渗透攻击,就需要收集目标的各类信息.收集到的信息越多,攻击成功的概率也就越大.本章将介绍信 ...

  9. eclipse 怎么 直接查看 文件所在位置 显示在文件管理器中。用浏览器浏览。

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha eclipse 怎么 直接查看 文件所在位置 显示在文件管理器中.用浏览器浏览.

  10. [HDU5492]Find a path

    题目大意: 一个n*m的格子,每个格子上都有一个数. 你可以向下或者向右走,从(1,1)走到(n,m),问方差*(n+m-1)最小的路径是哪个? 思路: 方差*(n+m-1)就相当于给格子里每个数乘上 ...