Linux系统Boa源码分析,Linux下BOA服务器的搭建和配置

本文详细介绍如何从零开始搭建Boa轻量级Web服务器,包括下载源码、配置环境、编译安装、配置文件修改及常见错误解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体操作步骤:

1.下载Boa源码

最新发行版本: 0.94.13

下载 boa-0.94.13.tar.gz

解压方法:

进入boa-0.94.13.tar.gz存放目录

tar xzf boa-0.94.13.tar.gz 解压

2.安装需要的工具bison,flex

sudo apt-get install bison flex

不安装或者安装不成功都会导致后面make时出现错误127

注意:如果install报错,那你需要先更新系统(sudo apt-get update),更新根据网速可能花费几十分钟甚至小时,耐心等待。

待更新完成后,继续sudo apt-get install bison flex

3.生成Makefile文件

cd boa-0.94.13/src 切换当前目录

./configure 运行

4.1准备工作

4.1 Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。

sudo mkdir /etc/boa 新建目录

复制文件boa.conf到/etc/boa目录

4.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前面的注释符号#

否则会出现错误: "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"

4.3 修改 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.4 修改 src/log.c

if (dup2(error_log, STDERR_FILENO) == -1) {

DIE("unable to dup2 the error log");

}

修改为

/*if (dup2(error_log, STDERR_FILENO) == -1) {

DIE("unable to dup2 the error log");

}*/

否则会出现错误:log.c:73 unable to dup2 the error log:bad file descriptor

4.5 修改src/boa.c

if (setuid(0) != -1) {

DIE(”icky Linux kernel bug!”);

}

修改为

#if 0

if (setuid(0) != -1) {

DIE(”icky Linux kernel bug!”);

}

#endif

否则可能会出现错误:boa.c:228 、 boa.c:226

4.6 创建web服务器的文件根目录

cd ~ 返回根目录

sudo mkdir /var/www 创建目录

sudo chmod -R 777 /var/www 修改权限

4.7 创建log目录

cd ~ 返回根目录

sudo mkdir /var/log/boa

sudo mkdir /var/log/boa/error_log

sudo mkdir /var/log/boa/access_log

sudo chmod -R 777 /var/log/boa 修改权限

sudo chmod -R 777 /var/log/boa/error_log 修改权限

sudo chmod -R 777 /var/log/boa/access_log 修改权限

4.8 创建CGI目录

sudo mkdir /var/www/cgi-bin 创建cgi文件存放目录

sudo chmod -R 777 /var/www/cgi-bin 修改权限

5.在src目录下编译

cd ~ 返回根目录

cd Destop/boa-0.94.13/src 切换目录

make 编译

6.在src目录下运行boa

sudo ./boa 必须在src目录下运行

7.查看进程

ps -e 看boa是否已经运行

8.网页测试

注意:默认端口是80,如果你的80端口已经被占用,可以修改/etc/boa/boa.conf,变更Port 80。这里对应修改:http://127.0.0.1:端口号

9.CGI程序测试

将Destop/boa-0.94.13/examples目录下的cgi-test.cgi拷贝到var/www/cgi-bin

(现在你可以删掉boa-0.94.13.tar.gz,然后把解压后的目录boa-0.94.13放到你自己想放的地方,但是每次运行boa自己要容易找到位置。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值