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
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java王大师王天师】关注有礼博客模板

【点我-这里送书】 本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的…

[LeetCode]-225. 用队列实现栈-232. 用栈实现队列

目录 225. 用队列实现栈 题目 思路 代码 232. 用栈实现队列 题目 思路 代码 225. 用队列实现栈 225. 用队列实现栈 - 力扣(LeetCode)https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目 请你仅使用两个队列实现一个后…

内网如何使用Python第三方库包(举例JustinScorecardPy)

内网如何使用Python第三方库包 一、下载python whl文件(官网有的) 1、第一种方法 要直接下载whl文件,你可以按照以下步骤操作: 首先,访问 https://pypi.org/ 或 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站。这两个都是Python的官方…

迈巴赫S480升级流星雨大灯 最高配的数字大灯

“流星雨”数字大灯,极具辨识度,通过260万像素的数字微镜技术,实现“流星雨”仪式感与高度精确的光束分布;在远光灯模式下,光束精准度更达之前84颗LED照明的100倍,更新增坡道照明功能,可根据导航…

YOLOv5改进 | 添加CA注意力机制 + 增加预测层 + 更换损失函数之GIoU

前言:Hello大家好,我是小哥谈。在小目标场景的检测中,存在远距离目标识别效果差的情形,本节课提出一种基于改进YOLOv5的小目标检测方法。首先,在YOLOv5s模型的Neck网络层融合坐标注意力机制,以提升模型的特…

Linux离线安装cuda以及配置其环境

cuda安装 cuda版本适配 查看自己电脑所支持的cuda版本号 【若安装超算平台上的cuda toolkit这一步骤可以跳过】 CUDA toolkit Download官网下载cuda toolkit 下载好的.run可执行文件上传到平台进行离线安装 $ cd /上传的目录 $ chmod x cuda_12.2.2_535.104.05_linux.run /…

C++进阶-STL stack容器的简单认识

STL stack容器的简单认识 stack基本概念stack常用接口构造函数赋值操作数据存取大小操作 stack基本概念 stack是一种 先进后出 (First In Last out, FILO)的数据结构,它只有一个出口 栈只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 栈中进…

golang工程组件——redigo使用(redis协议,基本命令,管道,事务,发布订阅,stream)

redisgo redis 与 client 之间采用请求回应模式,一个请求包对应一个回应包;但是也有例外,pub/sub 模 式下,client 发送 subscribe 命令并收到回应包后,之后被动接收 redis 的发布包;所以若需要使 用 pub/s…

基于php js+mysql+laravel技术架构的手术麻醉管理系统源码 手麻系统源码

PHP手术麻醉管理系统源码 手麻系统源码 手术麻醉管理系统定义: 手术麻醉系统主要是由麻醉信息管理和监护设备数据采集系统两个部分组成,主要是将麻醉信息和从监护仪器上采集到的数据以及手术信息进行统计。 手术麻醉系统是指专用于住院患者手术与麻醉…

VueCli 自定义创建项目及配置

一、VueCli 自定义创建项目 1.安装脚手架 (已安装) npm i vue/cli -g2.创建项目 vue create hm-exp-mobile选项 Vue CLI v5.0.8 ? Please pick a preset:Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint) > Manually select features 选自定义手动…

【我悟了】异常断电导致的文件系统变为只读——案例分析

背景 应领导要求,临时支持其他项目上遇到的一个问题。由于该问题属于未涉及的知识领域,从接触到最终给出方案,也花了我不少精力。在此进行分享,主要介绍在面对不熟悉的问题领域时,分析问题的思路。希望能够给年轻的同学…

观点|周鸿祎:大模型真正的竞争在于使其与用户场景相结合

【网易科技11月9日报道】目前,人工智能技术尚未达到向手机一样的刚性、高频需求,各国和企业都在加大研发和应用力度,探索不同的技术路线和商业模式。 360集团创始人、董事长周鸿祎在2023世界互联网大会乌镇峰会上表示,目前人工智能…

AI批量剪辑矩阵托管系统----源码技术开发

AI批量剪辑矩阵托管系统----源码技术开发 抖音账号矩阵系统是基于抖音开放平台研发的用于管理和运营多个抖音账号的平台。它可以帮助用户管理账号、发布内容、营销推广、分析数据等多项任务,从而提高账号的曝光度和影响力。 具体来说,抖音账号矩阵系统可…

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.2)

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.2) 前言基于广义哈密顿系统的一类混沌系统构造1.基本动力学特性分析2.数值分析 总结python代码 前言 续接混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.1&…

RT-Thread Env使用

Env用户手册 Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。 其内置的menuconfig提供了简单易用的配置裁剪工具,可对内核、组件和软件包进行自由裁剪&#xf…

运动耳机推荐,运动耳机哪个牌子好性价比高?哪个运动耳机好?

​无论你是喜欢户外跑步,还是喜欢室内健身,运动耳机都能为你提供强大的音乐动力,帮助你更好地享受运动的过程,边流汗边听歌太畅快了!因此。想了解哪个品牌的运动耳机更适合自己,就来看看我发布的这篇文章吧…

DevOps平台两种实现模式

我们需要一个DevOps平台 要讨论DevOps平台的实现模式,似乎就必须讨论它们的概念定义。然而,当大家要讨论它们的定义时,就像在讨论薛定谔的猫。 A公司认为它不过是自动化执行Shell脚本的平台,有些人认为它是一场运动,另…

4种最常用的LLM应用文本分块策略

在构建 LLM 应用程序时,分块(Chunking)是将大块文本分解成更小的片段的过程。 这是一项重要的技术,一旦我们使用LLM嵌入内容,它有助于优化我们从矢量数据库返回的内容的相关性。 在这篇博文中,我们将探讨它…

2023美团外卖商超药店月销量

数据包含:外卖商超、药店商品月销量、含商品skuid、规格spuid等内容 资源下载 ​​​​​​​https://download.csdn.net/download/WANJIAWEN1002/88444367?spm1001.2014.3001.5503

什么是网络中的服务质量 (QoS)?

什么是服务质量(QoS) 服务质量(QoS)是网络中用于管理质量并确定数据流量传输优先级的机制。它确保不同类型的数据流量,如语音、视频和数据,获得适当的服务水平。其主要目标是使网络和组织能够对流量进行优…