移植APPWEB到ARM总结

1272阅读 0评论2013-01-03 行健天下ing
分类:

一、appweb简介:
Appweb是一个标准的嵌入式HTTP Web服务器,主要的设计思路是安全。这是直接集成到客户的应用和设备,便于开发和部署基于Web的应用程序和设备。它正迅速( 3500多要求每秒)和紧凑(从11万) ,其中包括支持动态网页制作,服务器端嵌入式脚本过程中的CGI ,可加载模块,的SSL ,摘要式身份验证,虚拟主机, Apache样式配置,日志记录,单和多线程应用程序。它提供了大量的文档和示例。
二、功能:
1、支持嵌入式JavaScript,esp,egi,cgi和php‭。‬
2、全支持HTTP/1.1的Web服务器
3、多线程,事件驱动的核心:在同类产品中最快的性能
4、动态可加载模块
5、服务器端JavaScript的Web框架
6、在内存中的PHP模块
7、CGI进程以及传统的CGI
8、与Apache兼容的配置和日志记录
9、基本和摘要式身份验证
10、安全套接字层(SSL/ TLS)
11、会话状态数据管理
12、HTTP客户端程序和库
13、ROM化(ROMable)网页文件和配置文件
14、跨平台和便携式
15、嵌入在应用程序和设备(支持XIP)
16、模块化提供的源代码和文档
三、移植方法:
1、解压:tar -xvzf appweb-3.3.4-0-src.tgz;
2、cd appweb-3.3.4;主要是对configure的配置;
3、参数众多,建立conf.sh shell脚本来实现:
#!/bin/sh
#设在交叉编译环境#
export AR=arm-linux-ar
export CC=arm-linux-gcc
export LD=arm-linux-ld
export NM=arm-linux-nm
export RANLIB=arm-linux-ranlib
export STRIP=arm-linux-strip
#开始配置#
./configure --build=i686-pc-linux \      #宿主机平台
 --host=arm-9260-linux \          #目标平台
 --type=RELEASE \              #发布类型(debug和release两种)
 --webdir=/var/www \               #网页文件存放目录
 --enable-multi-thread \          #允许多线程
 --disable-samples \
 --disable-test \
 --enable-auth \
 --enable-upload \
 --shared \                #动态编译
 --enable-cgi \
 --port=80 \                #监听端口,默认是7777
 --enable-egi \
 --enable-auto-compile \        #以下几个是ejs所需的参数
 --enable-cross-compiler \
 --enable-db \
 --number=int
4、source conf.sh 这步完成之后会有一个配置列表出来,可以查看是否是我们需要的配置。
5、make
6、如果make成功,在bin、lib、modules下面会有相应的arm-9260-linux目录,里面存放的就是我们
所需要的东西。
7、将arm-9260-linux里面的东西拷贝到设备板上运行即可。
8../appweb --config appweb.conf (我将所有与appweb相关的文件放在一个目录下面的)

关于配置文件appweb.conf
拷贝appweb-3.3.4/src/server/template/standard/appweb.conf进行修改即可。
主要修改的地方:
0、include conf/log.conf  //是指定appweb日志文件,更加实际情况修改ErrorLog的位置。
1、ServerRoot "/root/appweb/"  //假如我的appweb文件放在了/root/appweb下面;
2、Listen 80   //默认是7777,如果不该访问的时候需要“ipaddress:7777”进行访问;
3、DocumentRoot "/var/www"  //浏览器访问目录;
4、DirectoryIndex index.html   //主页
5、LoadModulePath "/root/appweb/modules" //appweb加载模块存放位置,根据实际情况自己设定。
6、Group root   //用户组
7、User root    //用户
其他的保持不变即可。conf目录在src/server/template/standard/conf拷贝即可。

