环境是CentOS7,但方法不局限于此版系统,应该是通用的。
具体步骤如下:
- 下载boa源码
下载地址: Boa Webserver
下载后,进入压缩包所在目录,进行解压:
bash
tar xzf boa-0.94.13.tar.gz
- 安装需要的工具bison,flex
bash
sudo yum install bison flex
#ubuntu: sudo apt-get install bison flex
#注意:不安装或者安装不成功都会导致后面make时出现错误127
- 生成Makefile文件
bash
cd boa-0.94.13/src
./configure
- 配置boa,准备工作
1)Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。
将解压出来的boa.conf复制到/etc/boa目录:
bash
sudo mkdir /etc/boa
sudo cp /home/web/boa-0.94.13/boa.conf /etc/boa/
2)修改配置文件/etc/boa/boa.conf(重要的一步,否则后续会有很多报错)
sudo gedit /etc/boa/boa.conf 管理员身份打开boa.conf,其他身份无法修改和保存boa.conf
注意:修改boa.conf等文件需要管理员身份,获取管理员身份方法有多种,推荐直接sudo gedit来打开。
(1)Group的修改
修改 "Group nogroup" 为 "Group 0"
(2)user的修改
修改 "User nobody" 为 "User 0"
(3)修改ScriptAlias的路径
修改"ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/" 为 "ScriptAlias /cgi-bin/ /var/www/cgi-bin/"
(4)去掉ServerName前面的注释符号#
修改"#ServerName www.your.org.here" 为 "ServerName www.your.org.here"
否则会出现错误: "gethostbyname::No such file or directory"
(5)注释掉AccessLog命令
修改"AccessLog /var/log/boa/access_log" 为 "# AccessLog /var/log/boa/access_log"
否则会出现错误提示: "Cannot open ... for logging:logfile open:Is a directory"
3)修改 boa-0.94-13/src/compat.h(重要的一步,否则后续会有很多报错)
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
否则会出现错误:util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 错误 1
4) 修改 boa-0.94-13/src/log.c(重要的一步,否则后续会有很多报错)
将以下条件注释掉:
#if 0
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
#endif
否则会出现错误:log.c:73 unable to dup2 the error log:bad file descriptor
5) 修改boa-0.94-13/src/boa.c(重要的一步,否则后续会有很多报错)
#if 0
if (setuid(0) != -1) {
DIE("icky Linux kernel bug!");
}
#endif
否则可能会出现错误:boa.c:228 、 boa.c:226
6)创建web 服务器的文件根目录
bash
sudo mkdir /var/www
sudo chmod -R 777 /var/www
#注意:boa.conf中指定的html文件存在位置
7)创建log目录
bash
sudo mkdir /var/log/boa
sudo touch /var/log/boa/error_log
sudo touch /var/log/boa/access_log
sudo chmod -R 777 /var/log/boa
sudo chmod 777 /var/log/boa/error_log
sudo chmod 777 /var/log/boa/access_log
8)创建CGI目录(cgi文件存放目录)
bash
sudo mkdir /var/www/cgi-bin
sudo chmod -R 777 /var/www/cgi-bin
- 编译
bash
cd /home.boa-0.94.13/src/
make
- 运行boa
执行boa-0.94.13/src/boa可执行文件
运行出现以下问题:
解决方法: 运行BOA报错 Could not open mime.types file, "/etc/mime.types", for reading-CSDN博客
- 测试
1)CGI程序测试
将 boa-0.94.13/examples目录下的 cgi-test.cgi 拷贝到 var/www/cgi-bin/
浏览器访问:http://127.0.0.1/cgi-bin/cgi-test.cgi
2)html网页测试
将html文件拷贝至/var/www/下
浏览器访问:http://127.0.0.1/html文件