160411106 基于Web的远程控制设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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