轻量型thttpd+php5-程序员宅基地

技术标签: 运维  开发工具  php  

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

 


本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/410900,如需转载请自行联系原作者

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33831673/article/details/89993955

智能推荐

关于查看OCX控件接口和AdobeReader,FoxitReader在页面中展示PDF文件_foxitpdfreader control ocx-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏3次。IE浏览器展示pdf,控件,FoxitReader,FoxitReaderOCX.ocx,classid_foxitpdfreader control ocx

hive 字符串拼接函数_hive 字符串拼接 窗口函数-程序员宅基地

文章浏览阅读10w+次,点赞4次,收藏22次。字符串拼接函数CONCAT()语法: CONCAT(string A, string B…)返回值: string说明:返回输入字符串连接后的结果,支持任意个输入字符串举例:Hive> select concat(‘abc’,'def’,'gh’) from lxw_dual;abcdefgh延伸:指定分割字符的拼接函数CONCAT_WS()_hive 字符串拼接 窗口函数

2017软考 | 正式的培训课开始之前,我该做些什么?-程序员宅基地

文章浏览阅读98次。转眼又到了2017年上半年的软考考试季(5月20日),攻克要塞(公众号ruankao580)与培训结构合作的课程马上就要开始,基于攻克要塞软考团队以往的面授经验,因此,我们就面授课正式开始之前的预习事宜给出若干建议。考点:必须知道,考试所涉及的知识点众多,因此,对考点要有一个综合性的了解,我们不建议马上打开书,而是先看知识点的分布图或翻看教程的目录,初步形成对考试范围..._培训课开始之前怎么说

计算机二级c语言考试真题及答案详解,全国计算机二级c语言考试题-程序员宅基地

文章浏览阅读1k次。在全国的计算机二级考试中,我们会遇到什么样的知识点题目呢?下面是学习啦小编给大家整理的计算机二级c语言考试题目及答案,供大家参阅!计算机二级c语言考试选择题1.下列数据结构中,属于非线性结构的是(  )。A.循环队列B.带链队列C.二叉树D.带链栈2.在面向对象方法中,实现信息隐蔽是依靠(  )。A.对象的继承B.对象的多态C.对象的封装D.对象的分类3.对于循环队列,下列叙述中正确的是(  )。..._下选项中,能用做用户标识符的是( ).【2009年9月】 [单选题] avoidb8_8c_0_d

VFH & VFH+ & VFH*—— Path Planning_matlab vfh算法 路径规划 矢量场直方图-程序员宅基地

文章浏览阅读4.3k次,点赞11次,收藏40次。版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接 最近在学习VFH算法,感觉蛮神奇,特意从维基百科扒来了资料,供学习研究。。。 在机器人技术中,Vector Field Histogram(VFH,向量场直方图)是Johann Borenstein和Yoram Koren在1991年提出的一种实时路径规划算法。VFH通过所谓的直方图网格利用机器人环境的统计表示,因此非常重视处理来自传感器和建模误差的不确定性。与..._matlab vfh算法 路径规划 矢量场直方图

win10下安装基于caffe的 Faster-Rcnn-程序员宅基地

文章浏览阅读485次。安装教程  本篇博客将会教会你在Windows下配置py-faster-rcnn,请细心仔细阅读。说白了,Windows下配置这些东西就是一个坑。安装配置Anaconda  由于py-faster-rcnn要用到python,这里我们使用了Anaconda,Anaconda版本为Anaconda2-4.3.1-Windows-x86_64.exe,Anaconda下载地址,..._importerror: no module named rpn.proposal_layer

随便推点

RHCE考试--05、使用 Ansible Galaxy 安装角色_ansible-galaxy install -r requirements.yml-程序员宅基地

文章浏览阅读140次。使用 Ansible Galaxy 和要求文件 /home/greg/ansible/roles/requirements.yml。http://materials/haproxy.tar 此角色的名称应当为 balancer。http://materials/phpinfo.tar 此角色的名称应当为 phpinfo。_ansible-galaxy install -r requirements.yml

Spring中JDK动态代理和CGLIB动态代理的性能比较-程序员宅基地

文章浏览阅读141次。新项目开始之前领导让研究下公司原有的框架(基于struts1.2.9+spring2.0.6),比较古老了。读service基类时发现竟然将request穿透到了service层(request为BaseService的实例变量),这样service就变成了有状态Bean,使service层变成了非线程安全,导致用Spring容器管理service的时候不得不使用prototype的sco..._springboot 2.* 动态代理速度比较

window服务器环境将springboot项目 jar包注册成一个window服务自启动_springboot windows注册服务-程序员宅基地

文章浏览阅读1.6k次。window服务器环境将springboot项目 jar包安装成一个window服务自启动_springboot windows注册服务

北京科技大学计算机实践报告,北京科技大学计算机实践报告附加资料-Book5-程序员宅基地

文章浏览阅读115次。北京科技大学计算机实践报告附加资料Excel 文档学生期末考试成绩单学号 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 最高分 最低分 平均分 姓名 name1 name2 name3 name4 name5 name6 name7 name8 ..._03:0004:0005:0006:0007:0008:0009:0010:0011:0012:0013:0014:0015:00十團

Appium Android 自动化测试 -- 元素定位_appium自动化测试元素定位-程序员宅基地

文章浏览阅读281次。自动化测试元素定位是难点之一,编写脚本时会经常卡在元素定位这里,有时一个元素能捣鼓一天,到最后还是定位不到。_appium自动化测试元素定位

缓冲区溢出攻击_java缓冲区溢出攻击-程序员宅基地

文章浏览阅读154次。核心:通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序\color{red}{通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序}通过数组越界,更改函数的返回地址,进而使得程序跳转到黑客指定地址,执行恶意程序如果了解函数调用时的栈帧结构的话,这很容易理解如果完全不懂的可以参考这篇文章:函数调用过程这里再解释一下,数组越界修改返回地址..._java缓冲区溢出攻击