原创 嵌入式Web服务器移植

2009-5-21 08:38 1604 1 1 分类: MCU/ 嵌入式


嵌入式Web服务器移植


    《嵌入式Linux系统开发详解——基于EP93XX系列ARM》一书和boa自带的文档等对该内容有比较详细的介绍,但在实验过程中,仍可能会出现一些问题。下面是我在WNC201系统(AT91RM9200)上的移植过程,欢迎讨论。

第一步 Boa程序的移植


1、下载Boa源码


    下载地址: http://www.boa.org/, 或者http://sourceforge.net

    最新发行版本: 0.94.13

    下载 boa-0.94.13.tar.gz,注意:从boa上下载的是boa-0.94.13.tar.tar,解压方式一样

    解压:# tar xzf boa-0.94.13.tar.gz

2、生成Makefile文件


    直接运行src/configure文件

3、修改Makefile文件


    a、

修改 CC = gcc


CC = /usr/local/arm/2.95.3/bin/arm-linux-gcc


    b、

修改 CPP = gcc - E


CPP = /usr/local/arm/2.95.3/bin/arm-linux-gcc -E


4、编译


    # make

    # /usr/local/arm/2.95.3/bin/arm-linux-strip boa

第二步 Boa的配置


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

1、Group的修改


   

修改 Group nogroup


Group 0


    由于在/etc/group文件中没有nogroup组,所以设成0。另外在/etc/passwd中有nobody用户,所以User nobody不用修改。


2、ScriptAlias的修改


   

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


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


3、ServerName的设置




修改 ServerName www.your.org.here


ServerName www.your.org.here


    注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname::No such file or directory”,所以必须打开。其它默认设置即可。


第三部: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目录下直接复制即可。


    实际运行时,可以将index.html文件、img目录和mime.types文件放到CF卡目录下,建立目录后,拷贝至相应目录。


    制作run.sh



mkdir /etc/boa
cp /cf/boa/boa.conf /etc/boa/
mkdir /var/log
mkdir /var/log/boa
mkdir /var/www
cp /cf/boa/index.html /var/www/
cp -r /cf/boa/img /var/www/
mkdir /var/www/cgi-bin
cp /cf/boa/mime.types /etc/
cp /cf/boa/boa /

./boa &


    直接在浏览器中输入http://192.168.1.107,出现Red Hat的欢迎网页。静态HTML调试成功。


第四步 CGI脚本测试


1、编写Helloworld.c程序



#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


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


2、浏览


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


    http://192.168.1.107/cgi-bin/helloworld.cgi

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /4 下一条