arm开发板6410移植boa服务器

arm/6410移植boa服务器

一、boa下载和安装:
      1、修改编译安装文件:

            1)在www.boa.org下载boa-0.94.13.tar.gz 并解压

            2)在src目录下运行./configure生成Makefile

            3)生成Makefile文件,修改

                 CC = arm-linux-gcc

                CPP = arm-linux-gccE

     2、修改boa.c源文件

          将boa.c文件中以下几行判断注释掉。

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

         改为

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

    3、修改文件compat.h

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

    4、执行#make 命令

          #make

         #arm-linux-strip boa 

二、配置boa.conf

在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改

     1、Group的修改

             修改 Group nogroup

             为 Group 0

             修改 User nobody

             为 User 0

     2、ScriptAlias的修改

           修改 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

           为 ScriptAlias /cgi-bin/ /var/www/cgi-bin/

      3、ServerName的设置

          修改 ServerName www.your.org.here

          为 ServerName  yourname

      注意:该项默认为未打开,执行Boa会异常退出,所以必须打开,把前边#号去掉,其它默认设置即可。

     在boa.conf的控制文件中可以设置 ErrorLog 为 /etc/console这样错误信息,就可以马上输出到控制台上了,其实我移植的时候,这些都是默认的。若在移植的过程中出现:

     boa.c:266.icky Linux kernel bug!:No such file。

解决该问题的方法是将boa.c文件中以下几行判断去掉即可。

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

               DIE("icky Linux kernel bug!");

         }

 

常见错误:

      1>.错误:make: yacc: Command not found

                解决办法:apt-get install -y byacc

                错误:make: lex: Command not found

                解决办法:apt-get install -y flex

     2>. 错误1: gethostbyname:: No such file or directory

               解决办法修改boa.conf 去掉 ServerName www.your.org.here 前的注释符号(#)

     3>. 错误1: util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o]

               解决办法修改 src/compat.h

       找到

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

       修改成

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

     4>. 错误2: boa.c:211 - getpwuid: No such file or directory

     解决办法修改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

     5>. 错误3: boa.c:228 - icky Linux kernel No such file or directory

     解决办法修改src/boa.c

      注释掉下面语句:

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

      DIE(icky Linux kernel bug!);

      }

      即修改为:

      #if 0

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

       DIE(icky Linux kernel bug!);

       }

      #endif

     

第三部:Boa的执行

成功配置以后,还需要创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,将静态网页存入该目录下(可以将主机 /usr/share/doc/HTML/目录下的index.html文件和img目录复制到/var/www目录下),创建CGI脚本所在录/var /www/cgi-bin,将cgi的脚本存放在该目录下。另外还要将mime.types文件复制/etc目录下,通常可以从linux主机的/etc 目录下直接复制即可.

./boa &

第四步 CGI脚本测试

1、编写Helloworld.c程序

  1 #include <stdlib.h>

  2 #include <stdio.h>

  3

  4 void main() {

  5     printf("Content-type: text/html\n\n") ;

  6     printf("\n") ;

  7     printf("CGI Output\n") ;

  8     printf("\n") ;

  9     printf("Hello, world.\n") ;

 10     printf("\n") ;

 11     printf("\n") ;

 12     exit(0) ;

 13 }

        交叉编译生成helloworld.cgi

       # /usr/local/arm/2.95.3/bin/arm-linux-gcc -o helloworld.cgi helloworld.c

    2、浏览

            将helloworld.cgi拷贝至/var/www/cgi-bin/下,浏览器输入

            ip/cgi-bin/helloworld.cgi

            这样就OK了。

6410linux3.0.1下 开机自启动:

        vi /etc/init.d/rcS

        末尾添加:

               #/sbin/boa

                /etc/boa/boa

               cd /var/

               mkdir -m 777 www

               mkdir -m 777 www/cgi-bin

               cp /sdcard/helloworld.cgi www/cgi-bin/

       浏览器中192.168.1.119/cgi-bin/helloworld.cgi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值