一、简要说明
<
第二章 A40i系列Boa应用
1、Boa配置文件
Boa配置文件在/etc/boa/boa.conf常用配置说明:(可根据项目需要,将以下配置添加到配置文件里)Group nogroupUser nobody这两个配置是配置boa的运行的属主和属组,如果cgi要配置网卡地址,就必须修改成User rootCGIPath /bin:/usr/bin:/usr/local/bin:/sbinCgi程序运行的一个程序搜索路径;比如运行ifconfig eth0 192.169.0.232就必须配置/sbin路径;ScriptAlias /cgi-bin/ /usr/lib/cgi-bin//usr/lib/cgi-bin/ 是cgi程序放到boa中的绝对地址,/cgi-bin/ 是客户在网页中提交的cgi地址;例如:/usr/lib/cgi-bin/中放置一个app.cgi;网页访问时候使用/cgi-bin/app.cgi?type=conf&random=0.1111DocumentRoot /var/www这个是虚拟目录在开发板中的真实目录/var/log/boa/access_log日志需要的文件夹和名字VerboseCGILogs调试日志开关,正式运行时候关闭。2、cgi应用测试demo
CGI是Web服务器运行时外部程序的规范,按CGI编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。2.1 配置服务器
先运行#boa之后电脑浏览器浏览http://192.168.0.232/正常浏览不报错,说明boa运行ok。把boa/boa.conf 放到A40i 开发板/etc/boa/boa.conf 替换原来的boa.conf2.2 放置程序
cgi-bin内部的文件放到/usr/lib/cgi-bin/app.cgiindex.html ,xmlhttpreq.js放到 /var/www/ajax/文件夹下修改权限 /etc/boa/boa.confchown root:root /var/www/ajax/*chown root:root /usr/lib/cgi-bin/app.cgichmod o+x /usr/lib/cgi-bin/app.cgichmod o+r /usr/lib/cgi-bin/app.cgi2.3 开启boa测试
先运行#boa之后电脑浏览器浏览http://192.168.0.232/ajax/2.4 开发及调试代码说明
当打开配置文件VerboseCGILogs 后调试信息就会生成access_log error_log程序正式调试完成后要关闭程序.程序调试时候需要看这两个日志文件。Web网页端<script language="JavaScript" src="xmlhttpreq.js"></script>说明xmlhttpreq.js程序运行的脚本<p><input type="button" value="获取时间" /> </p> 获取时间函数调用sender()。<p><input type="button" value="设置ip地址" /> </p> 配置ip的函数调用configip()函数配置ip请求;特别说明:index.html 和xmlhttpreq.js程序脚本是下载在本地浏览器里执行的;cgi不是下载到本地浏览器执行。Js应用程序异步返回的时间请求xhr.open("GET", "/cgi-bin/app.cgi?type=time&random="+Math.random(),true);是向远程的app.cgi 发送请求,请求获取时间后返回web浏览器。当远程boa返回正确的数据后。var returnValue = xhr.responseText;就是返回的结果异步设置ip请求//配置ip地址var data={"name":"ipconfig"};//ip_addressvar str_ip=document.getElementById("ip_address").value;data.address=str_ip;xhr.onreadystatechange=callback_configipFunction;//test.cgi后面跟个cur_time参数是为了防止Ajax页面缓存xhr.open("POST", "/cgi-bin/app.cgi?type=conf&random="+Math.random(),true);xhr.setRequestHeader("content-type","application/json");xhr.send(JSON.stringify(data));向app.cgi发送一个异步json对象对象内容是{"name":"ipconfig", “address” :”192.168.0.232”}服务器回收到这个字符串,然后解释这个字符串进行配置ip配置成功后会收到{“status”:”ok”} 返回结果。Cgi程序说明程序段1item = cJSON_GetObjectItem(root, "address");//value=cJSON_Print(item);if(value!=0){sprintf(str_configip,"ifconfig eth0 %s",value);ret=system(str_configip);}程序段2if(ret==0){char* retstr="{\"status\":\"ok\"}";printf("%s",retstr);}else{char* retstr="{\"status\":\"error\"}";printf("%s",retstr);}程序段1 解释json配置网络。程序段2返回配置执行结果。通过这个demo,客户就可以实现web网页配置A40i开发板的各种硬件资源。原文链接:https://www.forlinx.com/article_view_777.html