试验篇--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安装与调试相关推荐
- thttpd安装与调试
http://www.acme.com/software/thttpd/ thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方 ...
- 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第一篇)安装调试
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第一篇)安装调试 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大 ...
- 同步发电机励磁调节实验原理_发电机构造、原理、类型、安装、调试、试验、故障解析等所有知识(44个文件)...
发电机构造.原理.类型.安装.调试.试验.故障解析等所有知识(44个文件) 1.柴油发电机组原理 2.柴油发电机基础 3.柴油发电机房设计 4.发电机调试方案 5.发电机定子接地保护 6.发电机的构造 ...
- nodejs安装_nodejs调试全局安装的cli脚本
最近在阅读cordova-cli的源码,想着要是能直接在vscode中打开调试,一步步地查看cordova命令的执行过程,那么将会大大的方便我对其源码的阅读.然而网上找了很多教程,大多都是直接调试本地 ...
- 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感 ...
- 掌握计算机硬件系统的安装和调试,虚拟机技术在计算机系统安装与调试实验中的应用...
摘要:计算机系统安装与调试是<计算机组装与维护>课程中的重要实验项目.但在实际教学过程中,经常会因为受到设备紧张.机房维护管理困难以及硬件设备容易被损坏等因素的影响,而导致计算机系统安装与 ...
- centOS7 LNMP+phpmyadmin环境搭建 第三篇phpmyadmin安装
这篇文章主要介绍了CentOS7 LNMP+phpmyadmin环境搭建,第三篇phpmyadmin安装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 之前我们已经安装了lnmp的环境,现在让我们 ...
- Redis安装与调试
Redis安装与调试 Redis安装与调试linux版本:64位CentOS 6.5 Redis版本:2.8.17 (更新到2014年10月31日) Redis官网:http://redis. ...
- 计算机网络环境及应用系统的安装与调试(Computer network environment and application system installation and debugging)
计算机网络环境及应用系统的安装与调试(Computer network environment and application system installation and debugging) W ...
最新文章
- MySQL中改变相邻学生座位_力扣——换座位(数据库的题
- undefined reference to 'WinMain@16' 的四种情况
- Halcon 标定与准确测量
- 【前端】.easyUI.c#
- Hamburger Steak 贪心-锅子问题-先求最小耗时再贪心
- 「SLAM」十四讲:第1讲 预备知识
- Wondows环境下配置Tomat
- WINDOWS的SHELLCODE编写高级技巧
- linux怎么重启samba服务器,Linux系统怎么重启Samba服务
- oracle12能卸干净吗,oracle卸载干净【设置方案】
- LabView替代软件,ATECLOUD云测试平台测评
- 经营微博的十个经典案例
- vsto 安装成功后打开office word不加载
- C++ -- STL文件解析
- 十年测试老司机带你应对68道面试题---文章转载自 TesterHome
- 笔记本插入网线接口没反应
- 大脑构造图与功能解析_大脑的结构和功能分区_详解人脑构造与功能
- 【Python + selenium】在浏览器打开新页签
- getPhoneNumber 响应 416
- win10如何删除microsoft账户并免密登录
热门文章
- C++ GUI Qt4编程(12)-6.1FindFileDialog
- 【bzoj3879】SvT 后缀数组+倍增RMQ+单调栈
- Linux第六周学习总结——进程额管理和进程的创建
- 新的信息论诞生前的若干问题分析
- linux yum及yum仓库
- leetcode刷题实录:1
- MTM:matlab实现4主函数
- 求某类型变量的大小(是否使用sizeof)
- Matlab错误:Y must be a vector or a character array
- caffe源码分析:layer.hpp分析