000 移植APPWEB到ARM總結

Post date: 2013/1/28 上午 07:04:07

一、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;