随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍这种应用的开发和移植工作。
用户首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。
HK-2000数据采集仪WEB服务器BOA的移植步骤如下:
1.从下载Boa源码,将其解压并进入源码目录的src子目录
# tar -zxvf boa-0.94.13.tar.gz
# cd boa-0.94.13/src
2.生成Makefile文件
# ./configure
修改Makefile文件,
a.找到CC=gcc,将其改成CC = arm-linux-gcc,
b.找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,
保存退出。
3.运行make进行编译,得到的可执行程序为boa,并将调试信息剥去
# make
# arm-linux-strip boa
4.编写boa.conf
5.cp boa 到开发板的/bin目录下,在开发板/etc目录下建boa目录,cp boa.conf到板子的/etc/boa目录。
6.创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,创建CGI脚本所在目录/var/www/cgi-bin/,在/var/www中放置一个index.html文件
7.cp mime.types文件到开发板/etc目录
8.vi passwd,添加nouser用户,vi group 添加nogroup组
8.运行boa:
#/bin/boa
现在通过其他机器就可以访问了。
就可以访问到你放置的那个index页面了。
9.编辑helloworld.c程序测试cgi的运行
#arm-linux-gcc -o helloworld.cgi helloworld.c
#cp helloworld.cgi 到开发板的/var/www/cgi-bin目录下
在pc机的浏览器地址栏输入/cgi-bin/helloworld.cgi,可以看到相关页面,CGI脚本测试通过。
10.从CGIC的主站点下载源码,将其解压并进入源码目录
# tar -zxvf cgic205.tar.gz
# cd cgic205
11.修改Makefile文件
a.找到CC=gcc,将其改成CC=arm-linux-gcc,
b.找到AR=ar,将其改成AR=arm-linux-ar,
c.找到RANLIB=ranlib,将其改成RANLIB=arm-linux-ranlib。
e.找到gcc cgictest.o -o cgictest.cgi ${LIBS},
将其改成$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS},
f.找到gcc capture.o -o capture ${LIBS},
将其改成$(CC) $(CFLAGS) capture.o -o capture ${LIBS},
保存退出。
12.然后运行make进行编译,得到的CGIC库libcgic.a,我们通过调试辅助程序capture和测试程序cgictest.cgi,来验证生成CGIC库的正确性。
13.将capture和cgictest.cgi拷贝到主机的/var/www/cgi-bin目录下。
在工作站的浏览器地址栏输入/cgi-bin/cgictest.cgi,可以看到页面,CGIC库和测试脚本都移植成功。
Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改,下面解释一下该文件的含义:
#监听的端口号,缺省都是80,一般无需修改
Port 80
# bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址
#Listen 192.68.0.5
#作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需
要 /etc/passwd中有nobody用户
User nobody
#作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,需要在/etc/group文件中有nogroup组
Group nogroup
#当服务器发生问题时发送报警的email地址,目前未用,注释掉
#ServerAdmin root@localhost
#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录
ErrorLog /var/log/boa/error_log
#访问日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null或直接注释掉。在下面设置时,注意一定要建立/var/log/boa目录
#AccessLog /var/log/boa/access_log
#是否使用本地时间。如果没有
阅读(1447) | 评论(0) | 转发(0) |