ARM-Linux环境下Boa的移植

     虽然与Apache等Linux下的服务器相比,Boa只支持单任务和静态网页,但是由于其占用资源很小,所以特别适合与嵌入式环境中。下面将就Boa在ARM-Linux环境下的移植进行说明。

     1.下载Boa源代码:

     下载地址:www.boa.org,最新版本是boa-0.94.13.tar

      解压:tar xzf boa-0.94.13.tar

     2.交叉编译源代码:

     直接进入/src目录下运行/configure

     修改Makefile文件:修改CC=gcc为CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc (此处应根据自己实际情况替换为交叉编译器所在路径)

                                 修改CPP = gcc -E 为CPP= =/usr/local/arm/3.4.1/bin/arm-linux-gcc -E

    修改Boa.c文件:

                                 将下面这几行注视掉

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

                            

    编译:make

    程序瘦身:=/usr/local/arm/3.4.1/bin/arm-linux-strip boa,这时boa的大小减小至瘦身前的一半

    3.配置Boa

    修改boa.conf:

                       修改 Group nogroup 为Group 0

                       修改 User nobody为 User 0

                       修改 Scriptalias /cgi-bin/ /usr/lib/cgi-bin/为Scriptalias /cgi-bin/  /var/www/cgi-bin/

                       取消注释,打开ServerName www.your.org.here

    3.开发板上的设置:

     将编译生成的boa,boa.conf,mime.types拷贝至开发板

     mkdir文件夹:/etc/boa ,/var/log,/var/log/boa,/var/www,/var/www/cgi-bin

    复制文件:boa.conf到 /etc/conf  mime.types到/etc/ 

   4.编写测试CGI程序;

   

#include <stdio.h>

int main(void)
{
        printf("Content-type: text/html/n/n");
        printf("<html>/n");
        printf("<head><title>CGI Output</title></head>/n");
        printf("<body>/n");
        printf("<h1>Hello,world.</h1>/n");
        printf("<body>/n");
        printf("</html>/n");
        exit(0);
}

      交叉编译生成helloworld.cgi:arm-linux-gcc -o hello.cgi hello.c

      讲程序拷贝到开发板/var/www/cgi-bin下

      在PC浏览器中输入开发板IP/cgi-bin/hello.cgi出现helloworld移植结束。

 

                

你可能感兴趣的:(ARM-Linux环境下Boa的移植)