Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植

上传人:努力****83 文档编号:190630137 上传时间:2023-02-28 格式:PPTX 页数:31 大小:186KB
收藏 版权申诉 举报 下载
Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植_第1页
第1页 / 共31页
Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植_第2页
第2页 / 共31页
Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植_第3页
第3页 / 共31页
资源描述:

《Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植》由会员分享,可在线阅读,更多相关《Linux系统移植(第2版):第17章 嵌入式Web服务器BOA移植(31页珍藏版)》请在装配图网上搜索。

1、第17章 嵌入式Web服务器BOA移植17.1 BOA介绍17.2 BOA编译和HTML页面测试17.3 CGI脚本测试17.4 BOA交叉编译与移植17.5 BOA与SQLite结合17.1 BOA介绍17.1.1 BOA的功能17.1.2 BOA流程分析17.1.3 BOA配置信息17.1.1 BOA的功能嵌入式Web服务器BOA完成的功能包括接收客户端请求、分析请求、响应请求、向客户端返回请求处理的结果等。BOA的工作流程如下:(1)修正BOA服务器的根目录。(2)读配置文件(boa.conf)。(3)写日志文件。(4)初始化Web服务器。(5)当有客户端连接请求到达时,Web服务器负责

2、接收客户端请求,并保存相关请求信息。(6)收到客户端的连接请求之后,Web服务器分析客户端请求,解析出请求的方法、URL目标、可选的查询信息及表单信息,同时根据客户端的请求做出相应的处理。(7)Web服务器处理完客户端的请求后,向客户端发送响应信息,最后关闭与客户机的TCP连接。17.1.2 BOA流程分析查看BOA的流程可以通过查看src/boa.c文件中的main()函数了解BOA的整个工作流程。下面将通过源码介绍BOA的主要工作流程。1.修正BOA服务器的根目录2.读取配置文件3.写日志文件4.初始化Web服务器1.修正BOA服务器的根目录函数fixup_server_root()判断W

3、eb服务器的根目录是否有效。如果Web服务器的根目录有效则指定根目录,否则打印错误信息并退出程序。2.读取配置文件函数read_config_files()用来读取配置文件信息,有关Web服务器的配置信息存放在文件boa.conf中。BOA的配置信息包括BOA服务器监听的端口、绑定的IP地址、记载错误日志文件、设置存取日志文件等。3.写日志文件函数open_logs()打开日志文件并向文件中写日志。日志文件包括错误日志文件、存取日志文件、网关日志文件。4.初始化Web服务器函数create_server_socket()是Web服务器的核心的函数。该函数的作用是建立服务端TCP套接字;然后将其

4、转换为无阻塞套接字;并且给服务套接字加锁。17.1.3 BOA配置信息BOA的配置信息都保存在文件boa.conf中,该目录默认是放在/etc/boa目录下,BOA默认在该路径下读取相关的所有配置信息。Port 80#Listen 192.68.0.5User nobodyGroup nogroupErrorLog/var/log/boa/error_logAccessLog/var/log/boa/access_logDocumentRoot/var/wwwDirectoryIndex index.htmlKeepAliveMax 1000KeepAliveTimeout 10CGIPath

5、/bin:/usr/bin:/usr/local/binScriptAlias/cgi-bin/usr/lib/cgi-bin/17.2 BOA编译和HTML页面测试17.2.1 编译BOA源代码17.2.2 设置BOA配置信息17.2.3 测试BOA17.2.1 编译BOA源代码BOA的源代码文件最新稳定版本为boa-0.94.13.tar.gz。BOA服务器的源代码在解压后的src目录下。17.2.2 设置BOA配置信息BOA配置信息存放在boa.conf中,BOA读取配置信息的时候默认路径是从/etc/boa。因此运行boa时需要建立目录/etc/boa,并将配置信息放在该目录下。也可修

6、改代码中的宏定义SERVER_ROOT(在文件defines.h中)。17.2.3 测试BOA测试BOA主要分为3步:编写测试页面,启动Web服务器,执行测试。根据配置文件中的信息可知,测试页面放在/var/www目录下,文件名为index.html。1.编写测试主页index.html2启动Web服务器3.启动Web服务器1.编写测试主页index.html 下面是测试页面的主要代码。boa test page!欢迎大家测试BOA服务器这里是BOA服务器测试主页(http+BOA服务器ip地址)测试方法在浏览器中输入,BOA服务器的IP然后回车。http:/192.168.217.128如果

7、直接在Linux上位机中进行测试可以直接在浏览器中输入下面地址并回车。http:/127.0.0.12启动Web服务器执行./boa运行Web服务器。在进行页面访问测试之前,首先可以通过ps命令查看进程中是否存在boa进程。#./boa#ps3.启动Web服务器如果通过ps命令可以查看到boa已经运行起来了,可以在Linux服务器端的浏览器中通过输入http:/127.0.0.1或者在客户端的浏览器中输入http:/192.168.1.111(服务器的IP地址)。17.3 CGI脚本测试17.3.1 编写测试代码17.3.2 编译测试程序17.3.3 测试CGI脚本17.3.1 编写测试代码C

