<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > APPWeb+PHP5+SQLite3在S3C6410上移植

          APPWeb+PHP5+SQLite3在S3C6410上移植

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          我自己是移植Lighttpd+PHP+SQLite3的,由于忘了PHP怎么移植,所以就轉(zhuǎn)別人的,免得以后再移植會(huì)忘記

          原作者:

          本文引用地址:http://www.ex-cimer.com/article/201611/317295.htm

          hwwr112100

          網(wǎng)址:http://blog.csdn.net/hwwr112100/article/details/8249294

          相關(guān)支持庫(kù)移植

          主要包括libiconv、zlib以及加密服務(wù)組件matrixssll。

          下載Embedthis提供的第三方工具包,采用git從GitHub獲取packages軟件包,命令如下。

          gitclone http://github.com/embedthis/packages

          如果下載失敗,可以在直接在https://github.com/embedthis/packages中選擇下載ZIP包,內(nèi)容包括:


          其中,libiconv-1.11、zlib和matrixssl中的matrixssl1-8-8-open被本次移植采用,php目錄中的PHP版本較高,并且默認(rèn)目標(biāo)平臺(tái)為L(zhǎng)inux和Windows平臺(tái),不支持交叉編譯,編譯時(shí)會(huì)出現(xiàn)諸多問(wèn)題,本次移植并未采用。

          1編譯libiconv

          libiconv庫(kù)是編譯xmlrpc必須的支持庫(kù),選擇libiconv-1.11,注意:最新版iocnv,編譯時(shí)會(huì)可能會(huì)出現(xiàn)諸多問(wèn)題,這里不建議采用。

          首先設(shè)置CC、AR等環(huán)境變量的路徑(假設(shè)arm-linux-gcc工具安裝在/usr/local/arm/4.2.2-eabi/目錄下),具體設(shè)置如下所示。

          export CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc

          export AR=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ar

          export LD=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ld

          export RANLIB=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ranlib

          export STRIP=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-strip

          export CC_FOR_BUILD=gcc

          配置:

          ./configure --build=arm-linux --host=i686-linux --prefix=/usr/local/iconvarm

          配置完成后,編譯安裝:

          make

          make install

          --prefix參數(shù)指定libconv庫(kù)安裝的位置,在編譯PHP時(shí)需要引用該位置。

          2編譯libz.so

          zlib是PHP必須的支持庫(kù),這里采用的版本為zlib-1.2.6。注意:CC、AR等環(huán)境變量選擇為arm-linux-xx。

          ./configure --prefix=/usr/local/zlib

          配置成功之后,編譯:

          make clean

          make

          --prefix參數(shù)指定libz庫(kù)安裝的位置,編譯PHP時(shí),加入--with-zlib-dir=/usr/local/zlib編譯參數(shù)。

          3編譯libxml2.so

          源碼包版本為libxml2-2.7.4,libxml2庫(kù)同樣是PHP所必須的支持庫(kù)。

          ./configure --build=arm-linux --host=i686-linux --disable-ipv6 --prefix=/usr/local/libxmlarm

          配置成功之后,編譯安裝:

          make

          make install

          編譯PHP

          當(dāng)上述支持庫(kù)編譯完成之后,進(jìn)行PHP編譯。注意:上述編譯得到的*.so文件格式必須為如下形式:

          libz.so.1.2.6: ELF32-bit LSB shared object,ARM, version 1 (SYSV), dynamically linked, not stripped

          另外,正常編譯得到的庫(kù)文件包含調(diào)試信息,可以使用arm-linux-strip工具去除不必要的調(diào)試信息,以減小文件體積。

          PHP采用的版本為PHP-5.2.17(PHP-5.3.8會(huì)出問(wèn)題,如無(wú)法正常運(yùn)行,服務(wù)器自動(dòng)重啟,建議采用此版本)。

          PHP配置參數(shù)如下:

          ./configure --target=arm --host=arm-linux --disable-debug --disable-rpath --disable-cli--enable-bcmath --enable-calendar --disable-maintainer-zts--enable-embed=shared --enable-ftp--enable-inline-optimization --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-wddx --sysconfdir=/etc/appweb--with-pic --with-exec-dir=/etc/appweb/exec--with-regex=system --with-pear --with-xmlrpc --with-zlib-dir=/usr/local/zlib --with-libxml-dir=/usr/local/libxmlarm --with-iconv-dir=/usr/local/iconvarm/

          注意:在使能多線程模式,即附帶參數(shù)--enable-maintainer-zts編譯時(shí),報(bào)錯(cuò)信息如下:

          上述錯(cuò)誤可以通過(guò)修改configure文件解決,修改內(nèi)容如下:

          將{ echo "configure: error: Your system seems to lack POSIXthreads." 1>&2; exit 1; }
          替換為:

          { echo"configure: error: Your system seems to lack POSIX threads."1>&2; }#exit 1; }

          在多線程與單線程模式下,PHP腳本運(yùn)行性能對(duì)比(由雅黑PHP探針測(cè)得數(shù)據(jù)),如下表所示。

          表2 PHP性能對(duì)比

          性能參數(shù)

          單線程模型

          ARM11 667MHz

          多線程模型

          ARM11 667MHz

          美國(guó) IXwebhosting.com

          4 x Xeon E5530 @ 2.40GHz

          整數(shù)運(yùn)算能力檢測(cè)
          (1+1運(yùn)算300萬(wàn)次)

          7.439s

          15.547s

          0.535s

          浮點(diǎn)運(yùn)算能力檢測(cè)
          (圓周率開(kāi)平方300萬(wàn)次)

          42.599s

          無(wú)法測(cè)出

          1.607s

          數(shù)據(jù)I/O能力檢測(cè)
          (讀取10K文件1萬(wàn)次)

          0.961

          11.112s

          0.058s

          通過(guò)上述對(duì)比分析,在單線程模式下系統(tǒng)性能好于多線程模式,所以本移植中PHP配置為單線程模式,另外AppWeb也需要禁用多線程模式。

          配置完成之后,需要檢查生成的Makefile文件,確保CC和CPP等環(huán)境變量指向交叉編譯鏈,即arm-linux-xx,以及相關(guān)庫(kù)文件和頭文件的路徑是否正確,正確配置信息如下圖所示:

          配置成功之后,系統(tǒng)提示如下信息:

          編譯安裝:

          make clean

          make

          make install

          編譯時(shí)如果出現(xiàn)如下錯(cuò)誤,表示編譯PHP的工具鏈并不是arm-linux-gcc而是gcc,所以需要重新設(shè)置CC、AR等環(huán)境變量指向arm-linux-xx交叉工具鏈。

          編譯成功,系統(tǒng)提示信息如下:

          注意:編譯完成后不可執(zhí)行make test,因?yàn)镻HP編譯的目標(biāo)為網(wǎng)關(guān)(ARM平臺(tái)),所以運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。直接運(yùn)行makeinstall進(jìn)行安裝即可。

          安裝完成后,在libs/目錄下生成libphp5.so動(dòng)態(tài)庫(kù)文件,使用file命令查看文件信息,如下所示:

          在未使用strip工具去除調(diào)試信息之前,本次編譯的庫(kù)文件大小為12.5M,執(zhí)行arm-linux-strip得到的庫(kù)文件大小僅為3.8M。

          編譯PHP加速器eAccelerator

          eAccelerator是一款開(kāi)源PHP加速器,優(yōu)化動(dòng)態(tài)內(nèi)容緩存,提高php腳本的緩存性能,使PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開(kāi)銷幾乎完全消除;另外,可以實(shí)現(xiàn)腳本優(yōu)化,加快腳本執(zhí)行速率,最終使PHP程序代碼執(zhí)行效率提高1至10倍。

          eAccelerator-0.9.5版本支持PHP進(jìn)行交叉編譯,但是該版本不支持動(dòng)態(tài)模塊加載方式,只能將eaccelerator編譯進(jìn)libphp5.so動(dòng)態(tài)庫(kù)中。

          將解壓得到的eaccelerator-0.9.5目錄重命名為eaccelerator,并復(fù)制到php-5.2.17/ext目錄下,進(jìn)入該目錄,使用phpize工具生成configure文件,phpize是安裝PHP時(shí)自動(dòng)生成的工具,默認(rèn)安裝于/usr/local/bin目錄下。

          /usr/local/bin/phpize

          執(zhí)行成功后,系統(tǒng)提示信息如下:

          將php-5.2.17/目錄下的configure文件刪除,使用buildconfig工具重新生成包含eaccelerator編譯選項(xiàng)的configure文件。首先,系統(tǒng)必須安裝了autoconf-2.13工具,若未安裝,可以通過(guò)apt-get工具自動(dòng)安裝。執(zhí)行下述命令:

          apt-getinstall autoconf-2.13

          rm configure

          ./buildconf --force

          生成的configure文件包含了eaccelerator的配置語(yǔ)句--enable-eaccelerator。

          重新執(zhí)行PHP配置命令,并在最后加上--enable-eaccelerator參數(shù)。執(zhí)行make時(shí)將出現(xiàn)如下錯(cuò)誤:

          該錯(cuò)誤可通過(guò)下述方法進(jìn)行修改:

          修改eaccelerator目錄下mm.c文件,在文件開(kāi)始處加入如下語(yǔ)句:

          #defineMM_SEM_IPC 1

          #defineMM_SHM_IPC 1

          設(shè)置完成后,重新編譯安裝eAccelerator,問(wèn)題解決。

          要使PHP能夠運(yùn)行eAccelerator,首先,需要修改php.ini配置文件,并加入eaccelerator的配置信息,在該文件最后添加如下語(yǔ)句:

          extension= eaccelerator.so

          ;eAccelerator

          eaccelerator.shm_size= "16"

          eaccelerator.cache_dir= "/tmp/eaccelerator"

          eaccelerator.enable= "1"

          eaccelerator.optimizer= "1"

          eaccelerator.check_mtime= "1"

          eaccelerator.debug= "0"

          eaccelerator.filter= ""

          eaccelerator.shm_max= "0"

          eaccelerator.shm_ttl= "0"

          eaccelerator.prune_period= "0"

          eaccelerator.shm_only= "0"

          eaccelerator.compress= "1"

          eaccelerator.compress_level= "9"

          最后,在網(wǎng)關(guān)/tmp/目錄下創(chuàng)建用于存放eAccelerator緩存文件的目錄eaccelerator,并修改該目錄權(quán)限為777。

          4PHP外部C擴(kuò)展

          使用PHP的外部C擴(kuò)展將實(shí)現(xiàn)與外部庫(kù)(C庫(kù))的交互,另外,可以改善PHP腳本執(zhí)行效率的問(wèn)題。通常采用以下3種方式實(shí)現(xiàn)C擴(kuò)展:

          l Built-in Modules編譯進(jìn)PHP

          好處: (1)不需要?jiǎng)討B(tài)加載,模塊在php腳本里面可以直接使用.

          (2)不需要將模塊編譯成.so共享庫(kù),因?yàn)橹苯泳幾g進(jìn)PHP。

          缺點(diǎn): (1)對(duì)模塊的改變都需要重新編譯PHP

          (2)因?yàn)榫幾g進(jìn)PHP,所以PHP二進(jìn)制文件較大,而且多占點(diǎn)內(nèi)存

          l External Modules外部模塊,也就是編譯成共享庫(kù),用dl()函數(shù)動(dòng)態(tài)加載。

          好處:(1)不需要重新編譯 PHP

          (2)PHP體積小,因?yàn)椴恍枰幾g進(jìn)PHP

          缺點(diǎn):(1)每次*.php腳本執(zhí)行都需要用 dl()去加載,效率較低

          (2)每次都要調(diào)用dl()

          l The Zend EngineZend 核心里實(shí)現(xiàn)

          下面介紹第一種C擴(kuò)展方式Built-in Modules。

          創(chuàng)建C擴(kuò)展框架

          PHP本身提供一個(gè)創(chuàng)建擴(kuò)展框架的工具ext_skel,該工具會(huì)生成PHP擴(kuò)展必須的基本代碼,位于PHP源碼的ext/目錄下。創(chuàng)建一個(gè)名為test的擴(kuò)展庫(kù),完成之后,將會(huì)生成config.m4、test.c、php_test.h等文件。

          cd/home/username/share/php-5.2.17/ext/

          ./ext_skel--extname=test

          cdtest

          修改擴(kuò)展庫(kù)

          修改config.m4文件,該文件是一個(gè)宏解釋工具,將輸入文件中的宏展開(kāi)到輸出文件,是PHP擴(kuò)展框架所必須的,用來(lái)生成擴(kuò)展所需的makefile文件。

          將源碼文件中的如下代碼:

          dnlPHP_ARG_ENABLE(test, whether to enable test support,

          dnl Make sure that the comment is aligned:

          dnl [--enable-test Enabletest support])

          替換為(dnl在m4文件中起注釋作用,即取消上述代碼注釋)

          PHP_ARG_ENABLE(test, whether to enable testsupport,

          Make sure that the comment is aligned:

          [--enable-test Enabletest support])

          注意:不要使用PHP_ARG_WITH,可能會(huì)出現(xiàn)問(wèn)題(提示C函數(shù)未定義)

          修改php_test.h文件,在PHP_FUNCTION(confirm_mysqlc_compiled);語(yǔ)句下追加下述語(yǔ)句:(PHP_FUNCTION是一個(gè)Zend Macro,作用是聲明一個(gè)C函數(shù),使它在PHP腳本中可用,參數(shù)是函數(shù)的名字)

          PHP_FUNCTION(test);

          修改test.c文件,該文件為主程序文件,包含了C代碼實(shí)現(xiàn)。首先,在zend_function_entrytest_functions函數(shù)中增加如下語(yǔ)句:

          PHP_FE(test,NULL)

          在文件最后,增加函數(shù)實(shí)現(xiàn):

          PHP_FUNCTION(test){

          long int a, b;

          long int result;

          if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "ll", &a, &b) == FAILURE) {

          return;

          }

          result = hello_add(a, b);

          RETURN_LONG(result);

          }

          test就是在PHP腳本中調(diào)用的函數(shù)名(不需與擴(kuò)展庫(kù)名相同),hello_add函數(shù)包含在動(dòng)態(tài)庫(kù)hello.so(需事先準(zhǔn)備好)中,Linux下打包.so文件的GCC命令如下:

          arm-linux-gcc-fPIC -O -c -o test.o test.c

          arm-linux-gcc-shared -o libtest.so test.o

          注意:需將生成的動(dòng)態(tài)庫(kù)置于交叉編譯器的Lib目錄下,或者放置于當(dāng)前目錄。zend_parse_parameters的功能是從PHP腳本向該函數(shù)傳遞參數(shù)(類似于scanf函數(shù)),符號(hào)“ll”說(shuō)明參數(shù)的數(shù)據(jù)類型。

          重新編譯PHP

          使用buildconf工具重新生成configure文件,實(shí)現(xiàn)包含--enable-test參數(shù)選項(xiàng)。

          注意:由于使用了外部.so動(dòng)態(tài)庫(kù),在執(zhí)行./configure后,需要修改生成的Makefile文件,在EXTRA_LIBS中增加-ltest選項(xiàng)。

          編譯完成后,將libs/目錄下的libphp5.so(使用strip工具瘦身)拷貝到網(wǎng)關(guān)WEB服務(wù)器配置目錄下的lib子目錄中。

          最后,必須重新啟動(dòng)AppWeb服務(wù)器,使PHP內(nèi)核加載自定義的擴(kuò)展庫(kù)??梢跃帉?xiě)一個(gè)PHP腳本測(cè)試是否調(diào)用成功。

          echo test(3,9);

          ?>

          數(shù)據(jù)庫(kù)SQLite3移植

          PHP5.2.27內(nèi)部SQLite版本為v2,為了獲得更多功能支持,采用外部SQLite3版本sqlite3.7.11(通過(guò)PDO方式訪問(wèn))。

          1編譯SQLite3

          首先,在源碼目錄下建立build/目錄,并進(jìn)入

          usrname@ubuntu:~/sqlite3.7.11/sqlite3.6.1/$mkdirbuild

          usename@ubuntu:~/sqlite3.7.11/sqlite3.7.11/$cdbuild

          usename@ubuntu:~/sqlite3.7.11/ sqlite3.7.11/build/$ ../configure --host=arm-linux--prefix=$(pwd) --disable-tcl

          usrname@ubuntu:~/sqlite3.7.11/ sqlite3.7.11/build/$make

          usename@ubuntu:~/sqlite3.7.11/ sqlite3.7.11/build/$make install

          使用strip工具去除動(dòng)態(tài)庫(kù)中的調(diào)試信息

          usename@ubuntu:~/sqlite3.7.11/ sqlite3.7.11/build/$cd lib

          usename@ubuntu:~/sqlite3.7.11/ sqlite3.7.11/build/lib/$ arm-linux-strip libsqlite3.so.0.8.6

          2 拷貝文件至網(wǎng)關(guān)

          將lib目錄下的文件拷貝到網(wǎng)關(guān)/usr/lib目錄中,并將/bin目錄下的sqlite3拷貝至網(wǎng)關(guān)的/usr/bin目錄下。

          在網(wǎng)關(guān)運(yùn)行sqlite3

          [root@urbetter/]# ./usr/bin/sqlite3

          正確運(yùn)行結(jié)果如下所示:

          3 應(yīng)用程序編譯

          應(yīng)用程序中使用sqlite接口時(shí),首先必須包含相應(yīng)的頭文件“sqlite3.h”,另外,在編譯應(yīng)用程序時(shí)必須在編譯參數(shù)中加入sqlite動(dòng)態(tài)庫(kù)的路徑,如下所示。

          $arm-linux-gcc -o test test.c -L/home/username/temp/ sqlite3.7.11/

          sqlite3.7.11/build/lib-I/home/hwwr/ sqlite-3.7.11

          sqlite3.7.11/build/include-Wall

          另外,可以將動(dòng)態(tài)庫(kù)文件放入到所使用的交叉編譯鏈的路徑中:

          $ sudocp -rP sqlite3.7.11/build/lib/libsqlite3.* /usr/local/

          arm/4.2.2-eabi/lib/

          $ sudocp sqlite3.7.11/build/include/* /usr/local/arm/4.2.2-eabi/

          include/

          完成上述配置后,編譯應(yīng)用程序時(shí)可使用如下編譯參數(shù)。

          $arm-linux-gcc -o test test.c -lsqlite3 –I/ usr/local/arm/4.2.2-eabi/include

          4在PHP中添加sqlite3支持

          編譯安裝完SQLite,將在build目錄下生成相關(guān)的頭文件以及庫(kù)文件,所以,可以在編譯PHP時(shí)加入SQLite的路徑。使用PDO方式訪問(wèn)sqlite數(shù)據(jù)庫(kù),并且使sqlite采用UTF-8編碼方式,具體配置參數(shù)如下所示。

          --with-sqlite=shared

          --enable-sqlite-utf8

          --with-pdo-sqlite=/home/hwwr/share/sqlite-3.7.11/

          AppWeb服務(wù)器移植

          AppWeb是一個(gè)開(kāi)源的,針對(duì)安全性要求較高的HTTP Web服務(wù)器。其主要特點(diǎn)有:

          l很小的內(nèi)存消耗,快速響應(yīng),每秒可以處理超過(guò)50個(gè)頁(yè)面請(qǐng)求。

          l支持CGI;支持動(dòng)態(tài)WEB頁(yè)面,如PHP頁(yè)面;支持嵌入式的JavaScript;支持安全的通信,如SSL(OpenSSL或MatrixSSL)

          l支持單線程和多線程運(yùn)行模式。

          1 修改配置參數(shù)

          Appweb采用穩(wěn)定版本appweb-src-3.3.2(4.0版本編譯時(shí)可能會(huì)出現(xiàn)問(wèn)題)。AppWeb的配置參數(shù)如下:

          ./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必須禁用多線程模式,即加入配置參數(shù)--disable-multi-thread。

          以上配置產(chǎn)生用于編譯的Makefile文件,并生成相關(guān)服務(wù)程序、動(dòng)態(tài)庫(kù)以及模塊;如果只需要靜態(tài)文件則可加入--disable-shared --enable-static,編譯后生成的服務(wù)程序較大,只生成靜態(tài)庫(kù),沒(méi)有模塊,所以推薦生成動(dòng)態(tài)版本。

          選項(xiàng)--webDir用于指定網(wǎng)站的存放位置,webDir默認(rèn)值為/var/www/appweb-default。通過(guò)上述配置,服務(wù)器的網(wǎng)站根目錄為/www,默認(rèn)http端口號(hào)為80。

          選項(xiàng)--sysconfdir用于設(shè)置配置文件的安裝位置,--prefix指定AppWeb可執(zhí)行文件和相關(guān)庫(kù)的安裝位置。另外,AppWeb可執(zhí)行文件被復(fù)制到/etc/init.d目錄下。

          2編譯AppWeb

          Configure執(zhí)行成功后,生成Makefile文件,此時(shí)直接在終端運(yùn)行make命令進(jìn)行編譯,編譯完成之后,將在appweb-3.3.2目錄下的bin、lib、modules子目錄中生成arm-s3c6410-linux文件夾,該目錄中包含生成的可執(zhí)行文件、庫(kù)文件及模塊。

          執(zhí)行make install命令進(jìn)行安裝,安裝完成,將生成/WebServer/appweb配置文件夾、/WebServer /lib/appweb腳本文件,更多文件信息可參考/WebServer /lib/appweb目錄下的fileList.txt文件。

          3將AppWeb移植至網(wǎng)關(guān)

          將生成的WebServer目錄復(fù)制到網(wǎng)關(guān)根目錄下,打開(kāi)/ WebServer /appweb中的配置文件appweb.conf,并確認(rèn)如下信息是否正確。

          Listen80

          DocumentRoot"/www"

          DirectoryIndexindex.html

          LoadModulePath"/ WebServer /lib/appweb/modules"

          以上信息與編譯時(shí)的配置參數(shù)相關(guān),參數(shù)DirectoryIndex用于設(shè)置默認(rèn)起始頁(yè)。

          將主機(jī)/etc/init.d/appweb目錄復(fù)制到網(wǎng)關(guān)/etc/init.d目錄下。

          4配置AppWeb

          首先,注銷(刪除)配置文件/WebServer /appweb/appweb.conf中Groupnogroup語(yǔ)句,否則運(yùn)行時(shí)將報(bào)錯(cuò)。

          配置matrixssl加密服務(wù)支持。修改/WebServer /appweb/appweb.conf文件,在Include conf/modules/*語(yǔ)句之后(對(duì)模塊的定義必須在該標(biāo)記之后)增加如下語(yǔ)句:

          Listen 443 # SSL - dont remove comment

          LoadModule sslModule mod_ssl

          rtualHost *: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"

          設(shè)置https監(jiān)聽(tīng)443端口(即瀏覽器默認(rèn)安全端口),SSL證書(shū)位于/WebServer /appweb/ssl目錄下,注意:該證書(shū)已經(jīng)過(guò)期,所在使用https訪問(wèn)時(shí),出現(xiàn)如下安全提示:

          選擇“繼續(xù)瀏覽網(wǎng)站”忽略該提示即可。

          配置error log(日志消息),在調(diào)試期間,配置appweb應(yīng)允許記錄系統(tǒng)運(yùn)行日志,如需取消則在./configure時(shí)加入--disable-log配置參數(shù)。

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

          ErrorLog“/log/appweb/error.log”

          LogLevel4

          即配置日志保存于/log/appweb下的error.log文件,所以必須在網(wǎng)關(guān)根目錄下創(chuàng)建/log/appweb/error.log文件。

          配置doc(在線文檔),在開(kāi)發(fā)階段可以使用此功能。修改/ WebServer /appweb/conf目錄下的doc.conf文件,配置如下:

          Alias /doc/ "$DOCUMENT_ROOT/doc/"

          將doc目錄定位于網(wǎng)站根目錄下。

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

          LoadModulecgiHandler mod_cgi

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

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

          配置完成之后運(yùn)行Appweb服務(wù)器:

          /etc/init.d/appwebstart

          通過(guò)瀏覽器訪問(wèn)網(wǎng)關(guān)WEB服務(wù)器,頁(yè)面如下圖所示。

          圖6 AppWeb主頁(yè)



          關(guān)鍵詞: APPWebPHP5SQLite3S3C641

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();