IMX6ULL移植boa web服务器

一、下载和安装
boa的官方网站为www.boa.org,在上面下载最新版本的boa,本文使用的是 boa-0.94.13.tar.gz。
1.1下载完成拷贝到ubantu下。
在这里插入图片描述1.2解压 boa-0.94.13.tar.gz。

tar -xvf boa-0.94.13.tar.gz

1.3进入boa-0.94.13

cd boa-0.94.13/

解压成功后得到如下文件
在这里插入图片描述
1.4进入src文件夹,执行configure文件生成Makefile文件:

cd src\
./configure

执行完上面的命令后,会在当前目录下生成 Makefile文件,如下图所示:
在这里插入图片描述
1.5修改Makefile文件

vi Makefile

在 Makefile文件里面找到“CC = gcc”这一行,如下图所示:
在这里插入图片描述

将这一行修改成“CC = arm-none-linux-gnueabihf-gcc -static”然后找到”CPP = gcc -E“这一行,如下图所示
在这里插入图片描述
把这一行修改成“CPP = arm-none-linux-gnueabihf-gcc -E -static”最后退出并保存 Makefile文件,接下来输入 make命令,开始编译 boa。
1.6修改boa.c文件

vi boa.c

找到如下代码

if (passwdbuf == NULL) {
             DIE(”getpwuid”);
            }
            if (initgroups(passwdbuf->pw_name,passwdbuf->pw_gid) == -1) {
            DIE(”initgroups”);
            }

将其修改为:

/*if (passwdbuf == NULL) {
             DIE(”getpwuid”);
            }
            if (initgroups(passwdbuf->pw_name,passwdbuf->pw_gid) == -1) {
            DIE(”initgroups”);
       }*/

1.6 make将会遇到如下问题:
问题1:

util.c: 在函数‘get_commonlog_time’中:
util.c:100:39: 错误:毗连“t”和“->”不能给出一个有效的预处理标识符
         time_offset = TIMEZONE_OFFSET(t);
compat.h:120:30: 附注:in definition of macro ‘TIMEZONE_OFFSET’
 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
 <builtin>: recipe for target 'util.o' failed
make: *** [util.o] Error 1

如图:
在这里插入图片描述
解决办法:根据提示修改源码中的src/compat.h文件。
修改:#define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
为:#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
然后保存并退出 compat.h,输入make,继续编译 boa.
可以使用 ll boa命令查看一下 boa文件的大小,如下图。
在这里插入图片描述
1.7接下来使用 arm-none-linux-gnueabi-strip boa命令为bos文件瘦身,如下图:
在这里插入图片描述

1.8p 命令拷贝编译最终生成的boa到 NFS文件系统的 bin目录下面,如下图所示。
在这里插入图片描述1.9统中/etc中建立boa文件夹,如图:
在这里插入图片描述
1.10 NFS文件系统的根目录下建立 www 文件夹,如下图。
在这里插入图片描述
1.12建立的 www目录下面建立文件夹 cgi-bin 目录,如下图。
在这里插入图片描述
1.13boa程序运行需要一个配置文件:boa.conf,在boa-0.94.13 目录下面有个默认的boa.conf文件,把它拷贝到 NFS文件系统的etc/boa目录下面,如下图
在这里插入图片描述
1.14然后拷贝虚拟机Ubuntu的/etc目录下的mime.types文件到NFS文件系统的etc目录下面,如下图所示。
在这里插入图片描述
1.15然后在 NFS文件系统的 etc目录下用命令vi group命令建立group 文件,如下图所示。
在这里插入图片描述
1.16然后在 group文件输入“root:*:0:”,添加root用户组,如下图所示。
在这里插入图片描述
1.17然后保存并退出。然后进到 NFS文件系统的 etc/boa目录,使用 vi boa.conf命令打开 boa.conf文件。
打开 boa.conf文件,找到“Groupnogroup”这一行,修改为

User 0
Group 0

如下图。
在这里插入图片描述
1.18然后找到“#ServerName www.your.org.here”这一行,修改为“ServerNamewww.your.org.here”,如下图所示。
在这里插入图片描述
1.19然后找到“DocumentRoot/var/www”这一行,修改为“DocumentRoot/www”(注意:这里的“/www”就是前面步骤使用mkdir 创建的www 目录),如下图所示。
在这里插入图片描述
1.20然后找到“ScriptAlias /cgi-bin//usr/lib/cgi-bin/”这一行,修改为“ScriptAlias /cgi-bin/ /www/cgi-bin/”,如下图所示。
在这里插入图片描述
1.21最后保存并退出 boa.conf,至此完成 boa.conf配置文件的修改。下面添加科技自动运行boa的脚本,打开 NFS文件系统的 etc/init.d/rcS文件,打开 etc/init.d/rcS 文件以后,定位到最后一行,然后在最后一行添加:

cd /bin
./boa &

如下图所示。
在这里插入图片描述
1.22然后保存并退出 etc/init.d/rcS。然后使用 cd www 命令,进入到前面创建的 www 目录,然后使用 vi index.html命令建立index.html文件,添加如下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>web</title>
<style type="text/css">
<!--
.STYLE1 {font-size: 36px}
body {
 background-color: #996600;
}
-->
</style>
</head>
<body>
<table width="613" height="424" border="0" align="center">
  <tr>
    <td colspan="2" align="center" valign="middle"><h2 class="STYLE1">Welcome to the world of the WEB</h2></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

然后保存并退出 index.html,至此基于boa的web 服务器就搭建完成了,上面创建的index.html是一个简单的网页,用于测试。现在启动开发板(开发板是挂载NFS网络文件系统),开发板起来以后输入 ps命令,可以看到 boa程序在运行,如下图。然后在 pc机器打开浏览器,输入开发板的 IP地址(192.168.0.215),可以看到在开发板上创建的 index.html,如下图所示。
在这里插入图片描述
至此 web 服务器搭建完成了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值