嵌入式webserverboa在S3C2410上的编译移植步骤

 开发平台:ubuntu8.04

目标平台:S3c2410

开发工具:     arm   交叉工具链版本3.4.5

boa版本:boa-0.94.13.tar.gz

一、下载源码,生成makefile

1.下载源码:

2.拷贝到/opt目录下

3.解压tarzxvfboa-0.94.13.tar.tar

4.cdboa-0.94.13/src

5../configure

 嵌入式webserverboa在S3C2410上的编译移植步骤_设计制作_电源/新能源

二、编译前,修改文件

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

CC=arm-softfloat-     linux   -gnu-gcc

CPP=arm-softfloat-linux-gnu-g++

保存退出。

2.修改编译方式:

LDFLAGS=-g–sta  TI c

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

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

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

#defineSERVER_ROOT"/etc/boa"

4修改boa-0.94/src/u         TI   l.c文件

修改char*get_commonlog_  TI me(void)函数。

 TI me_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("ickyLinuxkernelbug!");

}*/

/*if(passwdbuf==NULL){

DIE("getpwuid");

}*/

8:config.c

/*if(!server_name){

structhos     te   nt*he;

chartemp_name[100];

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

perror("gethostname:");

exit(1);

}

he=gethostbyname(temp_name);

if(he==NULL){

perror("gethostbyname:");

exit(1);

}

server_name=strdup(he->h_name);

if(server_name==NULL){

perror("strdup:");

exit(1);

}

}*/

9./src/log.c中的修改:注释掉:

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

DIE("unabletodup2theerrorlog");

}*/

10.在boa.conf中的修改:

(1)ServerName的设置

修改#ServerName

为ServerName

注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::Nosuchfileordirectory”,所以必须打开。其它默认设置即可。

注意:以下是为改为下面这样的:

(2)User与Group的修改:

User0

Group0

(3)ErrorLog/var/log/boa/error_log

AccessLog/var/log/boa/access_log

(4)DocumentRoot/var/www

(5)DirectoryIndexindex.html

(6)KeepAliveMax1000

KeepAliveTimeout10

(7)     Mi   meTypes/etc/mime.types

(8)ScriptAlias/cgi-bin//var/www/cgi-bin/

三、编译并移植

1.编译boa

#make

#arm-softfloat-linux-gnu-stripboa

2,将mime.types文件复制目标板根文件系统/etc目录下

3。在开发板上

cd/etc

mkdirboa

把开发机上的(配置文件)boa.conf(编译结果)boadefines.h这3个文件拷贝到开发板/etc/boa/下

4.在开发板上

cd/var

mkdirwww(这个文件夹内可以放网页)

mkdir/var/log/boa

四、编写CGI脚本     测试  

1、编写Helloworld.c程序

intmain(void)

{

printf("Content-type:text/htmlnn");//这句一定要加上

printf("Hello,world.");

exit(0);

}

arm-softfloat-linux-gnu-gcc-ohelloworldhelloworld.c

2、浏览

将helloworld拷贝至/var/www/cgi-bin/下,浏览器输入开发板IP地址即可看到web信息。

62
99
0
5

相关资讯

  1. 1、PPS网络电视经常缓冲如何解决?PPS网络电视经常缓冲的解决教程1046
  2. 2、好看视频的下载文件找不到怎么办好看视频找到下载文件的具体教程2782
  3. 3、Win10系统下onenote如何同步?1408
  4. 4、Win10专业版必须禁用的服务有哪些?1749
  5. 5、Win10桌面管理器占用内存过高怎么办?桌面管理器占用内存过高解决方法247
  6. 6、怎么使用福昕PDF编辑器给PDF文件旋转视图?4586
  7. 7、酷音铃声怎么设置来电秀?酷音铃声置来电秀的方法3278
  8. 8、Win10专业版系统怎么隐藏回收站?3936
  9. 9、爱奇艺如何收藏视频?视频收藏方法简述3369
  10. 10、怎么解决百度网盘网络异常的问题?3963
全部评论(0)
我也有话说
0
收藏
点赞
顶部