日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

试验篇--thttpd安装与调试

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 试验篇--thttpd安装与调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?http://www.acme.com/software/thttpd/

thttpd是一個非常小巧的輕量級web server,它非常非常簡單,僅僅提供了HTTP/1.1和簡單的CGI支持,在其官方網站上有一個與其他web server(如Apache, Zeus等)的對比圖+Benchmark,可以參考參考。此外,thttpd 也類似于lighttpd,對于并發請求不使用fork()來派生子進程處理,而是采用多路復用(Multiplex)技術來實現。因此效能很好。

thttpd支持多種平臺,如FreeBSD, SunOS, Solaris, BSD, Linux, OSF等。對于小型web server而言,速度快似乎是一個代名詞,通過官方站提供的Benchmark,可以這樣認為:thttpd至少和主流的web server一樣快,在高負載下更快,因為其資源占用小的緣故。

thttpd還有一個較為引人注目的特點:基于URL的文件流量限制,這對于下載的流量控制而言是非常方便的。象Apache就必須使用插件實現,效率較thttpd低。

?

一.安裝

# wget?http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

# tar zxvf thttpd-2.25b.tar.gz

#?cd thttpd-2.25b

#?./configure?--prefix=/usr/local/thttpd

# make

CentOS 6.4編譯報錯,原因是getline 已加入 POSIX 2008,可以把extras/htpasswd.c 里面的getline重命名為get_line或別的。

htpasswd.c中的名稱與stdio.h標準庫中的getline的名稱一樣,所以導致了沖突。

修改的方法是到htpasswd.c中,修改getline。htpasswd.c中getline是一個static類型的函數,函數只會出現在本文件中。依次查找getline,并修改成get_line。


htpasswd.c 第52行定義

static int getline(char *s, int n, FILE *f) {

htpasswd.c 第192行調用

while(!(getline(line,MAX_STRING_LEN,f))) {

重新make

#make


# addgroup www ? ? ? ? // 需創建 www 組 如果提示?addgroup: command not found

可以使用

# /usr/sbin/useradd www

# make install?

make install的時候會報沒有/usr/local/man/man1的錯誤,所以要

#?mkdir man1?

# cd /usr/local/thttpd

# mkdir {etc,logs}

#cd ./conf

#vim thttpd.conf

port=80
user=www
host=0.0.0.0
logfile=/usr/local/thttpd/logs/thttpd.log
pidfile=/usr/local/thttpd/logs/thttpd.pid
#throttles=/usr/local/thttpd/etc/throttle.conf
#urlpat=*.txt|*.mp3
#charset=utf-8
dir=/usr/www
cgipat=/usr/local/thttpd/www/cgi-bin/*

啟動thttpd

#?/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/conf/thttpd.conf

查看進程是否啟動

#?ps aux | grep thttpd


#vim throttle.conf
*.jpg|*.gif 50000 # 對所有 jpg gif 限速 5萬字節每秒
*.mpg 20000 # 對訪問所有的 mpg 文件限速 2萬字節每秒
dir/* 20000 # 對訪問 dir/ 目錄下所有文件限速 一秒鐘 2萬個字節


php有 thttpd 編譯選項,可以作為thttpd模塊,這樣就比nginx?lighttpd 的 php-fpm 更節省資源,相應速度要快!但是目前 thttpd 對PHP的支持限于版本的要求,搜索到有一達人有php5.2.11版本的補丁。

# wget http://download2.3tera.net/oss/files/osm/thttpd-2.25b/php-5.2.11-thttpd-2.25b.tar.bz2

# tar jxvf php-5.2.11-thttpd-2.25b.tar.bz2

# cd php-5.2.11

# ./configure --prefix=/usr/local/php-5.2.11 --with-thttpd=/usr/thttpd-2.25b

# make &&? make install

?

二.使用GDB調試thttpd

修改configure后的Makefile

默認是

CCOPT =??-O2

修改為

CCOPT =??-g -O0

?

還要修改thttpd.c

增加:

?debug=1;

?if ( ! debug )

之前

?

因為啟用debug,這樣就不會生成守護進程,不然不方便調試!

?

啟用thttpd

#?/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/conf/thttpd.conf

?

附加gdb進程

#gdb -p thttpd-pid

(gdb)? break main

(gdb)? r

(gdb)? l

可見已經可以查看代碼,也可以打印變量。

總結

以上是生活随笔為你收集整理的试验篇--thttpd安装与调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。