Boa Web服务器在PC和S3C2440开发板上移植
2013-02-25 11:07
363 查看
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搭建成功.
相关文章推荐
- Boa Web服务器在PC和S3C2440开发板上移植
- boa web服务器在S3C2440开发板上移植
- boa web服务器在PC上移植
- boa web服务器在PC上移植
- S3C4510上嵌入式Web服务器-boa在uclinux下的的移植
- 嵌入式web服务器boa移植全过程(含图解过程)
- 嵌入式WEB服务器BOA的移植方法(三)
- 嵌入式WEB服务器BOA的移植方法
- 嵌入式linux WEB服务器BOA的移植方法 【转自:http://hi.baidu.com/549800946/blog/item/6f9a7b31d07268a05edf0ebf.html】
- 嵌入式web服务器boa移植全过程(含图解过程)
- 嵌入式WEB服务器BOA的移植方法
- 嵌入式WEB服务器BOA的移植方法(二)
- 移植BoaWeb服务器到ARM-Linux&mipsel-linux系统
- 嵌入式web服务器boa的编译移植
- linux boa WEB服务器移植安装与使用
- boa web服务器移植
- [转载] S3C4510上嵌入式Web服务器-boa在uclinux下的的移植
- 嵌入式web服务器boa的编译移植
- ARM-Linux下WEB服务器Boa的移植、配置和运行测试
- 移植Boa Web服务器到ARM-Linux系统