您的位置:首页 > 移动开发

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

2012-12-02 21:02 435 查看

AppWeb服务器移植

AppWeb是一个开源的,针对安全性要求较高的HTTP Web服务器。其主要特点有:
l 很小的内存消耗,快速响应,每秒可以处理超过50个页面请求。
l 支持CGI;支持动态WEB页面,如PHP页面;支持嵌入式的JavaScript;支持安全的通信,如SSL(OpenSSL或MatrixSSL)
l 支持单线程和多线程运行模式。
1 修改配置参数
Appweb采用稳定版本appweb-src-3.3.2(4.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目录下的bin、lib、modules子目录中生成arm-s3c6410-linux文件夹,该目录中包含生成的可执行文件、库文件及模块。
执行make install命令进行安装,安装完成,将生成/WebServer/appweb配置文件夹、/WebServer
/lib/appweb脚本文件,更多文件信息可参考/WebServer /lib/appweb目录下的fileList.txt文件。
3 将AppWeb移植至网关
将生成的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.conf中Groupnogroup语句,否则运行时将报错。
配置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主页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: