贴一篇我的参考文档处理

 嵌入式Linux下的web服务器和动态web网站实现

实验说明:1.Web server可自由选择

2.必须是动态web网站

实验目的:

1 、掌握JXARM9-2410 Linux 下建立Web服务器的方法。

2 、掌握JXARM9-2410 Linux 动态Web技术的实现方法。

3 、知道如何建立boa Web 服务器

4 、掌握JXARM9-2410 中Linux 应用程序的编译和调试方法。

         

实验简介:

boa Web服务器:

boa 是一个单任务http服务器,源代码开发、性能高。

交叉编译版本:4.3.3 ——arm-linux-gcc 4.3.3

boa Web服务器版本:boa-0.94.13.tar.gz

Cgic库文件:cgic205.tar.gz

交叉编译器版本:arm-linux-gcc 4.3.3

操作系统平台:Linux---centOS5.5

开发板平台:       TQ2440

实验步骤:

一、启动Linux虚拟机,用SecureCRT终端仿真程序连接Linux虚拟机

在Linux虚拟机下:

(一)

1.编译boa服务器

1 、[root@localhost /]#mkdir web                           //在根目录下创建web目录

2 、[root@localhost /]# cd /web/

3 、[root@localhost web]# rz

4 、[root@localhost web]# tar –zxvf boa-0.94.13.tar.gz      //将源码解压到/web目录下

5 、[root@localhost web]# cd boa-0.94.13/

6 、[root@localhost boa-0.94.13]# cd src/   

7 、[root@localhost src]# ls

8 、[root@localhost src]# ./configure                         //运行./configure使之生成Makefile文件

9 、[root@localhost src]# vi Makefile

修改内容如下:

把CC=gcc 和CPP=gcc -E改写成CC=arm-linux-gcc CPP=arm-linux-g++ -E

10 、[root@localhost src]# vi compat.h

在一般模式下输入:set nu显示行编号,再用go 120进到120行,修改内容如下:

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

  改为define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

 

把120行foo后两个#号去掉

11 、[root@localhost src]# make                       //编译

12 、[root@localhost src]# arm-linux-strip boa        //优化boa可执行文件(此步非必须)

13 、[root@localhost web]# cd boa-0.94.13/     

14 、[root@localhost boa-0.94.13]# vi boa.conf         //修改boa的配置文件

在一般模式下输入:set nu显示行编号,再用go 111进到111行,  修改内容如下:

 把111 DocumentRoot /var/www

改为111 DocumentRoot /web

//指明html文件所放的路径

把193 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

改为193 ScriptAlias /cgi-bin/ /web/cgi-bin/

//指明cgi脚本的虚拟路径所对应的实际路径  

 

15 、[root@localhost /]# mkdir web1

16 、[root@localhost /]# cp /web/boa-0.94.13/boa.conf /web1

17 、[root@localhost /]# mkdir cgic

18 、[root@localhost cgic]# rz

19 、[root@localhost cgic]# ls

20 、[root@localhost cgic]# tar zxvf cgic205.tar.gz

21 、[root@localhost cgic]# cd cgic205

22 、[root@localhost cgic205]# vi Makefile

1修改内容如下:

CC=gcc改为CC=arm-linux-gcc

AR=ar改为AR=arm-linux-ar

RANLIB=ranlib改为RANLIB=arm-linux-ranlib

把install: libcgic.a

        cp libcgic.a /usr/local/lib

        cp cgic.h /usr/local/include

        @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.

改为:

install: libcgic.a

        cp libcgic.a /opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/armv4t/lib/

        cp cgic.h /opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/usr/include

        @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.

 

把下列代码

cgictest.cgi: cgictest.o libcgic.a

        gcc cgictest.o -o cgictest.cgi ${LIBS}

改为:

cgictest.cgi: cgictest.o libcgic.a

        $(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}

 

 

23 、[root@localhost cgic205]# make                       //编译makefile文件

出现错误:

capture.o: could not read symbols: File in wrong format

collect2: ld 返回 1

make: *** [capture] 错误 1

由于库文件对于的环境和当面的编译环境不一致造成的

应该把vi Makefile

capture: capture.o libcgic.a

        gcc capture.o -o capture ${LIBS}

改为i:

capture: capture.o libcgic.a

      $(CC) capture.o -o capture ${LIBS}

24 、[root@localhost cgic205]# make clean (清除之前生成的文件)

rm -f *.o *.a cgictest.cgi capture

25 、[root@localhost cgic205]# make

26 、[root@localhost cgic205]# arm-linux-strip capture         //优化capture文件(非必须步骤)

27 、[root@localhost cgic205]# cp capture /web1          //把capture复制到/web1文件夹中

(二)搭建nfs远程挂载

1 、[root@localhost cgic]# vi /etc/exports

修改内容如下:

/web1/ 192.168.1.0/24 (rw,async,no_root_squash)

(修改nfs 配置文件,使开发板能够挂载web1目录下的文件)

 

2.[root@localhost cgic]#service nfs restart

 

3 、[root@localhost cgic]# /sbin/service portmap start

4 .[root@localhost cgic]# /sbin/service nfs restart

(启动nfs服务器)

 

(三)启动Linux虚拟机,用SecureCRT终端仿真程序连接Linux虚拟机

在Linux虚拟机下:

 

#mount -f nfs -o nolock -o tcp 192.168.220.22: /web1 /mnt/nfs   //挂载

#mkdir /web                  //在根目录先创建web目录

#mkdir /web/cig-bin            //在web目录先创建cig-bin目录

#mkdir /etc/boa                //在etc目录下创建boa目录

#cp /mnt/nfs/boa.conf /etc/boa    //复制boa.conf文件到开发板的/etc/boa目录

#cp /mnt/nfs/boa /sbin           //复制可执行文件boa到开发板的/sbin目录

#cp /mnt/nfs/capture /web/cgi-bin  //复制可执行文件capture到开发板的/web/cgi-bin目录

#cd /sbin                      //进入/sbin目录

#./boa                         //运行boa服务器可执行文件

5.测试是否成功

测试静态网

1.将在编写好的静态网页1.htm以及所需要的图片上传到开发板的/web目录下

2.把开发板的ip改为:192.168.220.6

3.在windowXP访问开发板web服务器,在ie浏览器输入地址http://192.168.220.6/1.htm 效果如图所示:

 

 

Logo

更多推荐