1、下载boa源码
可以直接访问官网的连接去下载 。http://www.boa.org/
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331170506978.png)
官网发布了一个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服务器的源码。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331171411249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MTA1Mzcx,size_16,color_FFFFFF,t_70)
3、编译生成boa可执行文件
进入src目录:cd src/
执行configure脚本:./configure,生成Makefile文件。
有了Makefile 文件后直接make进行编译
编译过程中产生的错误。
错误1:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331171853163.png)
原因:缺少bison或flex库。
解决: 直接安装这两个库:sudo apt-get install bison flex
重新make,产生如下错误。
修该源文件src/compat.h
line120:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331172502919.png)
#ifdef HAVE_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中的设置。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331174406886.png)
![](https://img-blog.csdnimg.cn/20210331174309234.png)
解决方案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已经可以启动了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331174938619.png)
ps -ef 查看boa进程号。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021033117492173.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)