用thttpd做Web Server
发布日期:2021-06-30 19:22:22 浏览次数:2 分类:技术文章

本文共 1152 字,大约阅读时间需要 3 分钟。

httpd是busybox中自带的web server,功能弱,不支持认证和CGI。thttpd和boa都支持认证CGI,功能比较全,Boa是一个单任务的小型http服务器,设计的小型系统不要数据库操作,所以可以使用thttpd作为server.
1. 编译thttpd
    cc=armv5l-linux-gcc ./configure -host=arm.这里设置为交叉编译.
2. make
3. 拷贝 thttpd到osroot/usr/sbin,拷贝contrib/redhat-rpm/thttpd.conf 到osroot/etc,
4. 测试一下thttpd所需要的动态库,readelf -d thttpd
5. 要想运行thttpd,还需要libnss类动态库,thttpd 使用到 NSS (Name Service Switch),因此若没有 libnss类动态库,thttpd 在通过 /etc/passwd 去查询 UNIX user时,会看到:unknown user - usr, 原因是 thttpd 读不到 'usr' 用户,相应的处理代码在thttpd.c 的 main()函数里,这里thttpd可以加入libnss_compat.so和libnss_file.so两个动态库文件.
6. 默认情况下,thttpd不可以运行CGI,特别是动态编译的CGI程序,所以需要修改thttpd.conf的配置:
# This section overrides defaults
dir=/home/httpd/html
#chroot
#屏蔽chroot是为了运行动态编译的CGI
user=httpd# default = nobody
logfile=/var/log/thttpd.log
pidfile=/var/run/thttpd.pid
# This section _documents_ defaults in effect
port=81
#port参数用于更改端口号(可不改,若还运行了别的WEB服务器,则需用不同端口)
# nosymlink# default = !chroot
#symlinks
# novhost
cgipath=/cgi-bin/*
#声明CGI程序的目录,是以dir为根目录的路径
# nothrottles
# host=0.0.0.0
# charset=iso-8859-1
7. 在开发板上为thttpd创建一个独立的用户:httpd,并用此用户创建httpd服务的根目录html
最简单的测试方法不用配置文件,直接输入命令:
thttpd -p 80 -d /home/httpd/html -u root 启动

 

转载地址:https://linuxstyle.blog.csdn.net/article/details/6572348 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:移植 thttpd Web服务器
下一篇:Ubuntu 下安装thttpd Web服务器

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月23日 21时05分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章