Boa服务器移植-基础电子_第1页
Boa服务器移植-基础电子_第2页
Boa服务器移植-基础电子_第3页
Boa服务器移植-基础电子_第4页
Boa服务器移植-基础电子_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑Boa服务器移植-基础电子作者:曹忠明,华清远见嵌入式学院讲师。

Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。

下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助。

环境

主机:ubuntu8.10

交叉工具链:gcc-3.4.5-glibc-2.3.6

目标:s3c2410开发板

结合网上一些文档,整理了一个比较完整的文档。

1.Boa源码

地址:/

发行版本:0.94.13

boa-0.94.13.tar.gz

解压:#tarxzfboa-0.94.13.tar.gz

2.安装需要工具bisON,flex

sudoapt-getinstallbisonflex

否则会出现如下错误

make:yacc:命令未找到

make:***[y.tab.c]错误127

make:lex:命令未找到

make:***[lex.yy.c]错误127

3.修改文件

(1)修改src/compat.h

找到

#defineTIMEZONE_OFFSET(foo)foo##-tm_gmtoff

修改成

#defineTIMEZONE_OFFSET(foo)(foo)-tm_gmtoff

否则会出现错误:

util.c:100:1:error:pasting"t"and"-"doesnotgiveavalidpreprocessingtokenmake:***[util.o]错误1

(2)修改src/log.c

解释掉

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

DIE("unabletodup2theerrorlog");

}

为:

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

DIE("unabletodup2theerrorlog");

}*/

否则会出现错误:

log.c:73unabletodup2theerrorlog:badfiledescriptor

(3)修改src/boa.c

解释掉下面两句话:

if(passwdbuf==NULL){

DIE(”getpwuid”);

}

if(initgroups(passwdbuf-pw_name,passwdbuf-pw_gid)==-1){

DIE(”initgroups”);

}

#if0

if(passwdbuf==NULL){

DIE(”getpwuid”);

}

if(initgroups(passwdbuf-pw_name,passwdbuf-pw_gid)==-1){

DIE(”initgroups”);

}

#endif

否则会出现错误:boa.c:211-getpwuid:Nosuchfileordirectory

解释掉下面语句:

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

DIE(”ickyLinuxkernelbug!”);

}

#if0

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

DIE(”ickyLinuxkernelbug!”);

}

#endif

否则会出现问题:boa.c:228-ickyLinuxkernelbug!:Nosuchfileordirectory

4、生成Makefile文件

执行:

#cdboa-0.94.13/src

#./configure

5、修改Makefile

cdsrc

vimMakefile

修改CC=gcc为CC=ARM-softfloat-linux-gnu-gcc

修改CPP=gcc-E为CC=arm-softfloat-linux-gnu-gcc-E

6、编译

make

ls-lboa

-rwxr-xr-x1daviddavid1892232022-05-3113:44boa

然后为生成的二进制文件boa瘦身

arm-softfloat-linux-gnu-stripboa

ls-lboa

-rwxr-xr-x1daviddavid610522022-05-3113:51boa

可以发现boa的大小前后差距很大这为我们节省了很大的空间

7、Boa的配置

这一步的工作也在电脑主机上完成。

在boa-0.94.13目录下已有一个示例boa.conf,可以在其基础上进行修改。如下:

#viboa.conf

(1)Group的修改

修改Groupnogroup

为Group0

(2)user的修改

修改Usernobody

为User0

(3)ScriptAlias的修改

修改ScriptAlias/cgi-bin//usr/lib/cgi-bin/

为ScriptAlias/cgi-bin//www/cgi-bin/

(5)DoucmentRoot的修改

修改DoucmentRoot/var/www

为DoucmentRoot/www

(6)ServerName的设置

修改#ServerName.here

为ServerName.here

否则会出现错误“gethostbyname::Nosuchfileordirectory”

(7)AccessLog修改

修改AccessLog/var/log/boa/access_log

为#AccessLog/var/log/boa/access_log

否则会出现错误提示:“unabletodup2theerrorlog:Badfiledescriptor”

(8)以下配置和boa.conf的配置有关,都是在ARM根文件系统中创建

以下步骤在开发板上进行:

创建目录/etc/boa并且把boa和boa.conf拷贝到这个目录下

mkdir/etc/boa

创建HTML文档的主目录/www

mkdir/www

创建CGI脚本所在录/www/cgi-bin

mkdir/www/cgi-bin

以下步骤在ubuntu下进行:

将boa.conf拷贝到开发板根文件系统的/etc/boa下

#cpboa.conf/source/rootfs/etc/boa

将boa拷贝到开发板根文件系统的/etc/boa下

#cpsrc/boa/source/rootfs/etc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论