WebServer 跑通/运行/测试(详解版)

👂 椿 - 沈以诚 - 单曲 - 网易云音乐

目录

🎂前言

🌼跑通

(1)系统环境

(2)克隆源码

(3)安装和配置 Mysql

(4)写 sql 语句

(5)编译 TinyWebServer

(6)压力测试

🌼前置知识


🎂前言

做开源项目,遇到 BUG,先看 issues

项目作者也太好了吧,😃  花了半小时带我解决问题,,

🌼跑通

源码地址👇

qinguoyi/TinyWebServer: :fire: Linux下C++轻量级WebServer服务器 (github.com)

如何跑通    里面👇有点小错误,结合我的博客看吧

c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)-CSDN博客

上面教你如何跑通,测试,运行项目的博客,有点东西没讲清楚,下面结合我自己的过程,补充说明

跑通过程补充

(1)系统环境

(2)克隆源码

建议看完   “(2)克隆源码”  再跟,因为 github.com 的 ip 地址,需要自己去网站查,不要直接跟

先  sudo su   切换   root权限    不要用  sudo,否则有些地方行不通

还是报错 Failed to connect to github.com port 443

所以,还需要到hosts文件增加 github 的 ip 地址

sudo nano /etc/hosts       然后添加下面这2行(然后以后  git clone  直接起飞~)

保存退出

成功👇

如果发现很慢,记得重启网络和电脑(生效)

sudo /etc/init.d/networking restartsudo reboot

依然报错👇

解决方法:

命令行输入      git config --global http.postBuffer 1048576000

再次 git clone,依然报错👇

解决👇

这次又报错    Failed to connect to github.com port 443: 拒绝连接

解决👇

前面犯了个错误,github.com 的 ip 地址不要照搬网上的,因为它会变,得自己去查一下

What Is My IP Address? Free IP Lookup

拉到底下

修改 hosts 文件,保存退出 

终于成功了,而且速度也有 500 k 😃

(上述操作完,第一次还是可能 clone 失败,因为里面有内存较大的图片,请多试几次,就会成功) 

(3)安装和配置 Mysql

注意,下面  sudo  是不对的,要 sudo su 切 root 权限,否则最后 ./server 报错

(重要的事情说 4 遍)

sudo apt-get install mysql-server

密码我设置123456

👇下面初始化,选 y 时,密码记得也设置成 123456 

后面的初始化配置 + 检查mysql状态 + 进入Mysql,没什么好说的,跟着上面的博客就行 

(4)写 sql 语句

没学 Mysql 的,可以先去跟 100 个黑马的视频,然后刷掉 《Mysql必知必会》

具体的过程,跟着 Github 里,README 和 博客 都看一下就行👇

qinguoyi/TinyWebServer: :fire: Linux下C++轻量级WebServer服务器 (github.com)

c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)-CSDN博客

(5)编译 TinyWebServer

根据项目作者所说,不需要到 debian.cnf 去,用户名默认 root,密码就是你自己设置的,比如 123456,数据库就是 yourdb

所以 debian.cnf,不一定对的(但是我会保留下来)(大家可以两种都尝试下)

