lighttpd移植備忘

由於公司原有的mini_httpd不能同時支持http/https,所以,必須選擇新的web 服務開源軟件。在網上對比了,最終選用lighttpd這個德國人的開源,這個軟件相對符合我們產品的需求。

1.下載lighttpd-1.4.32.tar.bz2

2.解壓編譯配置

CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib STRIP=arm-linux-strip ./configure --prefix=/usr/local/lighttpd --host=i686-pc-linux-gnu --build=i686-pc-linux --disable-FEATURE --enable-shared --disable-static --disable-lfs --disable-ipv6 --without-PACKAGE --without-valgrind --with-openssl --with-openssl-libs=/usr/src/openssl-1.0.1e/ --with-openssl-includes=/usr/src/openssl-1.0.1e/include --without-kerberos5 --without-pcre --without-zlib --without-bzip2

這兒一定要增加openssl的指定和支持。

make

make install

3.把lighttpd.conf  modules.conf 配置,和conf.d 裏的cgi.conf做對應的修改

 

lighttpd.conf裏注意增加.cgi的支持

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi", ".cgi")

 

modules.conf裏把

include "conf.d/cgi.conf"

打開,做爲支持

 

cgi.conf裏把

cgi.assign = (".cgi" => "")
這個修改進去。

 

把修改後的配置文件,lib 和應用程序加到rootfs裏

把生成的.pem文件也放到指定的目錄下,以備https校驗用。

把測試的cgi,html文件放到對應的目錄下,以備測試。

 

打包測試,http/https都能正常訪問,這只是通過簡單的測試,接下去的幾天,還要改爲軟件架構的正常應用。

開發過程中,遇到問題,並記錄如下:

 

1.無法支持https,沒有編譯進去。解決方法:配置lighttps時,要指定inclue配置項,網上文檔有大量錯誤。
2.lighttpd: can't resolve symbol 'EVP_md2'錯誤 ,解決方法:openssl配置時要增加enable-md2選項。
3.出現段錯誤,解決方式:重新用openssl1.0.1e版本,更新libssl.so和libcrypto.so
4.無法訪問cgi,原因是cgi用ftp傳入後,是不可執行的,最好是能過打包方式,在包裏改爲可運行屬性。
5.證書無法有效問題,這個要把證書列爲可信任發證商。

 

openssl的配置和編譯,也花了大量的時間,以後有空,也把這個列出來,以備記錄。

 

 

 

發佈了25 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章