操作环境:
编译器:arm-2014.05编译器
文件系统:使用的busybox移植Qt5.7的文件系统。
硬件平台:IMX6ULL
本章用iTOP-IMX6ULL开发板搭建一个web服务器。需要用到boa,boa是一个小型的web服务器,可执行代码只有约60KB,可以用于多种平台,它是一个单任务web服务器,只能依次完成用户的请求,在嵌入式中比较常见。boa的官方网站为www.boa.org,可以在上面下载最新版本的boa,这里使用的是boa-0.94.13.tar.gz。下载解压后如图1:
进入解压后的boa-0.94.13文件夹,进入目录src,运行./configure生成Makefile编译文件,成功后如图2:
修改Makefile,找到“CC = gcc”这一行,将这一行修改成“CC = arm-none-linux-gnueabi-gcc -static”,找到”CPP = gcc -E“这一行,修改成“CPP = arm-none-linux-gnueabi-gcc -E -static”,修改完成后如图3:
完成后执行make编译,过程中可能会报缺少依赖库,百度查找即可解决,如果出现下面的错误要修改compat.h,如图4所示:
解决办法,使用vi命令打开当前目录下的compat.h,然后找到“#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff”这一行,修改为如图 5所示:
然后保存并退出compat.h,输入make,继续编译boa,如图6:
接下来使用arm-none-linux-gnueabi-strip boa命令为bos文件瘦身,如图7:
通过上面的图片看到boa文件比之前变小了,至此boa的编译就完成了,下面需要把boa文件拷贝到文件系统里面。
拷贝编译最终生成的boa到共享文件夹。
虚拟机Ubuntu的/etc目录下的mime.types文件到共享文件夹。
boa-0.94.13目录下面有个默认的boa.conf文件,把它也拷贝到共享文件夹。
在/etc/目录下创建boa文件夹,将boa.conf拷贝到板子的etc/boa目录下;
mime.types拷贝到开发板etc目录下;
boa拷贝到开发板的bin目录下
接下来在开发板根目录下建立www文件夹,如图12:
然后在开发板上面建立的www目录下面建立文件夹cgi-bin目录,如图13:
然后在开发的etc目录下用命令touch group命令建立group文件,如图14:
然后进到开发板etc/boa目录,使用vi boa.conf命令打开boa.conf文件,如图15所示。
打开boa.conf文件,找到”Group nogroup”,修改为”Group 0”。
找到“ErrorLog ”和“AccessLog”这两行,指定log文件的路径,文件就会自动在此路径创建,修改成如图16:
然后找到“#ServerName www.your.org.here”这一行,修改为“ServerName www.your.org.here“如图17所示:
然后找到“DocumentRoot /var/www”这一行,修改
为“DocumentRoot /www”(注意:这里的“/www”就是前面步骤使用mkdir创建的www目录),如图 18所示:
然后找到“ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/”这一行,修改为“ScriptAlias /cgi-bin/ /www/cgi-bin/”,如图 19所示:
boa.conf修改结束。
进入到前面创建的 www 目录,然后使用 vi index.html 命令建立 index.html 文件,在里面输入下面的代码:(注意:web 页面不要包含汉字)
然后保存并退出 index.html,至此基于 boa 的 web 服务器就搭建完成了,上面创建的index.html 是一个简单的网页,用于测试。现在启动开发板,开发板起来以后直接
输入 ps - e | grep “boa” 命令,可以看到 boa 程序在运行,如图21:
在Ubuntu的浏览器输入开发板的IP地址可以看到我们放入的index.html网页:
到此boa服务器移植成功。
迅为i.MX6ULL终结者开发板使用手册内容提纲: