一、下載并解壓
下載的官方主頁(yè):www.lighttpd.net
我下載的是lighttpd-1.4.18
解壓:
[tekkamanninja@Tekkaman-Ninja source]$ tar xjvf lighttpd-1.4.18.tar.bz2
二、配置和交叉編譯
[tekkamanninja@Tekkaman-Ninja source]$ cd lighttpd-1.4.18
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ CC=/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc ./configure -prefix=/lighttpd -host=arm-9tdmi-linux-gnu --disable-FEUTARE -disable-ipv6 -disable-lfs
這里特別注意一下:-prefix=/lighttpd ,我是將軟件先裝在Host的根目錄下的lighttpd文件夾內,然后將其復制到開(kāi)發(fā)板的根文件系統的根目錄下。我之所以這樣做是因為這個(gè)軟件在make install時(shí)會(huì )配置他私有的庫文件的路徑,在開(kāi)發(fā)板運行時(shí)會(huì )在-prefix= 的文件加下找他的私有庫文件。而我又是交叉編譯給開(kāi)發(fā)板,這樣配置比較方便移植。
--disable-FEUTARE -disable-ipv6 -disable-lfs 可以不加。
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ make
三、程序安裝
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ make install
拷貝配置文件到開(kāi)發(fā)板根文件系統的etc文件夾并進(jìn)行適當修改:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp doc/lighttpd.conf /home/tekkamanninja/working/nfs/rootfs/etc/
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ kwrite /home/tekkamanninja/working/nfs/rootfs/etc/lighttpd.conf
必需修改的地方有:
server.document-root = "/srv/www/htdocs/"
改為server.document-root = "/home/lighttpd/html/"
你可以自己定義,這里就是設置web服務(wù)的根目錄。
屏蔽一下語(yǔ)句,不然嵌入式這樣的小系統下可能無(wú)法啟動(dòng)
#$HTTP["url"] =~ "\.pdf$" {
# server.range-requests = "disable"
#}
開(kāi)看程序需要那些動(dòng)態(tài)庫:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d src/lighttpd
Dynamic section at offset 0x20790 contains 21 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000c (INIT) 0xc200
0x0000000d (FINI) 0x231c0
0x00000004 (HASH) 0x8128
0x00000005 (STRTAB) 0xa338
0x00000006 (SYMTAB) 0x8b48
0x0000000a (STRSZ) 5946 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0x30860
0x00000002 (PLTRELSZ) 960 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0xbe40
0x00000011 (REL) 0xbe00
0x00000012 (RELSZ) 64 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffe (VERNEED) 0xbd70
0x6fffffff (VERNEEDNUM) 2
0x6ffffff0 (VERSYM) 0xba72
0x00000000 (NULL) 0x0
拷貝動(dòng)態(tài)庫:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libdl-2.3.2.so ~/working/nfs/rootfs/lib/
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cp ~/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libdl.s* ~/working/nfs/rootfs/lib/
在開(kāi)發(fā)板為此程序新建一個(gè)用戶(hù)及存儲網(wǎng)頁(yè)的根目錄以及一個(gè)log目錄:
開(kāi)發(fā)板操作:
[root@~]#adduser -g user lighttpd
Changing password for lighttpd
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password:
Bad password: too short.
Warning: weak password (continuing).
Re-enter new password:
passwd[786]: password for `lighttpd' changed by user `root'
Password changed.
[root@~]#
HOST 操作:
[tekkamanninja@Tekkaman-Ninja lighttpd-1.4.18]$ cd ../../nfs/rootfs/home/lighttpd/
[tekkamanninja@Tekkaman-Ninja lighttpd]$ su
口令:
[root@Tekkaman-Ninja lighttpd]# mkdir html
[root@Tekkaman-Ninja lighttpd]# chmod 777 html/
[root@Tekkaman-Ninja lighttpd]# mkdir ../../var/log/lighttpd
[root@Tekkaman-Ninja lighttpd]# chmod 777 ../../var/log/lighttpd
將移植好的程序(整個(gè)目錄,其中包含了bin、sbin、lib和share目錄)拷貝到開(kāi)發(fā)板根文件系統的根目錄下:
[root@Tekkaman-Ninja lighttpd]# mv /lighttpd /home/tekkamanninja/working/nfs/
[root@Tekkaman-Ninja lighttpd]# exit
exit
四、運行程序
在開(kāi)發(fā)板上操作:
[root@~]#/lighttpd/sbin/lighttpd -f /etc/lighttpd.conf
將測試靜態(tài)網(wǎng)頁(yè)放在server.document-root設置的目錄下,并在HOST的瀏覽器下輸入開(kāi)發(fā)板IP,測試通過(guò)。
至于CGI的運行,我還不懂配置,有空再研究!
聯(lián)系客服