TinyHttpd 运行过程出现的问题

最近拉了个 TinyHttpd 的工程下来,不过好像各个都有些改动,最后挑了篇阅读量最多的。工程也是从这里面给的链接下载的。

参考自:https://blog.csdn.net/jcjc918/article/details/42129311

拿下来在编译运行前,按这里说的,需要有些修改:
1、Makefile 文件,如果直接执行 make 的话,你会遇到这个错误:cannot find -lsocket。
解决方法简单说就是在 linux 系统中没有这样一个库,而且这个库在 linux 中的实现位于 libc 中,编译时被默认包含,所以可以直接在 Makefile 中去掉 -lsocket。
2、在 htdocs 文件下,有 cgi 的程序和 html 代码,cgi 是用 perl 写的,但文件中声明的 perl 执行程序位置在我这是错的,我这里 perl 脚本位于 /usr/bin 中(通过终端命令 which perl 可以查看),所以把 cgi 文件中的第一行改为:#!/usr/bin/perl -Tw

随后,直接通过命令 make 编译,然后 ./httpd 运行生成可执行文件。在浏览器输入 localhost:端口号 便能看到网页。

但我浏览器确啥也看不到,后面通过百度,看到有人说
这是因为index.html文件权限的问题,需要通过命令 chmod 666 index.html 修改权限。但是由于文件在虚拟机的共享文件夹里,所以没法修改权限。于是索性把文件移到共享文件夹外,再执行修改权限命令,网页就出现了。

在这里插入图片描述
随后,输入颜色英文,提交查询,但没有效果,并在服务端报 Can’t locate CGI.pm in @INC (you may need to install the CGI module)
解决办法直接以下通过两条命令安装即可
sudo apt install libcgi-ajax-perl
sudo apt install libcgi-application-perl
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值