APPWeb+PHP5+SQLite3在S3C6410上移植之四

来源:互联网 发布:数车caxa自动编程 编辑:程序博客网 时间:2024/06/01 09:40

AppWeb服务器移植

AppWeb是一个开源的,针对安全性要求较高的HTTP Web服务器。其主要特点有:

l 很小的内存消耗,快速响应,每秒可以处理超过50个页面请求。

l 支持CGI;支持动态WEB页面,如PHP页面;支持嵌入式的JavaScript;支持安全的通信,如SSL(OpenSSL或MatrixSSL)

l 支持单线程和多线程运行模式。

1 修改配置参数

Appweb采用稳定版本appweb-src-3.3.24.0版本编译时可能会出现问题)。AppWeb的配置参数如下:

./configure--host=arm-s3c6410-linux --build=i686-pc-linux --port=80 --type=RELEASE --disable-multi-thread  --disable-access-log --disable-test --with-cgi=builtin --with-copy=builtin --with-auth=builtin--with-esp=builtin --with-upload=builtin --webDir=/www  --with-ejs=builtin--with-php=/home/hwwr/share/php-5.2.17/--with-matrixssl=/home/hwwr/share/ssl/matrixssl/matrixssl-1-8-8-open/--sysconfdir=/WebServer --prefix=/WebServer

注意:由于PHP被编译为单线程模式,所以AppWeb必须禁用多线程模式,即加入配置参数--disable-multi-thread

以上配置产生用于编译的Makefile文件,并生成相关服务程序、动态库以及模块;如果只需要静态文件则可加入--disable-shared --enable-static,编译后生成的服务程序较大,只生成静态库,没有模块,所以推荐生成动态版本。

选项--webDir用于指定网站的存放位置,webDir默认值为/var/www/appweb-default。通过上述配置,服务器的网站根目录为/www,默认http端口号为80

选项--sysconfdir用于设置配置文件的安装位置,--prefix指定AppWeb可执行文件和相关库的安装位置。另外,AppWeb可执行文件被复制到/etc/init.d目录下。

2 编译AppWeb

Configure执行成功后,生成Makefile文件,此时直接在终端运行make命令进行编译,编译完成之后,将在appweb-3.3.2目录下的binlibmodules子目录中生成arm-s3c6410-linux文件夹,该目录中包含生成的可执行文件、库文件及模块。

执行make install命令进行安装,安装完成,将生成/WebServer/appweb配置文件夹、/WebServer /lib/appweb脚本文件,更多文件信息可参考/WebServer /lib/appweb目录下的fileList.txt文件。

3AppWeb移植至网关

将生成的WebServer目录复制到网关根目录下,打开/ WebServer /appweb中的配置文件appweb.conf,并确认如下信息是否正确。

Listen80

DocumentRoot"/www"

DirectoryIndexindex.html

LoadModulePath"/ WebServer /lib/appweb/modules"

以上信息与编译时的配置参数相关,参数DirectoryIndex用于设置默认起始页。

将主机/etc/init.d/appweb目录复制到网关/etc/init.d目录下。

4 配置AppWeb

首先,注销(删除)配置文件/WebServer /appweb/appweb.confGroupnogroup语句,否则运行时将报错。

配置matrixssl加密服务支持。修改/WebServer /appweb/appweb.conf文件,在Include conf/modules/*语句之后(对模块的定义必须在该标记之后)增加如下语句:

<ifSSL_MODULE>

    Listen 443     # SSL - dont remove comment

    LoadModule sslModule mod_ssl

    <VirtualHost *:443>

        DocumentRoot "/www"

        SSLEngine on

        # SSLCipherSuiteALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        # SSLCipherSuite HIGH:RC4+SHA

        # Use an RC4-SHA cipher to mitigate theBEAST attack

        SSLCipherSuite HIGH:RC4+SHA

        SSLProtocol ALL -SSLV2

        SSLCertificateFile "/ WebServer/appweb/ssl/server.crt"

        SSLCertificateKeyFile "/ WebServer/appweb/ssl/server.key.pem"

    </VirtualHost>                                 

</if>

设置https监听443端口(即浏览器默认安全端口),SSL证书位于/WebServer /appweb/ssl目录下,注意:该证书已经过期,所在使用https访问时,出现如下安全提示:


选择“继续浏览网站”忽略该提示即可。

配置error log(日志消息)在调试期间,配置appweb应允许记录系统运行日志,如需取消则在./configure时加入--disable-log配置参数。

修改/WebServer /appweb/conf目录下的log.conf文件,配置如下:

ErrorLog“/log/appweb/error.log”

LogLevel4

即配置日志保存于/log/appweb下的error.log文件,所以必须在网关根目录下创建/log/appweb/error.log文件。

配置doc(在线文档),在开发阶段可以使用此功能。修改/ WebServer /appweb/conf目录下的doc.conf文件,配置如下:

<ifDOC>

    Alias /doc/ "$DOCUMENT_ROOT/doc/"

</if>

doc目录定位于网站根目录下。

配置CGI,修改/WebServer/appweb/conf/modules目录下的cgi.conf文件,配置如下:

LoadModulecgiHandler mod_cgi

AddHandlercgiHandler .exe .cgi .cgi-nph .out .bat .cmd .pl .py

 

<Directory"$DOCUMENT_ROOT/cgi-bin">

</Directory>

 

ScriptAlias/cgi-bin/ "$DOCUMENT_ROOT/cgi-bin"

配置完成之后运行Appweb服务器:

/etc/init.d/appwebstart

通过浏览器访问网关WEB服务器,页面如下图所示。


图6 AppWeb主页
原创粉丝点击