本文主要针对Centos7移植boa服务器的流程和问题进行描述和解决。
1、通过网上查找boa源码并下载,然后本地进行解压。(本人用的是boa-0.94.13.tar.gz)
$ tar -xvf boa-0.94.13.tar.gz
2、安装词法解释器
1)yum install bison
2)yum install flex
3、生成makefile文件,后续直接make编译
$ cd boa-0.94.13/src/ //进入boa源代码目录
$ ./configure //执行./configure会生成Makefile文件
4、编译boa源码
$ cd boa-0.94.13/src/ //进入boa源代码目录
$ make //make编译
5、根据报错进行boa源码修改(我遇到的几个问题)
1)修改compat.h,第120行
修改 #define TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
为 #defineTIMEZONE_OFFSET(foo)(foo)->tm_gmtoff
2)修改boa.c ,第225行开始注释掉以下几行:
if (setuid(0) != -1) {
DIE(“icky Linux kernel bug!”);
}
3)修改log.c ,第71行开始注释掉以下几行:
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
6、编译程序
$ make
此时boa源代码目录boa-0.94.13/src/下面会多出两个可执行的二进制文件boa和boa_indexer.
7、配置boa.conf文件,打开boa.conf进行以下修改:(可以自行查阅具体的内容解释)
将48行,User nobody 修改为User 0,Group nobody修改为Group 0。
#DirectoryMaker /usr/lib/boa/boa_indexer #注释掉,提高访问速度
#ErrorLog /var/log/boa/error_log #注释掉,关闭错误日志
#AccessLog /var/log/boa/access_log #注释掉,关闭访问日
DocumentRoot /www #文档主目录,存放index.html等文档
ScriptAlias /cgi-bin/ /www/cgi-bin/ #存放cgi文件
a)【可选配置】servername www.your.org.here的注解去掉。
b)【可选配置】若开启日志功能(boa.conf的缺省配置),建立日志目录。
8、开始运行Boa服务器
前置条件:
1)、根目录下必须有/www文件夹,必须放在根目录(自测时,修改路径有问题);
2)、boa.conf默认是放在根目录/etc/boa文件夹下,boa.conf文件内有路径指定;
3)、/www文件夹下,存放index.html和cgi-bin文件夹(可以参考相关文章的index.html编写测试);
4)、运行程序./boa;
5)、浏览器访问网页127.0.0.1,就能看到index网页的内容。