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

TinyWebserver的复现与改进(1):服务器环境的搭建与测试

计划开一个新坑, 主要是复现qinguoyi/TinyWebServer项目,并且使用其它模块提升性能。

本文开发服务器配置:腾讯云轻量级服务器,CPU - 2核 内存 - 2GB,操作系统 Ubuntu Server 18.04.1 LTS 64bit

打开端口

需要打开服务器3306、8000-10000端口!

image-20240809211016116

安装MySQL

下载MySQL

sudo apt install mysql-server

确定MySQL已成功下载

image-20240809211509272

查看用户名和密码

sudo cat /etc/mysql/debian.cnf

在这里,我的用户名是 debian-sys-main,密码是 uUakoE1X8Ei6TqLJ

image-20240809211646829

登录MySQL

mysql -u debian-sys-maint -p

image-20240809211815524

如果每次都需要输入用户名和密码,比较麻烦(我的MySQL版本为5.7.35)

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

刷新权限

FLUSH PRIVILEGES;

创建数据库

查看当前数据库

show databases;

image-20240809214227120

建立一个数据库,在这里我建立了一个名为serverdb的数据库

create database serverdb;

切换为该数据库

use serverdb;

创建user表

CREATE TABLE user(username char(50) NULL,passwd char(50) NULL
)ENGINE=InnoDB;

添加数据,这里插入一个用户名为ggbond、密码为123456的数据

INSERT INTO user(username, passwd) VALUES('ggbond', '123456');

下载、修改、编译代码

为了简单起见,本文使用TinyWebServer- raw_version版本

git clone git@github.com:qinguoyi/TinyWebServer.git

修改main.c中的数据库初始化信息

// root 123456修改为你的服务器数据库的登录名和密码
// serverdb修改为你创建的库名
connPool->init("localhost", "root", "123456", "serverdb", 3306, 8);

修改http_conn.cpp中的root路径

// 修改为root文件夹所在路径
const char *doc_root = "/home/TinyWebServer-raw_version/root";

编译代码,其中 10000 是 端口号

./server 10000

make时出现mysql.h找不到的报错,mysql.h:没有那个文件或目录编译中断。

解决方案:缺少libmysqlclient-dev
ubuntu:sudo apt-get install libmysqlclient-dev
centos: yum install mysql-devel

登录网站

http://192.128.121.236:10000

成功跑通项目!

image-20240809225043553

总结

通过项⽬作者的指示,我们终于把项⽬跑起来了,然后就可以对作者的项⽬进⾏功能测试了。

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

相关文章:

  • 【Python】练习题附带答案
  • Springboot集成Proguard生成混淆jar包
  • 什么是NLP分词(Tokenization)
  • 基于深度学习的图像伪造检测
  • Windows11 WSL2 Ubuntu编译安装perf工具
  • 探索算法系列 - 前缀和算法
  • Stable Diffusion绘画 | 提示词基础原理
  • 利用python写一个可视化的界面
  • 第13节课:Web Workers与通信——构建高效且实时的Web应用
  • pam_pwquality.so模块制定密码策略
  • spark3.3.4 上使用 pyspark 跑 python 任务版本不一致问题解决
  • 处理Pandas中的JSON数据:从字符串到结构化分析
  • 国内的 Ai 大模型,有没有可以上传excel,完成数据分析的?
  • Spring: jetcache
  • 什么是分布式事务?
  • 深入Java内存区域:堆栈、方法区与程序计数器的奥秘
  • 【ML】异常检测、二分类问题
  • 8.8-配置python3环境+python语法的使用
  • 高质量WordPress下载站模板5play主题源码
  • 【C++】类的概念与基本使用介绍
  • 基于Python和OpenCV的图像处理的轮廓查找算法及显示
  • 使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!
  • NLP从零开始------8文本进阶处理之文本向量化
  • 【网络编程】字节序,IP地址、点分十进制、TCP与UDP的异同
  • 关于k8s的pvc存储卷
  • 【物联网设备端开发】ESP开发工具:QEMU的使用方法
  • c++中std::endl 和“\n“ 这两个换行符有什么区别
  • http中get和post怎么选
  • 数据分析及应用:快手直播间人员在线分析
  • 【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例