BOA服务器搭建记录

本文详细介绍了如何在嵌入式平台上成功移植并优化boa Web服务器的过程,包括安装交叉编译器、加压软件包、配置Makefile、修改关键文件、编译、设置用户权限、调整日志存放位置、开启ServerName等功能,以及解决移植过程中遇到的错误。通过此指南,读者可以了解boa服务器在嵌入式环境下的部署和优化技巧。

 硬件平台:GEC2440
编译器:arm-linux-gcc-4.1.2
boa版本:boa-0.94.13


1:装好交叉编译器,过程省略,装了几百遍了,熟!
2:加压软件包。加压参数-jxvf,bz2压缩
3:进入boa-0.9**/src目录
4:利用configure 工具配置生成Makefile文件

      ./configure 

5:修改生成的Makefile文件(设置为交叉编译器)

        将CC= gcc和CPP= gcc –E

        修改为:
        CC=arm-linux-gcc

        CPP=arm-linux-gcc –E

6:修改defines.h文件

        将#defineSERVER_ROOT “/etc/boa”修改为#define SERVER_ROOT “/home/jianwang”

 该处定义的是WEB服务器的文件根目录,跟boa.conf文件中的DocumentRoot一致即可。

7:修改compat.h文件

        将#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

        修改成#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

        防止在make时出现如下错误提示:

        util.c:100:1: pasting "t" and "->" does not givea valid preprocessing token

8:修改boa.c文件         

  8.1注释掉下面两句话:

  #if 0

  if (passwdbuf == NULL) {

  DIE(”getpwuid”);

  }

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

  DIE(”initgroups”);

  }

  #endif

  否则会出现错误:   getpwuid: No such file or directory

  80.2注释掉下面语句:

  #if 0

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

  DIE(”icky Linux kernel bug!”);

  }

     #endif

  否则会出现错误:  - ickyLinux kernel bug!: No such file or directory

 

9:编译boa

         Make

         至此,在src目录中将得到交叉编译后的boa程序,可以使用以下方法缩小程序的体积

          arm-linux-strip boa     //去掉相关调试信息,对交叉编译生成的boa程序瘦身

10:修改用户与用户组信息

1)、User 的修改:

   User nobody 修改为User  0

2)、Group的修改:

   Group nogroup修改为Group 0

       在根文件系统中的/etc/passwd文件中没有nobody 用户,所以设成0

       在根文件系统中的/etc/group文件中没有nogroup组,所以设成0
        PS:在板子移植的文件系统没有创建用户管理和组管理这两个文件,所以这里必须改为0 
11:相关日志文件存放位置项,保留将保存日志文件,根据需要可以选择是否注释掉

 

      #ErrorLog /var/log/boa/error_log
      #AccessLog /var/log/boa/access_lo
12: 打开ServerName的设置:

          将#ServerName www.your.org.here前面的#号去掉,该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or d
          retory”,所以必须打开。

          将DirectoryMaker /usr/lib/boa/boa_indexer注释掉。

13:将MimeTypes /etc/mime.types修改为:MimeTypes /home/jianwang/mime.types

14:将DefaultType text/plain修改为:DefaultType text/html。

15:将Alias /doc /usr/doc注释掉。

16:SccriptAlias的设置:

       将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/修改为:

       ScriptAlias /cgi-bin/ /home/jianwang/cgi-bin/

后记:刚开始的时候移植出现No such user :nobody,这自然是boa.conf 配置错误的原因,关键并没有重新该文件系统,烧写文件系统,而 
          是直接在板子上改了配置文件,如此也能修正错误,由此可见,板子上的系统是和PC 上的系统一样可以直接操作系统配置的

 

转载于:https://www.cnblogs.com/zerolu/p/5166211.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值