8、GI的文件应该放在目录/var/www/cgi-bin下,在该目录下编写hello.c文件,该测试文件内容为打印“Hello,World.”。测试文件的代码如下:#include#include int main(void)printf(Content-type:text/htmlnn);printf(n);printf(CGI Outputn);printf(n);printf(Hello,world.n);printf(n);printf(n);exit(0);17.3.2 编译测试程序将hello.c文件编译生成hello.cgi文件。编译命令如下:#gcc-o hello.cgi he

9、llo.c编译生成hello.cgi后,如果该文件不是在目录/var/www/cgi-bin下,则将hello.cgi文件复制到该目录下。17.3.3 测试CGI脚本打开客户端的浏览器,在浏览器中输入下面的地址进行访问。http:/127.0.0.1/cgi-bin/hello.cgi在浏览器中正确显示“Hello,World.”。17.4 BOA交叉编译与移植17.4.1 交叉编译BOA17.4.2 准备测试程序17.4.3 配置BOA17.4.4 测试 17.4.1 交叉编译BOA进入/usr/local/boa-0.94.13/src目录对BOA进行交叉编译,这里使用的交叉编译器为arm

10、-linux-gcc-4.4.3。编译的过程如下:(1)在上位机中调试的时候已经通过configure命令生成了Makefile文件。#cd/usr/local/boa-0.94.13/src#vi Makefilegcc改为arm-linux-gccgcc E改为arm-linux-gcc E#make(2)编译完成后,通过file命令对生成的执行文件进行查看。确认生成的是ARM平台格式的文件。#file boa17.4.2 准备测试程序测试程序包括测试的HTML页面和CGI程序,HTML和CGI程序,使用在上位机中测试的程序。这里只需要对CGI程序进行交叉编译即可以使用在ARM平台上。#a

11、rm-linux-gcc-o hello.cgi hello.c同样,执行完成后对生成hello.cgi查看其文件信息。17.4.3 配置BOA(1)对原配置文件boa.conf基本不作修改,其内容如下:Port 80User rootGroup rootErrorLog/dev/consoleAccessLog/dev/nullServerName friendly-armDocumentRoot/wwwDirectoryIndex index.htmlKeepAliveMax 1000KeepAliveTimeout 10MimeTypes/etc/mime.typesDefaultTyp

12、e text/plainCGIPath/wwwAddType application/x-httpd-cgi cgi17.4.3 配置BOA(2)在原有目录/www下没有index.html文件,则将该目录下存在的文件leds.html改名为index.html。因为默认的主页名字为index.html。#cd/www#mv leds.html index.html(3)将主机中的文件/etc/mime.types复制到开发板中对应的/etc目录下。17.4.4 测试 将编译好的程序替代旧的BOA程序后,重新启动mini2440,在控制台打印BOA启动 消息:boa:server versio

13、n Boa/0.94.13boa:server built Aug 30 2013 at 19:15:03.boa:starting server pid=681,port 80(1)测试HTML。(2)测试CGI。17.5 BOA与SQLite结合17.5.1 通过CGI程序访问SQLite 17.5.2 编译和测试17.5.1 通过CGI程序访问SQLite SQLite提供了C语言访问的接口,通过采用C语言程序访问数据库,将该访问数据库的操作编译成CGI程序部署在BOA的CGI路径下,远程维护人员通过调用此CGI程序就能实现远程维护数据库的目的。17.5.2 编译和测试编译SQLite程

14、序时,需要SQLite接口的头文件和库文件支持。对于SQLite的编译和安装过程,本节不再介绍,如果还没有安装SQLite的读者,可以参照SQLite数据库的移植对SQLite进行编译和安装。1.CGI程序的编译和部署2.测试sqlite.cgi1.CGI程序的编译和部署将上述代码起名为sqlite.c放在BOA服务器的CGI路径下,对于本机的路径为/var/www/cgi-bin。然后使用下面的命令对其进行编译:#gcc-o sqlite.cgi-I/usr/local/sqlite_x86/include-L/usr/local/sqlite_x86/lib sqlite.c-lsqlite3-static lpthread ldl/usr/local/sqlite_x86是本机SQLite的安装目录。编译完成后在/var/www/cgi-bin目录下生成了sqlite.cgi文件,同时也完成了部署。2.测试sqlite.cgi在Windows的浏览器中输入http:/192.168.1.111/cgi-bin/sqlite.cgi,来访问虚拟机(虚拟机的IP地址为192.168.1.111)下的CGI程序。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!