BOA在LINUX下搭建

本文详细介绍了如何在Linux环境中搭建BOA服务器。首先从资源站下载BOA源码包并导入,然后解压并修改Makefile以适应本地或交叉编译。接着安装bison和flex,解决日志文件问题。通过注释 boa.conf 中的错误日志配置,并执行 ./boa 启动服务器。最后,访问Ubuntu的IP地址即可查看网页。

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

第一步:下载BOA源码包  本人资源站里面也有

将 BOA源码包 导入到 linux 环境中,解压文件 BOA 文件 。

第二步:修改Makefile

进入解压出来的 BOA 文件中 ,进入 src 目录下 ,运行 configure 生成 makefile 文件
打开 makefile 文件, 查看 makefile 文件里配置 ,如果是本地配置不需要 ,如果交叉编译把 所有gcc用你安装的编译器替换

第三步:  安装apt-get install bison flex 

今天,看了 boa 服务器的一些操作,想在 ubuntu 下实现一个小的服务器,这里先介绍一下 boa 服务器, boa 服务器是一个小巧高效的 web
服务器,是一个运行于 unix linux 下的,支持 CGI 的、适合于嵌入式系统的单任务的 http 服务器,源代码开放、性能高。因为他的源码
开放,谁都可以从他的官网下载(
http://www.boa.org/),进行开发和学习。
boa Web 服务器非常小巧,其源码包只有大约 119KB 左右。作为一种单任务 Web 服务器,Boa 只能依次完成用户的请求,而不会 fork
出新的进程来处理并发连接请求。但 boa 支持 CGI,能够为 CGI 程序fork 出一个进程来执行。 Boa 的设计目标是速度和安全


我现在是实现在 ubuntu 上的 boa 服务(至于如何移植到开发板,我会在以后做)
按照下述步骤来:
1.下载源码包,官网在上面已经列出
输入命令:
tar zxvf boa-0.94.13
2.进入 boa-0.94.13 目录下的 src/目录,
我们知道一个源程序要变成一个可执行文件,要经过 词法分析
-->语法分析 --> 语义分析 --> 中间代码生成 --> 对中间代码优化-->生成目标文件,编译一个 linux 下的 c 系统,也是这样的,包含词法和语法分析模块,不过 Linux 上用的是 bison flexyacc 是一个文法分析器的生成器,bison 即是 yacc GNU 版本Lex YACC 是用于构造词法分析机和语法解释器的工具,利用 Lex YACC 你可以轻松的构造一个语法解释器。所以我们要先安装它们,输入命令:sudo apt-get install bison flex你会看到一个.configure 文件
输入命令
: sudo ./configure (如果不能执行,先修改它的权限,输入:
chmod 777 .configuer)它会生成 Makefile 文件
3.然后输入:sudo make
好了,这里出现错误:
util.c: 在函数‘get_commonlog_time’:
util.c:100:1:
错误: 毗连“t”“->”不能给出一个有效的预处理标识符
make: *** [util.o] 错误 1
现在我们修改 src 目录下的 compat.h
找到:
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成为:
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
再执行 :make,会在 src 目录下生成一个 boa 文件,
4.按需求修改主目录下的 boa.conf 文件,我没有改动,这是默认配置:
User nobody
Group nogroup
ErrorLog /var/log/boa/error_log
AccessLog /var/log/boa/access_log
DocumentRoot /var/www --------
这个是 web 服务器启动/var/www 你的网页目录就是 www
UserDir public_html
DirectoryIndex index.html --------
服务器启动的时候要有一个主目录的索引文件,也就是默认首页,就是 index.html
修改完成后,把它拷到/etc/boa 目录下,如果没有这个目录,自己手动创建 : sudo mkdir /etc/boa
5.
src 目录下
输入
./boa 出现:
[31/Jan/2013:10:42:55 +0000] log.c:73 - unable to dup2 the error log:Bad file descriptor 这样的错误。
我们要改动
log.c 文件
注释掉:
if(dup2(error_log, STDERR_FILENO) == -1)
{
DIE("unable to dup2 the error log");
}
然后:
make clean
make
6.
然后再在 src 目录下 执行: ./boa 若出现:Cannot open/var/log/boa/access_log for logging: logfile open: No such file ordirectory

或者是其他的 Cannot open /var/log/boa/error_log for
logging: logfile open: No such file or directory
哪个出现,你就在 boa.conf 里把它给注释掉(不要忘了/etc/boa/目录
下的
boa.conf),即 改成:
#AccessLog /var/log/boa/access_log
然后再./boa 此时 boa 服务器就已经启动,打开 ubuntu 浏览器,输入
ubuntu ip 地址,就可以看到你放在/var/www 里的网页了。 ok







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值