版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居间人与居间人之间的协议书(2篇)
- 工厂设备抗震支架保护方案
- D打印技术合作合同
- 污水处理厂环境应急演练方案
- 桂林2024年统编版小学英语第4单元测验卷
- 湿地公园雨水收集系统建设方案
- 医院周边环境保洁服务方案
- 托儿所食品安全应急预案
- 商业空间窗帘供应合同
- 儿童电子屏幕使用规范方案
- 电厂打磨施工方案
- 社区生鲜店的O2O模式-社区O2O电商模式研究-生鲜店为例课件
- 2023-2024学年常州溧阳市九年级上学期期中考试数学试卷(含解析)
- 第4章无人机-气象
- 冀教版四年级英语上册《Goldilocks and the Three Bears》教学课件公开课
- 《老年人康乐活动》课件
- 部编版八年级历史上册《戊戌变法》评课稿
- 公交车站突发事件处置方案
- 中石化定额章节官方解析交流148篇答疑
- 肿瘤科疑难病例讨论发热
- 人民医院胸外科临床技术操作规范2023版
评论
0/150
提交评论