用thttpd做Web Server
生活随笔
收集整理的這篇文章主要介紹了
用thttpd做Web Server
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
httpd是busybox中自帶的web server,功能弱,不支持認證和CGI。thttpd和boa都支持認證CGI,功能比較全,Boa是一個單任務的小型http服務器,設計的小型系統不要數據庫操作,所以可以使用thttpd作為server.
1. 編譯thttpd
??? cc=armv5l-linux-gcc ./configure -host=arm.這里設置為交叉編譯.
2. make
3. 拷貝 thttpd到osroot/usr/sbin,拷貝contrib/redhat-rpm/thttpd.conf 到osroot/etc,
4. 測試一下thttpd所需要的動態庫,readelf -d thttpd
5. 要想運行thttpd,還需要libnss類動態庫,thttpd 使用到 NSS (Name Service Switch),因此若沒有 libnss類動態庫,thttpd 在通過 /etc/passwd 去查詢 UNIX user時,會看到:unknown user - usr, 原因是 thttpd 讀不到 'usr' 用戶,相應的處理代碼在thttpd.c 的 main()函數里,這里thttpd可以加入libnss_compat.so和libnss_file.so兩個動態庫文件.
6. 默認情況下,thttpd不可以運行CGI,特別是動態編譯的CGI程序,所以需要修改thttpd.conf的配置:
1. 編譯thttpd
??? cc=armv5l-linux-gcc ./configure -host=arm.這里設置為交叉編譯.
2. make
3. 拷貝 thttpd到osroot/usr/sbin,拷貝contrib/redhat-rpm/thttpd.conf 到osroot/etc,
4. 測試一下thttpd所需要的動態庫,readelf -d thttpd
5. 要想運行thttpd,還需要libnss類動態庫,thttpd 使用到 NSS (Name Service Switch),因此若沒有 libnss類動態庫,thttpd 在通過 /etc/passwd 去查詢 UNIX user時,會看到:unknown user - usr, 原因是 thttpd 讀不到 'usr' 用戶,相應的處理代碼在thttpd.c 的 main()函數里,這里thttpd可以加入libnss_compat.so和libnss_file.so兩個動態庫文件.
6. 默認情況下,thttpd不可以運行CGI,特別是動態編譯的CGI程序,所以需要修改thttpd.conf的配置:
# This section overrides defaults
dir=/home/httpd/html
#chroot
#屏蔽chroot是為了運行動態編譯的CGI
user=httpd# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=81
#port參數用于更改端口號(可不改,若還運行了別的WEB服務器,則需用不同端口)
# nosymlink# default = !chroot
#symlinks
# novhost
cgipath=/cgi-bin/*
#聲明CGI程序的目錄,是以dir為根目錄的路徑
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1
7. 在開發板上為thttpd創建一個獨立的用戶:httpd,并用此用戶創建httpd服務的根目錄html
最簡單的測試方法不用配置文件,直接輸入命令:
thttpd -p 80 -d /home/httpd/html -u root 啟動
?
總結
以上是生活随笔為你收集整理的用thttpd做Web Server的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “利是身灾合少求”上一句是什么
- 下一篇: 有啥软件可以免费看VIP电影