嵌入式WEB服务器之boa部署(一)

1、下载boa源码

可以直接访问官网的连接去下载 。http://www.boa.org/
在这里插入图片描述
官网发布了一个Released Version 0.94.13和一个Development Version 0.94.14rc21。
一般情况下使用发布版本,所以使用boa-0.94.13.tar.gz。
但实际在使用时发现,0.94.13版本是无法直接编译通过的需要修改部分源码,而 0.94.14rc21是可以的。

2、拷贝压缩包到ubuntu本地,并进行解压

				 tar -xvf boa-0.94.13.tar.gz

解压后得到以下文件夹和文件:
boa.conf是boa服务器的配置文件,src目录里是boa服务器的源码。在这里插入图片描述

3、编译生成boa可执行文件

进入src目录:cd src/
执行configure脚本:./configure,生成Makefile文件。
有了Makefile 文件后直接make进行编译

编译过程中产生的错误。
错误1:
在这里插入图片描述
原因:缺少bison或flex库。
解决: 直接安装这两个库:sudo apt-get install bison flex

重新make,产生如下错误。

修该源文件src/compat.h
line120:
在这里插入图片描述

#ifdef HAVE_TM_GMTOFF
//#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
#else
#define TIMEZONE_OFFSET(foo) timezone
#endif

重新make,编译结束后生成了可执行文件boa。查看boa文件大小:
ls -lh boa
-rwxr-xr-x 1 root root 304K 1月 14 11:01 boa

可以通过strip命令较小boa文件大小。
gcc-strip boa

运行boa

./boa执行程序。
执行报错1:Could not chdir to “/etc/boa”: aborting
解决:创建/etc/boa目录
关于该目录的定义在 defines.h中。

执行报错2:Could not open boa.conf for reading.
解决:拷贝boa-0.94.13/boa.conf文件到/etc/boa目录下。

执行报错3:[14/Jan/2021:03:19:55 +0000] log.c:73 - unable to dup2 the error log: Bad file descriptor

解决方案a:在系统中创建log文件夹,文件夹路径和文件参考boa.conf中的设置。
在这里插入图片描述

解决方案b:
找到log.c中此处代码位置,将出错代码注释掉。

if (dup2(error_log, STDERR_FILENO) == -1) {
	DIE("unable to dup2 the error log");
}

推荐方案a解决。

执行报错4:Cannot open /var/log/boa/access_log for logging: logfile open: No such file or directory
解决:
在/var/log/ 下建立boa文件夹,并创建acccess_log文件和error_log文件 或 修改boa.confg中的设置。

重新运行boa,此时boa已经可以启动了。
在这里插入图片描述

ps -ef 查看boa进程号。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值