首页 > linux > 轻量型thttpd+php5

轻量型thttpd+php5

2010年10月25日 eric 发表评论 阅读评论

thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。thttpd还有一个较为引人注目的特点:基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。
php有 thttpd 编译选项,可以作为thttpd模块,这样就比nginx lighttpd 的 php-fpm 更节省资源,相应速度要快!但是目前 thttpd 对PHP的支持限于版本的要求,今天搜索搜索到有一达人出了php5.2.11版本的补丁。

下载php-5.2.11-thttpd-2.25b

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

下载 thttpd-2.25b

thttpd $> wget http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

1. 创建用户

thttpd $> groupadd -g 33 www
thttpd $> useradd -g 33  www

2. 编译php-5.2.11 作为 thttpd模块

thttpd $> tar jxvf php-5.2.11-thttpd-2.25b.tar.bz2
thttpd $> cd php-5.2.11
thttpd $> ./configure --prefix=/usr/local/php5 --with-thttpd=/root/thttpd-2.25b   #这里我就默认安装的,你需要什么模块自行添加
thttpd $> make
thttpd $> make install

3.安装 thttpd-2.25b

thttpd $> tar zxvf thttpd-2.25b.tar.gz
thttpd $> cd thttpd-2.25b
thttpd $> ./configure --prefix=/usr/local/thttpd
thttpd $> sed -i 's#getline#get_line#g' extras/htpasswd.c            #在这里必须要修改一下htpasswd.c源码,不然会出现
htpasswd.c:52: error: conflicting types for 'getline'
/usr/include/stdio.h:655: error: previous declaration of 'getline' was here
htpasswd.c:52: error: conflicting types for 'getline'
/usr/include/stdio.h:655: error: previous declaration of 'getline' was here
make[1]: *** [htpasswd.o] Error 1
make[1]: Leaving directory `/root/thttpd-2.25b/extras'
make: *** [subdirs] Error 2
原因是getline 已加入 POSIX 2008,可以把extras/htpasswd.c 里面的getline重命名为get_line或别的。
解决错误参考 :http://blog.lytsing.org/archives/387.html
thttpd $> mkdir -p /usr/local/thttpd/man/man1                        # 安装脚本没有这步,不然会报错!
thttpd $> make
thttpd $> make install

3.添加配置

thttpd $> cd /usr/local/thttpd
thttpd $> mkdir {etc,logs}
thttpd $> cd etc
thttpd $> vim thttpd.conf
port=80
user=www
chroot
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=/var/www
cgipat=/usr/local/thttpd/www/cgi-bin/*
thttpd $> vim throttle.conf
*.jpg|*.gif     50000                      # 对所有  jpg gif  限速   5万字节每秒
*.mpg           20000                      # 对访问所有的 mpg 文件限速 2万字节每秒
dir/*             20000                      # 对访问 dir/  目录下所有文件限速 一秒钟 2万个字节

4. 创建启动文件

thttpd $> vim /etc/init.d/thttpd
#!/bin/bash
COMMAND=/usr/local/thttpd/sbin/thttpd
CONFIG=/usr/local/thttpd/etc/thttpd.conf
PID=`cat /usr/local/thttpd/logs/thttpd.pid`
function_start_thttpd()
{
        printf "Starting THTTPD....\n"
        $COMMAND -C $CONFIG 2>&1 >/dev/null&
}
function_stop_thttpd()
{
        printf "Stoping THTTPD....\n"
        kill $PID
}

if [ "$1" = "start" ]; then
        function_start_thttpd
elif [ "$1" = "stop" ];then
        function_stop_thttpd
else
        printf "Usage: thttpd {start|stop}""
fi

5.访问测试
启动服务

thttpd $> /etc/init.d/thttpd start

在另一台电脑打开浏览器输入 IP

thttpd

转载请注明:文章转载自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/278.html

分类: linux 标签: ,
订阅评论
0+7= (必填)