Boa服务器移植到FS_S5PC100开发板

  Boa服务器移植到FS_S5PC100开发板
 
    下面是我成功移植Boa到FS_S5PC100开发板上的具体操作过程。
 
    一、移植环境
 
    宿主机:Ubuntu Linux 10.10
    目标机:FS_S5PC100
    交叉工具链:arm-none-linux-gnueabi-gcc
    Boa服务器版本:boa-0.94.13

    平台:arm920t   fs2410  linux-2.6.35 

    二、下载Boa源码包,将其进行解压,并进行配置和编译。
 
    1、下载boa-0.94.13.tar.gz,解压:
 
    # tar zxvf boa-0.94.13.tar.gz
 
    2、进入到boa-0.94.13下的src目录:
 
    # cd boa-0.94.13/src
   
    3、修改文件
 
   (1)修改 src/compat.h

    找到:
            #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    修改为:
             #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

   (2)修改src/log.c

    注释掉下面语句:

    if (dup2(error_log, STDERR_FILENO) == -1) {
        DIE("unable to dup2 the error log");
    }

    即修改为:

    /*if (dup2(error_log, STDERR_FILENO) == -1) {
        DIE("unable to dup2 the error log");
    }*/

    否则会出现错误:
 
        log.c:73 unable to dup2 the error log:bad file descriptor
   
    (3)修改src/boa.c
    注释掉下面两句话:

    if (passwdbuf == NULL) {
        DIE(”getpwuid”);
    }
    if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
        DIE(”initgroups”);
    }

    即修改为:

     #if 0
    if (passwdbuf == NULL) {
        DIE(”getpwuid”);
    }
    if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
        DIE(”initgroups”);
    }
    #endif

    否则会出现错误:
 
        boa.c:211 - getpwuid: No such file or directory

    注释掉下面语句:

    if (setuid(0) != -1) {
    DIE(”icky Linux kernel bug!”);
    }

    即修改为:
 
     #if 0
    if (setuid(0) != -1) {
    DIE(”icky Linux kernel bug!”);
    }
    #endif

    否则会出现问题:
    
        boa.c:226 - icky Linux kernel bug!: No such file or directory

 
    3、生成Makefile文件:
   
    # ./configure
 
    4、修改Makefile文件:
   
    # vi Makefile
 
    找到代码31,32行:
        CC = gcc
        CPP = gcc -E
    修改为:
        CC = arm-none-linux-gnueabi-gcc
        CPP = arm-none-linux-gnueabi-gcc -E
 
    5、编译:# make
 
    此时会在src目录下生成boa可执行文件。
   
    用ls命令查看:
 
    # ls -l boa
 
        -rwxr-xr-x 1 root root 199146 06-21 16:59 boa
 
    去掉调试信息,以减少boa体积:
 
    # arm-linux-strip boa
   
    再用ls查看:
 
    # ls -l boa 
 
        -rwxr-xr-x 1 root root 61192 06-21 17:00 boa

    可以看到boa文件大小变小了很多。
  
    6、将boa可执行文件拷贝到制作好的要运行在开发板的根文件系统的usr/bin目录下,并 在etc目录下创建boa目录,拷贝boa-0.94.13目录下的boa.conf到boa下。

 
    四、修改配置文件boa.conf
 
    # vi /etc/boa/boa.conf
 
    1、修改访问权限
 
    代码48行:
        User nobody,修改为:User 0
    代码49行:
        Group nogroup,修改为:Group 0
 
    2、设定日志目录:
 
        ErrorLog   /var/log/boa/error_log 
        AccessLog  /var/log/boa/access_log
 
    3、设置html文件目录:
 
        DocumentRoot  /www
 
    4、设置默认首页:
 
        DirectoryIndex  index.html
 
    5、设置cgi脚本目录: 
 
        ScriptAlias  /cgi-bin/ /www/cgi-bin
 
    五、根据配置文件boa.conf所做的修改创建相应目录(在开发板上执行)
 
    1、建立/var/log/boa目录,以便存放日志文件。
 
    2、建立/www目录,将你的主页index.html拷贝到www目录下。
 
    3、建立/www/cgi-bin目录,用来存放一些用来测试的cgi脚本。
 
    六、 启动boa程序:
 
    # ./boa
    看到如下信息说明Boa服务器已经成功启动起来了:
[root@farsight boa]# ./boa
[root@farsight boa]# [01/Jan/1970:00:22:28 +0000] boa: server version Boa/0.94.13
[01/Jan/1970:00:22:28 +0000] boa: server built Dec  9 2013 at 17:38:19.
[01/Jan/1970:00:22:28 +0000] boa: starting server pid=976, port 80
 
    七、将index.html拷贝到/www目录下,将cgi文件拷贝到/www/cgi-bin/目录下,然后 打开浏览器,输入开发板的IP,就可以访问到存放在www目录下index.html。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值