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

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

目录

前言

跑通

(1)系统环境

(2)克隆源码

(3)安装和配置 Mysql

(4)写 sql 语句

(5)编译 TinyWebServer

(6)压力测试

前置知识


前言

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

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

WebServer 跑通/运行/测试(详解版)_第1张图片

WebServer 跑通/运行/测试(详解版)_第2张图片

WebServer 跑通/运行/测试(详解版)_第3张图片

跑通

源码地址

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

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

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

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

跑通过程补充

(1)系统环境

WebServer 跑通/运行/测试(详解版)_第4张图片

(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  直接起飞~)

WebServer 跑通/运行/测试(详解版)_第5张图片

保存退出

成功

WebServer 跑通/运行/测试(详解版)_第6张图片

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

sudo /etc/init.d/networking restart

sudo reboot

依然报错

WebServer 跑通/运行/测试(详解版)_第7张图片

解决方法:

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

WebServer 跑通/运行/测试(详解版)_第8张图片

再次 git clone,依然报错

解决

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

解决

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

What Is My IP Address? Free IP Lookup

WebServer 跑通/运行/测试(详解版)_第9张图片

拉到底下

WebServer 跑通/运行/测试(详解版)_第10张图片

WebServer 跑通/运行/测试(详解版)_第11张图片

修改 hosts 文件,保存退出 

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

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

WebServer 跑通/运行/测试(详解版)_第12张图片

(3)安装和配置 Mysql

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

(重要的事情说 4 遍)

sudo apt-get install mysql-server

密码我设置123456

WebServer 跑通/运行/测试(详解版)_第13张图片

WebServer 跑通/运行/测试(详解版)_第14张图片

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

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

WebServer 跑通/运行/测试(详解版)_第15张图片

(4)写 sql 语句

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

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

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

WebServer 跑通/运行/测试(详解版)_第16张图片

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

WebServer 跑通/运行/测试(详解版)_第17张图片

WebServer 跑通/运行/测试(详解版)_第18张图片

(5)编译 TinyWebServer

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

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

(反正可以

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

WebServer 跑通/运行/测试(详解版)_第19张图片

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

WebServer 跑通/运行/测试(详解版)_第20张图片

WebServer 跑通/运行/测试(详解版)_第21张图片

改成

WebServer 跑通/运行/测试(详解版)_第22张图片

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

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

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

解决过程

解决方案1:失败(loser~

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

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

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

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

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

WebServer 跑通/运行/测试(详解版)_第23张图片WebServer 跑通/运行/测试(详解版)_第24张图片WebServer 跑通/运行/测试(详解版)_第25张图片WebServer 跑通/运行/测试(详解版)_第26张图片

(6)压力测试

WebServer 跑通/运行/测试(详解版)_第27张图片

WebServer 跑通/运行/测试(详解版)_第28张图片

语法

WebServer 跑通/运行/测试(详解版)_第29张图片

原理

WebServer 跑通/运行/测试(详解版)_第30张图片

看看参数

WebServer 跑通/运行/测试(详解版)_第31张图片

先测试百度

WebServer 跑通/运行/测试(详解版)_第32张图片

再测试TinyWebServer

开1个终端,运行webserver

WebServer 跑通/运行/测试(详解版)_第33张图片

再开1个,webbench测压

WebServer 跑通/运行/测试(详解版)_第34张图片

前置知识

要会点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)

你可能感兴趣的:(网络编程,C++,web,网络,c++)