zoukankan      html  css  js  c++  java
  • 嵌入式Web服务器移植

    嵌入式Web服务器移植


    文章一

    转载自:http://hi.baidu.com/wdr_cloud/item/129f8417e34838ecddeeca57

    仅供个人学习之用,请勿用于他途。


    ***************S3C2410,linux2.6.22.6的内核,交叉编译:arm-softfloat-linux-gnu-gcc(4.3.2)

    1、下载源码   http://ww.boa.org  (boa-0.94.13.tar.gz)

    2、解压源码,进入源码文件夹;cd boa-0.94.13/src    执行./configure   生成Makefile文件;

    3、修改Makefile文件

                

    修改 CC = gcc

    为 CC = arm-softfloat-linux-gnu-gcc

    修改 CPP = gcc - E

    为 CPP = arm-softfloat-linux-gnu-gcc -E

    4、   编译    make

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

    解决方法:

    修改compat.h中的
    #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
    为:
    #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

    修改完之后在make  就ok了  

    5.arm-softfloat-linux-gnu-strip boa;

    Boa的配置

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

    1.    Group nogroup修改成Group 0,由于在/etc/group文件中没有nogroup组,所以设成0

    另外在/etc/passwd中有nobody用户,所以User nobody不用修改。

    2.    ScriptAlias /cgi-bin/  /usr/lib/cgi-bin/ 修改成 ScriptAlias /cgi-bin/  /var/www/cgi-bin/

    其它默认设置即可。

    还需要创建日志文件所在目录/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的执行

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

    在开发板上运行 boa   检查端口是否被打开,要不浏览器无法访问到板子。

    直接在浏览器中输入192.168.10.12/index.html   静态HTML调试成功。


    CGI脚本测试

    编写helloworld.c 程序

    #include <stdio.h>

    int main(void)

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

     交叉编译生成helloworld.cgi

    #arm-softfloat-linux-gnu-gcc -o helloworld.cgi helloworld.c


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

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

    在页面上出现

    Hello,world.




    文章二:

    转载自:http://blog.sina.com.cn/s/blog_7bd0d88201011euz.html

    仅供个人学习之用,请勿挪用他途。


    《嵌入式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用户,所以Usernobody不用修改。

    2、ScriptAlias的修改

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

    3、ServerName的设置

    修改 ServerNamewww.your.org.here
    为 ServerName www.your.org.here

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

    第三部: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>CGIOutput</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 -ohelloworld.cgi helloworld.c

    2、浏览

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


  • 相关阅读:
    bits,Bytes,KB,MB,GB和TB之间的换算关系
    idea快捷键
    拦截器Interceptor和过滤器Filter的区别
    JSTL标签
    EL 表达式
    El 表达式和 Jstl 标签库
    JavaWeb servlet,乱码的原因和解决
    java类从加载、连接到初始化过程
    js中获取监听键盘事件
    ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)
  • 原文地址:https://www.cnblogs.com/techstone/p/3321357.html
Copyright © 2011-2022 走看看