当前位置: 首页 > news >正文

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
在这里插入图片描述

http://www.lryc.cn/news/67638.html

相关文章:

  • 【Linux】shell编程—数组
  • Maven仓库与Maven插件
  • 【溯源反制】CDN域前置云函数-流量分析|溯源
  • 【Vue】学习笔记-全局事件总线
  • MATLAB数值运算(六)
  • 某医院Pad网络故障分析
  • git 撤销中间某次提交,保留其他提交的方法
  • 空中下载技术(OTA)电控信息安全
  • 数据库sql语句(count(*)和count(字段))
  • 短视频矩阵源码系统
  • 检测数据类型
  • 【2023春招】4399 web后台-Java后端开发
  • 干货分享:PCB防静电设计的必要性
  • 电脑压缩包文件不见了怎么办?2种办法轻松找回电脑丢失文件!
  • 如何申请gpt4.0-如何接入ChatGPT4
  • 设计模式-备忘录模式
  • 阿里、京东等大厂年薪50w的测试都是什么水平?
  • Java PECS(Producer Extends Consumer Super)原则
  • Learn RabbitMQ with SpringBoot
  • 定时器 POSIX Timer定时器和setitimer定时器
  • DeSD:用于3D医学图像分割的深度自蒸馏自监督学习
  • MySQL数据库——MySQL创建触发器(CREATE TRIGGER)
  • Java实现网上人才招聘系统【附源码】
  • jmeter接口测试项目实战详解,零基础也能学,源码框架都给你
  • MySQL中去重 distinct 和 group by 是如何去重的
  • 在职读研是理想还是情怀?你想要的都将在社科大能源管理硕士项目实现
  • 携手共建数字钢铁,Hightopo亮相第三届钢铁展洽会
  • Leetcode2383. 赢得比赛需要的最少训练时长
  • js代码执行过程、调用栈、执行上下文
  • 互联网摸鱼日报(2023-05-12)