boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。下面我们讲解以下boa如何在PC机(虚拟机RedHatAS5环境)完成移植修改工作。
一、下载Boa源码
下载地址:
http://www.boa.org/或 http://labs.nevion.com/open-source/ 目前最新发行版本:0.94.13(05年更新版本)
下载 boa-0.94.13.tar.gz(注意:若从boa上下载的是boa-0.94.13.tar.tar,解压方式一样)
解压:tar xzf boa-0.94.13.tar.gz
二、配置编译boa
1、#mv boa-0.94.13 boa_pc
2、#cd boa_pc/src
3、#vim defines.h修改#define SERVER_ROOT '/etc/boa'统一为“/home/boa”。
SERVER_ROOT为boa启动时的配置文件boa.conf存放路径,这里我们统一为/home/boa
4、修改src/boa.c。注释掉语句。
即修改为:
#if 0
if(setuid(0) != -1)
{
DIE(icky linux kernel bug!);
}
#endif
否则运行时会提示:boa.c:226 -icky linux kernel bug!:no suchfile or directory
这里我粗略的理解是因为在root用户获取0(root)权限失败导致不能正常运行!
5、#./configure 生成makefile
6、修改交叉编译器(此处为PC与开发板不同之处)
将:CC= gcc CPP=gcc -E
改为:CC=arm-linux-gcc CPP=arm-linux-gcc -E
7、#make 编译
在当前目录下生成一个boa的可执行程序,./boa运行即可,ps能看到的boa,及说明boa能正常工作了。
注意:
1)、有些编译器会提示以下错误,按照下面方法解决即可:
util.c: 100: 1: pasting't'and'->'does not give a valid preprocessing token make: [util.o] Error1
解决方法:修改compat.h中的:
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
为:
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
2)、yacc命令找不到
执行命令:#sudo apt-get install flex bison
8、#strip boa 优化boa
这里的优化就是去除boa中的调试信息。
三、修改配置文件boa.conf
1.建立/home/boa目录, 并复制boa.conf到/home/boa目录下,并按照以下步骤进行修改。
#mkdir /home/boa
#cp boa.conf /home/boa
2.访问端口号设置
大概25左右:Port 80,可以设定我们访问网页时的端口号默认为80—访问时无需指定
假如改变了此端口号为8080,必须以下列格式访问: http://192.168.1.3:8080
一般在同一个电脑上运行多个boa服务器时可采用此方法我们这里保持默认即可
3.修改访问权限:
修改User nobody 为 user 0
修改Group nogroup 为 group 0
4.设定日志目录:boa日志有两部分,Errorlog 和 AccessLog
默认为/var/log/boa/error_log和/var/log/boa/access_log两个文件。
所以我们统一修改为:
ErrorLog /home/boa/error_log
AccessLog /home/boa/access_log
(注意:这里/home/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.)
5.设置html文件目录:
默认为:DocumentRoot /var/www
我们统一修改为:
DocumentRoot /home/boa/www
6.设置默认首页: DirectoryIndex index.html
这是访问网页时若不指定访问的网页名称,服务器默认返回的网页,我们不做修改
7.设置cgi脚本目录:
将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改为
ScriptAlias /cgi-bin/ /home/boa/cgi-bin
注:boa提供cgi编程接口,使得网页具有交互能力,后面我们在做讲解.
8.测试
在/home/boa/www中随意放一个测试网页(必须包含index.html文件)
我们这里随便建一个文件取名为index.html,里面写一个:hello boa...
执行#./boa
在IE中敲入:http://192.168.1.101/ 即可看到刚才的helloo boa
证明整个boa搭建成功.
上一篇:s3c2440 nandflash 初始化
下一篇:S3C2440 裸机程序之音频
推荐阅读最新更新时间:2024-11-09 21:29
设计资源 培训 开发板 精华推荐
- 具有电源排序功能的 LTC3589IUJ 8 输出稳压器的典型应用电路
- AM30EW-2412SZ 12V 三路输出 DC/DC 转换器的典型应用
- 使用 RP40-11005SFR DC/DC 转换器并根据 EN55022 Class B 进行 EMC 滤波的典型应用(110Vin 双输出)
- FRDM33772BSPIEVB: 具有SPI通信功能的MC33772评估板
- MC34072DR2G 有源高 Q 陷波滤波器运算放大器的典型应用
- ADP130-1.2-EVALZ,基于 ADP130 的评估板、1.2V、350 mA 低 VIN、低静态电流、CMOS 线性稳压器
- 当 LTC2380CDE-16 中启用数字增益压缩时,使用 LT6350 的典型应用被配置为接受 ±10V 输入信号,而同时关闭单个 5.5V 电源
- GLDrone_BLHeli_ESC
- 使用 NXP Semiconductors 的 uA723 的参考设计
- LTC3525-3.3,锂离子至 5V 转换器提供 175mA 的负载电流,纹波小于 0.5%
- Mentor线上研讨会丨FPGA仿真验证平台ModelSim应用进阶
- 看视频瓜分红包:面向高效高密度开关电源的先进功率 MOSFET 技术及应用
- TE户外照明互连解决方案样片来袭 免费申领进行中!
- EEWORLD 示波器问卷有奖大调查
- 有奖直播【如何在几分钟之内完成高效可靠的USB PD电源设计——PI Expert™分步教程】(9:30开始入场)
- ADI有奖下载活动之6 ADI基于IEC61850的智能电子设备(IED)系统解决方案
- 我是大侦探之:寻找遗落的TI电源拼图
- 智能家居当下趋势与挑战 泰科电子助力连接舒适未来
- TI 最新CapTIvate™ 触控微控制器技术直播开始报名喽!报名参与有礼呦!
- 2024 DigiKey 应用说:树莓派 5 在视频直播中的应用