160411106 基于Web的远程控制设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Web的远程控制设计

设计要求:建立嵌入式系统的web服务功能(boa服务器的建立见移植参考说明),设计控制网页,编写控制的CGI程序,实现利用Web页远程控制嵌入式系统中的硬件状态,如控制Led等的点亮、熄灭等动作。

一实验原理

系统开发步骤:

1、建立可用的软件开发环境;

2、移植Boa服务器;

3、开发所需的驱动程序;

4、编写html页面;

5、编写CGI程序,实现远程控制;

6、登陆服务器,测试系统功能。

二嵌入式WEB服务器BOA的移植方法

1、编译BOA 服务器参考步骤

我们的网站中提供了boa的源代码,叫做boa-0.94.13OK.tar.gz。进入虚拟机Linux系统,首先解压该文件:[root@localhost webserver]# tar -zxvf boa-0.94.13OK.tar.gz

然后进入源代码目录: [root@localhost webserver]# cd boa-

0.94.13/src

修改文件compat.h的第120行:[root@localhost src]# vi compat.h

修改后,第120行的内容如下: #define TIMEZONE_OFFSET(foo) foo-

>tm_gmtoff

即只是去掉了该行的两个’##’字符。

然后修改boa.c:[root@localhost src]vi boa.c

找到该文件的225~227行,注释掉这几行。不然运行的时候会出错。

由于我们实验室的开发板已经加载了Linux系统,在实验板上的/etc目录是属于只读文件系统下的,因此不能再其下创建boa目录和复制文件boa.conf到该目录。我们需要修改boa源码中对boa.conf文件的默认路径:

修改defines.h

[root@localhost src]# vi defines.h

将第30行#define SERVER_ROOT "/etc/boa"修改为可读写的目录/var

#define SERVER_ROOT "/var"

源文件的修改就完成了。现在开始编译:

首先运行configure程序对源文件进行配置:

[root@localhost src]# ./configure

配置完成后,生成Makefile,修改Makefile:

[root@localhost src]# vi Makefile

修改第31行和32行如下: CC = arm-linux-gcc CPP = arm-linux-gcc -E

修改完成后,保存文件,运行Make进行编译:

[root@localhost src]# make

编译完成后,会在该目录下生成我们需要的可执行文件boa。

将调试信息剥去,得到的最后程序只有约60KB大小。

[root@localhost src]# arm-linux-strip boa

2、配置BOA 服务器参考步骤

第二步完成Boa的配置,使其能够支持CGI程序的执行。Boa需要在/etc目录下建立一个boa目录(由于本实验已将SERVER_ROOT 改为"/var",则配置文件直接放在“/var”),里面放入Boa的主要配置文件boa.conf。

拷贝Boa源码目录下已有的一个示例boa.conf,在其基础上进行修改:Port 80

#Listen 192.68.0.5

User root

Group 0

#ServerAdmin root@localhost

ErrorLog /var/web_boa/log/error_log

AccessLog /var/web_boa/log/access_log

#UseLocaltime

#VerboseCGILogs

ServerName .here

#VirtualHost

DocumentRoot /var/web_boa/www

UserDir public_html

DirectoryIndex index.html

DirectoryMaker /usr/lib/boa/boa_indexer

# DirectoryCache /var/spool/boa/dircache

KeepAliveMax 1000

KeepAliveTimeout 10

MimeTypes /var/web_boa/mime.types

DefaultType text/plain

CGIPath /bin:/usr/bin:/usr/local/bin

Alias /doc /usr/doc

ScriptAlias /cgi-bin/ /var/web_boa/www/cgi-bin/

用户可以根据自己需要,对boa.conf进行修改,但必须要保证其他的辅助文件和设置必须和boa.conf里的配置相符,不然Boa就不能正常工作。在上面的例子中,我们还需要创建日志文件所在目录/var/web_boa/log,创建HTML文

档的主目录/var/web_boa/www,将mime.types文件拷贝到/var/web_boa目录,创建CGI脚本所在目录/var/web_boa/www/cgi-bin/。mime.types文件用来指明不同文件扩展名对应的MIME类型,一般可以直接从Linux主机上拷贝一个,大部分也都是在主机的/etc目录下。

将修改好的boa.conf传到开发板得/var目录下。

创建所需其他的辅助文件文件目录

在 /var下建立web_boa目录等,请根据boa.conf文件中的内容相应创建需要的目录。另外,在虚拟机的/etc目录下拷贝mime.types文件到开发板。

在开发板的/var/web_boa/log/目录下创建error_log和access_log文件:up-tech:/var/web_boa/log #touch error_log

up-tech:/var/web_boa/log #touch access_log

3、运行BOA

将生成的执行文件boa、pass.cgi及index.html文件传到开发板指定目录(boa.conf文件中指定)。

在开发板执行boa(注意:若启动boa后又配置或程序有修改,必须先退出boa,重新运行boa。退出具体方法:ps命令查看boa进程号,再执行:kill 进程号)

up-tech:#./boa

在远程联网计算机端的浏览器中输入开发板的IP地址,即可访问网页。

三 CGI原理及程序设计与编写

#include

#include

#include

#include

#include

相关文档
最新文档