0
点赞
收藏
分享

微信扫一扫

嵌入式Web开发——Boa服务器移植


百度百科上关于 Boa 的说明:

  BOA 服务器是一个小巧高效的 web 服务器,是一个运行于 unix 或 linux 下的,支持 CGI 的、适合于嵌入式系统的单任务的http服务器。
  源代码开放、性能高。由于它是一个单任务的 Web 服务器,只能一次完成用户的请求,而不会 fork 出新的进程来处理并发的链接请求。但是 Boa 支持 Cgi,能够为 Cgi 程序 fork 出一个进程来执行相应的客户请求。

  Boa 是一个单任务的 HTTP Web 服务器,支持认证、CGI 脚本等,功能比较全,性能比较高。它和传统 Web 服务器的主要区别是:它是单进程的,在接到新的 HTTP 请求时并不 fork 出一个新的进程来响应,不能同时处理多个到来的连接,而且不能将自己复制多个副本来处理多连接。它在内部处理所有正在进行的 HTTP 连接请求,只对单独的 CGI 程序、自动文件的产生、自动文件的解压等请求 fork 出新进程。它的优点是代码简单、速度快、适合于嵌入式应用。
  值得一提的是,Boa 是一款完全开放源码的免费软件,用户可以随时从官方网站上获取 Boa 的最新版本并编译运行于不同的操作系统平台。

Boa 移植
(Boa 的版本为 0.94.13)

(1) 从 Boa 的官方网站(​​http://www.boa.org​​)上获取最新版的软件源代码。

(2) 解压下载的源代码压缩包。

(3) 进入解压目录的 src/ 目录下,输入 ./configure 命令,生成 Makefile 文件。

(4) 修改 src/compat.h 文件,将

#define

修改为

#define

(5) 运行 make 命令,即可生成运行于 x86 Linux 平台的 Boa 二进制文件。

(6) 修改 boa.c 文件,注释掉

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

if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}

(7) 修改 Makefile 文件,将

CC=gcc
CPP=gcc -E

改为实际使用的编译工具链,如

CC=arm-linux-gcc
CPP=$(CC) -E

(8) 运行 make clean,再运行 make 命令,即可生成运行于 ARM Linux 平台的 Boa 二进制文件。

Boa 配置
  完成上面步骤后还无法启动 Boa 服务,因为还未对 Boa 进行配置,需要对 boa.conf 文件进行相应的配置才行。


举报

相关推荐

0 条评论