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

网友投稿 748 2022-09-07

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

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

BOA 服务器是一个小巧高效的 web 服务器,是一个运行于 unix 或 linux 下的,支持 CGI 的、适合于嵌入式系统的单任务的   源代码开放、性能高。由于它是一个单任务的 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 的官方网站(​​解压下载的源代码压缩包。

(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=gccCPP=gcc -E

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

CC=arm-linux-gccCPP=$(CC) -E

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Backup/Restore Redis and ElasticSearch
下一篇:从19岁到36岁,C罗争冠决心从未改变!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~