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

C++入门项目:Linux下C++轻量级Web服务器 跑通|运行|测试(小白进)

TinyWebServer是一个开源的项目,适合小白入门C++网络编程,注意该项目是在linux系统下。

Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.

  • 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和Proactor均实现) 的并发模型
  • 使用状态机解析HTTP请求报文,支持解析GET和POST请求
  • 访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件
  • 实现同步/异步日志系统,记录服务器运行状态
  • 经Webbench压力测试可以实现上万的并发连接数据交换

 本文参照README(TinyWebServer::fire: Linux下C++轻量级WebServer服务器 - GitCode)、网上博文(c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)-CSDN博客,WebServer 跑通/运行/测试(详解版)_webserver测试-CSDN博客),结合自己的实现过程,进行详细的梳理,适合小白看。

1、 配置环境

检查是否有git,还有g++编译器 

 git --version

 g++ --version

 2、克隆源码

 先给出clone命令,下面讲怎么clone

sudo git clone https://gitcode.com/gh_mirrors/ti/TinyWebServer.git 

 ​​ 在克隆的时候输入要clone项目的连接,连接在官网上找 我用的是镜像地址

下面的地址是GitHub官网

链接:GitHub - qinguoyi/TinyWebServer: :fire: Linux下C++轻量级WebServer服务器 

进入项目主页,点击clone -> 复制链接 ->粘贴到控制终端

github上也是一样的 

安装MYSQL,安装好还需要设置MYSQL密码 我的电脑里原本就有mysql  所以就没有这一步

sudo apt-get mysql-server

 进去mysql  

sudo mysql  -uroot -p

 创建一个hx数据库 -> 选择创建的数据库hx -> 创建表user -> 添加用户名字和密码等数据

 项目作者给了MYSQL的语句,可以在README看 

// 建立yourdb库
create database yourdb;

// 创建user表
USE yourdb;
CREATE TABLE user(
    username char(50) NULL,
    passwd char(50) NULL
)ENGINE=InnoDB;

// 添加数据
INSERT INTO user(username, passwd) VALUES('name', 'passwd');

 创建完毕,可以查看你建的数据库

show tables; 

select *from user;

3、编译tinywebserver

首先需要确认main.cpp里的数据库和你mysql数据库配置相同。
查看数据库名称和密码

    cd /etc/mysql
    sudo vim debian.cnf

 输入以上命令,就会出现一下页面

找到clone 下来的TinyWebServer项目 找到main.cpp文件(一般都在主目录下面),然后打开,可以在控制台打开,也可以以文件的方式打开

 注意 如果clone的项目文件被锁了 不能进行写操作,这时候需要解锁,使用一下命令

sudo chmod -R 777 TinyWebServer

 改了权限之后才能对main.cpp文件进行写操作

然后修改main.cpp文件脚本,使用文本编辑器打开main.cpp 方便修改

 最后对应之前数据库的用户名和密码 修改main.cpp中的 数据库信息

 修改后 2,编译Tinywebserver(编译运行)

cd Tinywebserver
sh ./build.sh

如果出现以上问题;就需要安装libmysqlclient-dev 

 pt-get install libmysqlclient-dev

如果安装上面的链接库也出现了问题(没有出问题 就直接跳过这里)

就需要安装libssl-dev

  pt-get install libssl-dev

 如果还是报错 报错依赖问题 像像下面这种

 解决方法就是:使用aptitude软件包管理来安装:

然后再安装 libmysqlclient-dev 

 

安装成功后 输入sh ./build.sh

此时他会创建server文件

最后在命令行输入 ./server

 ./server

 没有退出 就是保持链接的 

 4、浏览器查看效果

在浏览器搜索框 输入ip:9006就可以进行登录注册操作了(输入localhost:9006)

 

 

 

 以上就是跑通整个项目的流程 

下面将会详解 整个项目的代码、实现原理


http://www.kler.cn/a/292219.html

相关文章:

  • reduce-scatter:适合分布式计算;Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响
  • The 3rd Universal CupStage 15: Chengdu, November 2-3, 2024(2024ICPC 成都)
  • Essential Cell Biology--Fifth Edition--Chapter one (6)
  • Linux 命令行配置为单臂旁路由。
  • Ubuntu24.04上安装和配置MariaDB
  • 在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5
  • 【FreeRTOS】内存管理
  • bug“医典”
  • Prometheus与Grafana入门:从安装到基础监控的完整指南
  • 数字政务行业ITSM案例分析报告
  • Spring Task
  • 基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建
  • ITK-重采样
  • conda迁移windows虚拟环境到linux
  • React应用中的状态管理:Redux vs Context API
  • JVM系列(九) -垃圾对象的回收算法介绍
  • 深度学习回归任务训练代码模版
  • MacOS---IDEA快捷键:生成get/set方法
  • 【C++】手动实现String类的封装(分文件编译)
  • 具身智能猜想 ——机器人进化
  • 一款管理苹果设备的软件iMazing3中文破解安装激活教程
  • Node.js 数据库操作详解:构建高效的数据持久化层
  • 行空板上YOLO和Mediapipe视频物体检测的测试
  • Docker续7:docker部署nmt续1:使用haproxy代理nginx
  • 在Windows系统上部署PPTist并实现远程访问
  • 链表leetcode-1