Boa Web服务器在PC和S3C2440开发板上移植

发布者:WanderlustHeart最新更新时间:2024-07-22 来源: cnblogs关键字:Boa  Web服务器  PC  S3C2440  移植 手机看文章 扫描二维码
随时随地手机看文章

  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服务器在PC和S3C2440开发板上移植

上一篇:s3c2440 nandflash 初始化
下一篇:S3C2440 裸机程序之音频

推荐阅读最新更新时间:2026-03-25 11:06

Boa服务器在ARM+Linux上的移植
一、Boa服务器介绍 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。 作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。 二、移植环境 (1) 源码的获取 Boa的源码可以从网站www.boa.org获取 (2) Boa移植平台 n PC机(RedHat9.0操作系统) n 交叉编译工具,arm-linux,最好是2.9的 三、移植步骤 (1) 解压源码$ tar xzvf boa-0.94-14.tar.gz (2) $cd boa-0.
[单片机]
嵌入式Web服务器移植与测试
随着计算机技术和现代通信技术的不断发展,设备即网络是后PC时代对嵌入式系统的客观要求,因此也需要建立嵌入式设备的网络Web服务器。嵌入式Web能够实现在各种工业监控、检测、以及自动化控制等领域的远程控制,世界上无论任何地方,只要是存在Internet网络,都能够通过Web服务对各种现场进行管理,甚至可以在有网络的手持设备上对现场进行控制管理操作。传统的Web服务器大多在大型机,PC机上实现,其成本比较高,而且不方便工业现场的应用实施,嵌入式系统以及嵌入式小型Web服务器的出现使得Web服务运行在资源、性能有限的嵌入式设备上提供了条件。本文主要介绍嵌入式Web服务器BOA在arm9嵌入式系统设备板上的移植,并对移植后的BOA服务器进行
[单片机]
嵌入式<font color='red'>Web服务器</font><font color='red'>移植</font>与测试
郭天祥-S3C2440开发板Linux2.6.31移植教程
本人使用的开发板是广州天嵌的TQ2440开发板 最近使用了郭天祥的教程学习S3C2440嵌入式linux2.6.31系统移植,移植yaffs2文件系统成功后,发现开发板移植的系统的ping命令无法ping通电脑。后面通过烧录开发板自带的linux镜像文件和yaffs2文件系统,对比之后。发现本人的笔记本(联想G40系列),如果只接通过本地网卡与开发板直连,无法ping通,但是使用自己的台式电脑,可以使用网线直连开发板ping通,确认了问题的原因是: 1.笔记本在网线直连开发板的情况下,无法ping通开发板。 2.个人移植的linux 2.6.31操作系统驱动存在问题。 第一个问题很好解决,如果要继续
[单片机]
u-boot-1.3.4移植s3c2440之nand驱动
折腾了两个晚上,终于把s3c2440板子上的nand驱动搞定了,把需要注意的地方记下来,供大家参考。 这次使用的u-boot版本为1.3.4,现在还没有加上从nand启动的部分,现在使用从sdram启动的方式,修改好nand驱动后,现在环境变量可以存放到nand中,具体要修改的地方如下: 1、板子配置头文件 在板子的配置头文件中要加入如下代码: ....................................................... #define CONFIG_CMD_NAND #define CFG_ENV_IS_IN_NAND 1 #define CFG_ENV_SIZE 0x10000
[单片机]
移植u-boot-2010.12.tar.bz2版本到s3c2440过程
1,tar解压 2,修改根目录下的makefile文件中的交叉编译为 arm-linux- 3,make distclean 4,make trab_bigflash_congfig 5, 修改/uboot/include/config.h,添加CONFIG_SYS_SDRAM_BASE=0等两个宏,不添加make会报错,所以根据错误添加一下 6,make all 7,make all会出错,提示找不到lstubs这个库,修改/u-boot/examples/standalone/makefile,将libstubs.o修改为libstubs.a,如果提示找不到其他库的话,按照同样的方法修改makefile.
[单片机]
S3C2440之NAND FLASH移植到S3C2410的驱动分析
S3C2440A的NAND FLASH驱动移植到S3C2410还是有些不一样的,最主要的这两个IC的NAND FLASH的寄存器有些不一样,请看下面的两者之间不同: // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you licensed this SOFTWARE PRODUC
[单片机]
u-boot-2011.06在基于s3c2440开发板的移植之nandflash启动
由于价格的原因,相对于norflash,nandflash对于存储大容量的数据来说更具有优势。但是程序不能直接在nandflash上运行,因此s3c2440提供了一个机制,即系统会自动把nandflash中前4k的内容复制到名为“Steppingstone”的内部SRAM中,利用这段SRAM,程序员需要再把程序复制到其余的SRAM中,然后运行刚刚复制到SRAM中的程序。 本文就介绍如何使u-boot在nandflash中启动,该工作原理类似于u-boot-2011.06自带的smdk6400开发板的nandflash启动过程,即最终生成的烧写文件为u-boot-nand.bin,它是由两个文件组成的: nand_spl/u-boo
[单片机]
u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
uboot最主要的功能就是能够引导内核启动。本文就介绍如何实现该功能,并组成一个最简单的系统,这不仅要移植uboot,还要移植linux内核及创建一个根文件系统。 首先我们对nandflash进行分区,规划好每个文件存放在nandflash的位置。下面是nandflash的分区: 第0分区:0x000000000000-0x000000080000为uboot区 第1分区:0x000000080000-0x000000100000为参数区 第2分区:0x000000200000-0x000000600000为linux内核区 第3分区:0x000000800000-0x000001000000为根文件系统区 规划好分区后,我们就可
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved