ubuntu上如何移植thttpd

thttpd的特点

thttpd 是一个简单、小巧、便携、快速且安全的 HTTP 服务器。

简单:
它只处理实现 HTTP/1.1 所需的最低限度。好吧,也许比最低限度多一点。
小:
请参阅比较图表。它还具有非常小的运行时大小,因为它不会分叉并且非常小心内存分配。
便携式:
它可以在大多数类Unix操作系统上干净地编译,特别是包括FreeBSD,SunOS 4,Solaris 2,BSD / OS,Linux,OSF。
快:
在典型使用中,它与最好的全功能服务器(Apache、NCSA、Netscape)一样快。在极端负载下,它的速度要快得多。
安全:
它竭尽全力保护 Web 服务器计算机免受来自其他站点的攻击和破坏。
它还具有一个非常有用的功能(基于 URL 流量的限制),这是其他服务器目前没有的。此外,它还支持开箱即用的 IPv6,无需打补丁。

下载thttpd源码

thttpd (acme.com)icon-default.png?t=N7T8https://www.acme.com/software/thttpd/#releasenotes

编译安装

root@ubuntu:/home/app/thttpd# make
root@ubuntu:/home/app/thttpd# make install
mkdir -p /usr/local/sbin
/usr/bin/install -c -m 555 -o bin -g bin thttpd /usr/local/sbin
mkdir -p /usr/local/man/man8
/usr/bin/install -c -m 444 -o bin -g bin thttpd.8 /usr/local/man/man8
for i in cgi-src extras ; do ( \
        cd $i ; \
        pwd ; \
        make  \
        WEBDIR=/usr/local/www \
        CGIBINDIR=/usr/local/www/cgi-bin \
        MANDIR=/usr/local/man \
        WEBGROUP=www \
        install \
    ) ; done
/home/app/thttpd/cgi-src
make[1]: Entering directory `/home/app/thttpd/cgi-src'
mkdir -p /usr/local/www/cgi-bin
rm -f /usr/local/www/cgi-bin/redirect
cp redirect /usr/local/www/cgi-bin/redirect
rm -f /usr/local/man/man8/redirect.8
cp redirect.8 /usr/local/man/man8/redirect.8
rm -f /usr/local/www/cgi-bin/ssi
cp ssi /usr/local/www/cgi-bin/ssi
rm -f /usr/local/man/man8/ssi.8
cp ssi.8 /usr/local/man/man8/ssi.8
rm -f /usr/local/www/cgi-bin/phf
cp phf /usr/local/www/cgi-bin/phf
make[1]: Leaving directory `/home/app/thttpd/cgi-src'
/home/ /app/thttpd/extras
make[1]: Entering directory `/home/app/thttpd/extras'
rm -f /usr/local/sbin/makeweb /usr/local/sbin/htpasswd /usr/local/sbin/syslogtocern
cp makeweb /usr/local/sbin/makeweb
chgrp www /usr/local/sbin/makeweb
chgrp: invalid group: ‘www’
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/ /app/thttpd/extras'
make: *** [installsubdirs] Error 2

遇到报错,别着急

解决方法:
root@ubuntu:/home/app/thttpd# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,tina
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:tina
floppy:x:25:
tape:x:26:
sudo:x:27:tina
audio:x:29:pulse
dip:x:30:tina
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:tina
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
netdev:x:102:
crontab:x:103:
syslog:x:104:
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:tina
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
tina:x:1000:
sambashare:x:124:tina
ftp:x:125:
_cvsadmin:x:126:
tftp:x:127:
root@ubuntu:/home/app/thttpd# addgroup www
Adding group `www' (GID 1001) ...
Done.

root@ubuntu:/home/app/thttpd# cat /etc/group
www:x:1001:
----------------------------------------------------------------
root@ubuntu:/home/app/thttpd# make install
mkdir -p /usr/local/sbin
/usr/bin/install -c -m 555 -o bin -g bin thttpd /usr/local/sbin
mkdir -p /usr/local/man/man8
/usr/bin/install -c -m 444 -o bin -g bin thttpd.8 /usr/local/man/man8
for i in cgi-src extras ; do ( \
        cd $i ; \
        pwd ; \
        make  \
        WEBDIR=/usr/local/www \
        CGIBINDIR=/usr/local/www/cgi-bin \
        MANDIR=/usr/local/man \
        WEBGROUP=www \
        install \
    ) ; done
/home/app/thttpd/cgi-src
make[1]: Entering directory `/home/app/thttpd/cgi-src'
mkdir -p /usr/local/www/cgi-bin
rm -f /usr/local/www/cgi-bin/redirect
cp redirect /usr/local/www/cgi-bin/redirect
rm -f /usr/local/man/man8/redirect.8
cp redirect.8 /usr/local/man/man8/redirect.8
rm -f /usr/local/www/cgi-bin/ssi
cp ssi /usr/local/www/cgi-bin/ssi
rm -f /usr/local/man/man8/ssi.8
cp ssi.8 /usr/local/man/man8/ssi.8
rm -f /usr/local/www/cgi-bin/phf
cp phf /usr/local/www/cgi-bin/phf
make[1]: Leaving directory `/home/app/thttpd/cgi-src'
/home/ /app/thttpd/extras
make[1]: Entering directory `/home/app/thttpd/extras'
rm -f /usr/local/sbin/makeweb /usr/local/sbin/htpasswd /usr/local/sbin/syslogtocern
cp makeweb /usr/local/sbin/makeweb
chgrp www /usr/local/sbin/makeweb
chmod 2755 /usr/local/sbin/makeweb
cp htpasswd /usr/local/sbin/htpasswd
cp syslogtocern /usr/local/sbin/syslogtocern
rm -f /usr/local/man/man1/makeweb.1
cp makeweb.1 /usr/local/man/man1/makeweb.1
cp: cannot create regular file ‘/usr/local/man/man1/makeweb.1’: No such file or directory
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/app/thttpd/extras'
make: *** [installsubdirs] Error 2
root@ubuntu:/home/app/thttpd# cd /usr/local/thttpd/man/
bash: cd: /usr/local/thttpd/man/: No such file or directory

又有报错了,别着急。
解决方法:
root@ubuntu:/usr/local/man# mkdir -p man1

root@ubuntu:/home/app/thttpd# make install
mkdir -p /usr/local/sbin
/usr/bin/install -c -m 555 -o bin -g bin thttpd /usr/local/sbin
mkdir -p /usr/local/man/man8
/usr/bin/install -c -m 444 -o bin -g bin thttpd.8 /usr/local/man/man8
for i in cgi-src extras ; do ( \
        cd $i ; \
        pwd ; \
        make  \
        WEBDIR=/usr/local/www \
        CGIBINDIR=/usr/local/www/cgi-bin \
        MANDIR=/usr/local/man \
        WEBGROUP=www \
        install \
    ) ; done
/home/app/thttpd/cgi-src
make[1]: Entering directory `/home/app/thttpd/cgi-src'
mkdir -p /usr/local/www/cgi-bin
rm -f /usr/local/www/cgi-bin/redirect
cp redirect /usr/local/www/cgi-bin/redirect
rm -f /usr/local/man/man8/redirect.8
cp redirect.8 /usr/local/man/man8/redirect.8
rm -f /usr/local/www/cgi-bin/ssi
cp ssi /usr/local/www/cgi-bin/ssi
rm -f /usr/local/man/man8/ssi.8
cp ssi.8 /usr/local/man/man8/ssi.8
rm -f /usr/local/www/cgi-bin/phf
cp phf /usr/local/www/cgi-bin/phf
make[1]: Leaving directory `/home/app/thttpd/cgi-src'
/home/app/thttpd/extras
make[1]: Entering directory `/home/app/thttpd/extras'
rm -f /usr/local/sbin/makeweb /usr/local/sbin/htpasswd /usr/local/sbin/syslogtocern
cp makeweb /usr/local/sbin/makeweb
chgrp www /usr/local/sbin/makeweb
chmod 2755 /usr/local/sbin/makeweb
cp htpasswd /usr/local/sbin/htpasswd
cp syslogtocern /usr/local/sbin/syslogtocern
rm -f /usr/local/man/man1/makeweb.1
cp makeweb.1 /usr/local/man/man1/makeweb.1
rm -f /usr/local/man/man1/htpasswd.1
cp htpasswd.1 /usr/local/man/man1/htpasswd.1
rm -f /usr/local/man/man8/syslogtocern.8
cp syslogtocern.8 /usr/local/man/man8/syslogtocern.8
make[1]: Leaving directory `/home/app/thttpd/extras'

配置


root@ubuntu:/home/app/thttpd# cat thttpd.conf 
# This section overrides defaults
#chroot
# This section _documents_ defaults in effect
# port=80
port=888
# nosymlink# default = !chroot
# novhost
# nocgipat
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1
#dir=.
dir=/home/app/www
#cgipat=/*.cgi
cgipat=/cgi/*.cgi
logfile=/tmp/thttpd.log
pidfile=/var/run/thttpd.pid
#user=root

启动服务


thttpd -C thttpd.conf -d /home/app/www/ -u root -l /var/log/test_httpd.log

或者
thttpd -C thttpd.conf -l /var/log/test_httpd.log
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/180005.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一道 python 数据分析的题目

python 数据分析的题目。 做题方法:使用 pandas 读取数据,然后分析。 知识点:pandas,正则表达式,py知识。 过程:不断使用 GPT,遇到有问题的地方自己分析,把分析的结果告诉 GPT&am…

【java学习—十四】java动态代理(6)

文章目录 1. 相关概念2. 步骤3. 举例 问题: 假设一个java项目有100个java类,每个java有10个方法,这总共有1000个方法,现在有这样一个需求,需要在每个java方法加上2句话:在方法执行前输出这个方法开始执行&a…

【Web 实战】记一次攻防实战

经典开局一个登录框 由于漏洞应该还未修复。对于数据和相关网址打个码见谅一下 常规思路(爆破) 常规操作进行一波 尝试弱口令然后开始爆破 对于此种有验证码的爆破,可以借用一个bp插件。 captcha-killer-modified-jdk14.jar 具体使用我就…

【数据结构】希尔排序(最小增量排序)

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

Linux下SPI环回测试

文章目录 前言一、回环测试代码1.1 头文件 spidev.h2.2 c代码 spidev_test.c 二、 编译验证2.1 交叉编译2.2 测试 前言 linux下做spi回环测试 一、回环测试代码 1.1 头文件 spidev.h /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /** include/linux/spi…

Vue3:父组件向子组件传值(Props)

背景 在Vue3项目里,页面A(在views文件夹里)需要读取某个接口的数据,而页面A引入的组件a(在components文件夹里)也需要读取该接口的数据为了避免重复读取数据从而造成资源浪费,可以利用传值来实…

halcon识别验证码,先训练后识别

识别验证码图片,使用halcon 21.05 下面代码识别准确率100% 目录 训练,图片打标签使用代码创建分类器;识别验证码,检验识别效果使用“助手”加载训练文件,加载训练分类器,察看收集的字符,训练识别…

软件测试需求分析

1.1 需求的重要性 1.1.1 软件缺陷的8020原则 1) 在软件测试过程中,从需求分析开始到集成测试阶段引入测试手段,能发现所有缺陷的80%;系统测试阶段引入测试手段,能发现剩余缺陷中80%的缺陷;在运行维护阶段经过长…

HTTP 常见的请求头

面试官:说说 HTTP 常见的请求头有哪些? 作用? 一、是什么 HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 …

为什么说MES管理系统是车间层与管理层的桥梁

随着制造业的快速发展,企业对于生产过程中的管理要求越来越高。为了满足这一需求,MES生产管理系统应运而生。MES管理系统作为车间层与管理层之间的桥梁,扮演着至关重要的角色。本文将探讨为什么说MES管理系统是车间层与管理层之间的桥梁。 一…

安装宝塔,使用宝塔自动部署

这里用的是华为云服务器,其实也就是普普通通的一个linux操作系统 首先我们来到宝塔官网地址 宝塔面板下载,免费全能的服务器运维软件 (bt.cn) 翻到下面,会有使用脚本安装的命令。 yum install -y wget && wget -O install.sh https:/…

[已解决]使用order by 排序后的是10 6 7 8 9 而不是 6 7 8 9 10?

问题 sql order by 排序后的为什么 是10 6 7 8 9 而不是 6 7 8 9 10? 思路 在 SQL 中,ORDER BY 默认的排序方式是升序(从小到大)。所以,如果您简单地使用 ORDER BY 对某个列进行排序,它会将数字按照升序排列&#…