四、资源占用:
内存:
Mem: 12204K used, 49352K free, 0K shrd, 0K buff, 4952K cached
CPU:  0.5% usr  6.3% sys  0.0% nic 93.0% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.21 0.13 0.08 1/37 9451
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 5949  1503 root     R     3240  5.2   0  0.5 top
 5941  1503 root     S     4968  8.0   0  0.0 ./appweb --config appweb.conf
 1043  1038 root     S     4340  7.0   0  0.0 /opt/bin/snmpd -f -c /opt/snmpd.conf
 1056     1 root     S     3240  5.2   0  0.0 /usr/sbin/telnetd
开到10个网页连接:
Mem: 12292K used, 49264K free, 0K shrd, 0K buff, 4952K cached
CPU:  2.9% usr  7.1% sys  0.0% nic 89.8% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.02 0.08 0.07 1/39 9868
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 9692  1503 root     R     3240  5.2   0  0.5 top
 5941  1503 root     S     5100  8.2   0  0.0 ./appweb --config appweb.conf
 1043  1038 root     S     4340  7.0   0  0.0 /opt/bin/snmpd -f -c /opt/snmpd.conf
 1056     1 root     S     3240  5.2   0  0.0 /usr/sbin/telnetd
flash:
bin:
-rwxr-xr-x    1 root     root         14779 Nov 28  2012 ajs
-rwxr-xr-x    1 root     root         11233 Nov 28  2012 ajsc
-rwxr-xr-x    1 root     root         66245 Nov 28  2012 ajsweb
-rwxr-xr-x    1 root     root         14933 Nov 28  2012 angel
-rwxr-xr-x    1 root     root         12872 Nov 28  2012 appweb
-rw-r--r--    1 root     root          5826 Jan  1 00:07 appweb.conf
-rwxr-xr-x    1 root     root        209004 Nov 28  2012 cgiProgram
-rw-r--r--    1 root     root          2756 Jan  1 00:43 mime.types
conf:
-rw-r--r--    1 root     root           103 Nov 28  2012 doc.conf
drwxr-xr-x    2 root     root           400 Jan  1 00:05 hosts
-rw-r--r--    1 root     root          1203 Jan  1 00:10 log.conf
drwxr-xr-x    2 root     root           592 Jan  1 00:05 modules
-rw-r--r--    1 root     root          1874 Jun  8  2011 tune.conf
lib:
-rwxr-xr-x    1 root     root        142816 Nov 28  2012 libac.so
-rwxr-xr-x    1 root     root        303928 Nov 28  2012 libajs.so
-rwxr-xr-x    1 root     root        112436 Nov 28  2012 libappweb.so
-rwxr-xr-x    1 root     root        188944 Nov 28  2012 libmpr.so
-rwxr-xr-x    1 root     root         95916 Nov 28  2012 libpcre.so
-rwxr-xr-x    1 root     root        349844 Nov 28  2012 libsqlite3.so
modules:
-rw-r--r--    1 root     root         84182 Nov 28  2012 ajs.mod
-rw-r--r--    1 root     root         30326 Nov 28  2012 ajsweb.mod
-rwxr-xr-x    1 root     root         10524 Nov 28  2012 mod_auth.so
-rwxr-xr-x    1 root     root         15440 Nov 28  2012 mod_cgi.so
-rwxr-xr-x    1 root     root          6340 Nov 28  2012 mod_chunk.so
-rwxr-xr-x    1 root     root         12764 Nov 28  2012 mod_dir.so
-rwxr-xr-x    1 root     root          4240 Nov 28  2012 mod_egi.so
-rwxr-xr-x    1 root     root         19116 Nov 28  2012 mod_ejs.so
-rwxr-xr-x    1 root     root          7716 Nov 28  2012 mod_file.so
-rwxr-xr-x    1 root     root          6188 Nov 28  2012 mod_range.so
-rwxr-xr-x    1 root     root         10496 Nov 28  2012 mod_upload.so
www:
-rw-r--r--    1 root     root          2978 Jan  1 00:12 index.ejs
-rw-r--r--    1 root     root            83 Jan  1 00:45 index.html
-rw-r--r--    1 root     root          1824 Jan  1 00:27 index.mod

共计:2.1M;

上一篇:六款小巧的HTTP Server
下一篇:探讨/proc文件内核数据完整性和一致性