(反正👇可以

string user = "root";
string passwd = "123456";
string databasename = "yourdb";

debian.cnf 和 main.cpp 中的用户名,密码,数据库要对应(不一定对哦~)

改成

但是最后运行  ./server   时报错:   段错误 (核心已转储)

这个错误有点崩溃,浪费了 4 小时,最后被提醒说,可以到 issues 看看

所以啊,以后得养成看 issues 的习惯

解决过程

解决方案1:失败(loser~

解决方案2:成功(winner!)

权限问题👇  再次感谢项目作者(ง •_•)ง

sudo su  切   root   权限,,接着对应目录  ./server(没有反应代表正常运行 / 成功)

不行的话,就删了重新拉取

按Github里 README,完美搞定(浏览器输入  localhost:9006)

(6)压力测试

语法

原理

看看参数

先测试百度

再测试TinyWebServer

开1个终端,运行webserver

再开1个,webbench测压

🌼前置知识

要会点C++,要会点Linux,要会点Mysql,要会点TCP/IP(计网 / 网络编程的内容)

(1)

【网络编程知识】什么是Socket?概念及原理分析-云社区-华为云 (huaweicloud.com)

(2)小林coding,可以认真看看,不理解的点就用 GPT,Google 解释下

都是面试常考八股,也有利于对 TinyWebServer 的理解

9.2 I/O 多路复用:select/poll/epoll | 小林coding (xiaolincoding.com)  

(3)README

小白视角:一文读懂社长的TinyWebServer | HU (huixxi.github.io)

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

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

相关文章

win11下载Hbuliderx 安装闪退解决教程+安装包分享

在官网下载 目录 在官网下载 出现闪退 下载失败 2.2. 最终在百度网盘里下载了历史版本 2.3. 然后解压文件 2.4. 双击打开 2.5. 安装成功 出现闪退 下载失败 结果下载失败,一下子弹出的下载框就会闪退 2.2. 最终在百度网盘里下载了历史版本 下载的网盘链接: …

黑马苍穹外卖学习Day5

文章目录 Redis学习Redis简介准备工作Redis常用数据类型介绍各数据类型的特点Redis常用命令字符串操作命令哈希操作命令列表操作命令集合操作命令有序集合操作命令通用操作命令 在Java中操作Redis导入Spring Data Redis坐标配置Redis数据源编写配置类,创建RedisTemp…

linux多进程基础(2):僵尸进程以及解决方法wait()函数(大白话解释)

在我的linux多线程多进程基础专栏中,已和大家一起分享了僵尸线程.在这一篇文章中我将分享僵尸进程以及解决方法wait()函数. 1.僵尸进程 什么是僵尸进程呢?用最通俗易懂的话来说就是子进程执行结束的时候其父进程并没有及时回收该子进程导致成为僵尸进程.如果僵尸进程数量较多…

10分钟快速搭建个人博客、文档网站!

本文来分享 8 个现代化前端工具,帮你快速生成个人博客、文档网站! VitePress VitePress 是一款静态站点生成器,专为构建快速、以内容为中心的网站而设计。简而言之,VitePress 获取用 Markdown 编写的源内容,为其应用…

python24.1.13for循环

对列表、字典、字符串等进行迭代 range

Legion R7000 2021(82JW)原装出厂Win10/WIN11系统预装OEM系统镜像

LENOVO联想拯救者R7000 2021款(82JW)笔记本电脑原厂Windows10/11系统 链接:https://pan.baidu.com/s/1m_Ql5qu6tnw62PbpvXB0hQ?pwd6ek4 提取码:6ek4 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、系统属性专属联想的LOGO标…

88.乐理基础-记号篇-反复记号(二)D.C.、D.S.、Fine、Coda

内容参考于:三分钟音乐社 上一个内容:87.乐理基础-记号篇-反复记号(一)反复、跳房子-CSDN博客 下图红色左括号框起来的东西,它们都相对比较抽象一点,这几个词都是意大利语 首先D.C.这个标记,然…

7 - MySQL主从同步|主从同步模式

MySQL主从同步|主从同步模式 MySQL主从同步主从同步介绍主从同步工作过程主从同步结构模式配置主从同步一主一从同步结构一主多从同步结构主从从同步结构主主同步结构 主从同步模式主从同步结构模式复制模式 MySQL主从同步 主从同步介绍 存储数据的服务结构 主服务…

高效便捷的远程管理利器——Royal TSX for Mac软件介绍

Royal TSX for Mac是一款功能强大、操作便捷的远程管理软件。无论是远程桌面、SSH、VNC、Telnet还是FTP,用户都可以通过Royal TSX轻松地远程连接和管理各种服务器、计算机和网络设备。 Royal TSX for Mac提供了直观的界面和丰富的功能,让用户能够快速便…

事关年终奖,速看!年终奖应该如何设定结构,提高激励性?

随着2024年的临近,员工们对于年终奖的发放满怀期待,而企业管理者则又到了大费周章的时候。年终奖的发放方式、内容以及金额,成为困扰每个管理者的难题。为什么年终奖发放后,大家的积极性没有得到提高?该激励的没激励到…

Spring Boot - Application Events 的发布顺序_ApplicationReadyEvent

文章目录 Pre概述Code源码分析 Pre Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent 概述 Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#…

Hades-C2:一款功能强大的纯Python命令控制服务器

关于Hades-C2 Hades-C2是一款功能强大的命令控制服务器,该工具基于纯Python开发,可以帮助广大研究人员快速实现命令控制基础设施的搭建。 当前版本的Hades-C2可以用作安全分析研究或CTF比赛,但功能并不完善,目前该项目仍在积极开…

Trans论文复现:基于数据驱动的新能源充电站两阶段规划方法程序代码!

适用平台:MatlabYalmipCplex/Gurobi; 文章提出了一种电动汽车充电站的两阶段规划方法,第一阶段通过蒙特卡洛法模拟充电车辆需求和电池充放电数据来确定充电站位置;第二阶段通过数据驱动的分布鲁棒优化方法优化充电站的新能源和电池…

【惠友骨科小课堂】拇外翻常见的几个误区,来看看你中了几个?

拇外翻作为常见的足部畸形,在日常生活中困扰着许多人。歪脚趾不仅外观不好看,还会出现疼痛、影响行走运动。但大多数人对于拇外翻的认识都不足常常落入认知误区,快来看看你中了几个? 误区一Q 我都没穿过高跟鞋,怎么也…

爬虫实战丨基于requests爬取比特币信息并绘制价格走势图

文章目录 写在前面实验环境实验描述实验内容 写在后面 写在前面 本期内容:基于requests爬取比特币信息并绘制价格走势图 下载地址:https://download.csdn.net/download/m0_68111267/88734451 实验环境 anaconda丨pycharmpython3.11.4requests 安装r…

MySQL夯实之路-查询性能优化深入浅出

MySQL调优分析 explain;show status查看服务器状态信息 优化 减少子任务,减少子任务执行次数,减少子任务执行时间(优,少,快) 查询优化分析方法 1.访问了太多的行和列&#xff1…

pytorch学习笔记(十)

一、损失函数 举个例子 比如说根据Loss提供的信息知道,解答题太弱了,需要多训练训练这个模块。 Loss作用:1.算实际输出和目标之间的差距 2.为我们更新输出提供一定的依据(反向传播) 看官方文档 每个输入输出相减取…

C++(9)——内存管理

1. 内存分类: 在前面的文章中,通常会涉及到几个名词,例如:栈、堆。这两个词所代表的便是计算机内存的一部分 。在计算机中,对系统的内存按照不同的使用需求进行了区分,大致可以分为:栈 、堆、数…

41k+ stars 闪电般快速的开源搜索引擎 docker安装教程

目录 1.下载 2.启动 成功示例 3.创建索引 4.插入数据 4.1下载数据 4.2插入数据 4.3查看数据 5.官方地址 1.下载 docker pull getmeili/meilisearch:latest 2.启动 mkdir -p /opt/meili_datadocker run -it --rm \-p 7700:7700 \-v /opt/meili_data:/meili_data \ge…

YOLOV7剪枝流程

YOLOV7剪枝流程 1、训练 1)划分数据集进行训练前的准备,按正常的划分流程即可 2)修改train.py文件 第一次处在参数列表里添加剪枝的参数,正常训练时设置为False,剪枝后微调时设置为True parser.add_argument(--pr…