嵌入式网页服务器boa,嵌入式web服务器boa的编译移植

Linux下Boa服务器移植,交叉编译boa并成功移植到FL2440开发板上,并且CGI程序运行正常。

主机环境:redhat9交叉编译器:arm-linux-gcc 3.4.1

BOA版本:0.94.13平台:s3c2440一:下载源码:从官方网站下载源码,并将源码放置在/src目录下。

[root@ EmbedSky ~]# cd /usr/src进入源码目录

[root@ EmbedSky src]# tar zxvf boa-0.94.13.tar.tar解压源码压缩包

[root@ EmbedSky src]# cd boa-0.94.13进入源码解压包

[root@ EmbedSkyboa-0.94.13]# cd src

[root@ EmbedSky src]# ./configure生成makefile

二:编译前修改的文件:

1.修改Makefile文件,找到CC=gcc和CPP=gcc -E,分别将其改为交叉编译器安装的路径:

CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc

CPP=/usr/local/arm/2.95.3/bin/arm-linux-g++

保存退出。

2.修改编译方式:

LDFLAGS = -g –static

注:使用静态编译可以让目标文件自动的包含所需要的

库文件,而动态编译需要手工拷贝库文件。

3.修改/src/defines.h文件:

#define SERVER_ROOT "/etc/boa"

4修改boa-0.94/src/ util.c文件

修改char *get_commonlog_time(void)函数。

time_offset = 0;

5.修改src/config.c:加Current_uid=1

6.修改compat.h:把第120行的

#define

TIMEZONE_OFFSET(foo)foo##->tm_gmtoff

修改为:

#define

TIMEZONE_OFFSET(foo)foo->tm_gmtoff

7.修改/src/boa.c,注释掉下面两行:

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

DIE("icky Linux kernel bug!")} */

/*if (passwdbuf == NULL) {

DIE("getpwuid");}*/

8 gethostbyname:: Resource temporarily unavailable

这个问题我也遇到过,我只是把src文件夹下的config.c里的if(!server_name){..........}(大概在266行到286行之间)注释掉,就能运行在板子上运行boa。

解决:config.c

/*if (!server_name) {

struct hostent *he;

char temp_name[100];

if (gethostname(temp_name, 100) == -1) {

perror("gethostname:");<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值