当前位置: 首页 > 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

总结

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

相关文章:

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

计划开一个新坑, 主要是复现qinguoyi/TinyWebServer项目,并且使用其它模块提升性能。 本文开发服务器配置:腾讯云轻量级服务器,CPU - 2核 内存 - 2GB,操作系统 Ubuntu Server 18.04.1 LTS 64bit 打开端口 需要打开服务器3306、80…...

【Python】练习题附带答案

1、使用for循环实现输出9*9乘法表 代码: 2、写代码实现累乘计算器。 示例:用户输入:5*9*87输出答案:3915 代码: 3、写代码实现,循环提示用户输入的内容(Q/q终止循环),…...

Springboot集成Proguard生成混淆jar包

背景 当我们需要将 JAR 包交付给第三方时,常常担心代码可能会被反编译。因此,对 JAR 包进行混淆处理显得尤为重要。 市面上有许多 JAR 包源码混淆工具,但真正能稳定投入使用的并不多。例如,ClassFinal (ClassFinal: Java字节码加…...

什么是NLP分词(Tokenization)

在自然语言处理和机器学习的领域里,咱们得聊聊一个超基础的技巧——就是“分词”啦。这个技巧啊,就是把一长串的文字切分成小块,让机器能更容易地“消化”。这些小块,不管大小,单个的字符也好,整个的单词也…...

基于深度学习的图像伪造检测

基于深度学习的图像伪造检测主要利用深度学习技术来识别和检测伪造的图像内容,尤其是在生成对抗网络(GAN)等技术发展的背景下,伪造图像的逼真程度大大提升。图像伪造检测在信息安全、隐私保护、司法鉴定等领域具有重要意义。以下是…...

Windows11 WSL2 Ubuntu编译安装perf工具

在Windows 11上通过WSL2安装并编译perf工具(Linux性能分析工具)可以按以下步骤进行。perf工具通常与Linux内核一起发布,因此你需要确保你的内核版本和perf版本匹配。以下是安装和编译perf的步骤: 1. 更新并升级系统 首先&#x…...

探索算法系列 - 前缀和算法

目录 一维前缀和(原题链接) 二维前缀和(原题链接) 寻找数组的中心下标(原题链接) 除自身以外数组的乘积(原题链接) 和为 K 的子数组(原题链接) 和可被 …...

Stable Diffusion绘画 | 提示词基础原理

提示词之间使用英文逗号“,”分割 例如:1girl,black long hair, sitting in office 提示词之间允许换行 但换行时,记得在结尾添加英文逗号“,”来进行区分 权重默认为1,越靠前权重越高 每个提示词自身的权重默认值为1,但越靠…...

利用python写一个可视化的界面

要利用Python编写一个可视化界面,你可以使用一些图形库来实现,例如Tkinter、PyQt、wxPython等。以下是一个使用Tkinter的示例代码: import tkinter as tk# 创建一个窗口对象 window tk.Tk()# 定义一个按钮点击事件的处理函数 def buttonCli…...

第13节课:Web Workers与通信——构建高效且实时的Web应用

目录 Web Workers简介Web Workers的基本概念创建和使用Web WorkersWeb Workers的应用场景 WebSocket通信WebSocket的基本概念创建和使用WebSocketWebSocket的应用场景 实践:使用Web Workers和WebSocket示例:使用Web Workers进行大数据集处理示例&#xf…...

pam_pwquality.so模块制定密码策略

目录 设置密码策略的方法pam_pwquality.so配置详解pam_pwquality.so默认密码规则pam_pwquality.so指定密码规则问题补充设置密码策略的方法 这篇文章重点讲通过pam_pwquality.so模块配置密码策略 指定pam_pwquality.so模块参数Centos7开始使用pam_pwquality模块进行密码复杂度…...

spark3.3.4 上使用 pyspark 跑 python 任务版本不一致问题解决

问题描述 在 spark 上跑 python 任务最常见的异常就是下面的版本不一致问题了: RuntimeError: Python in worker has different version 3.7 than that in driver 3.6, PySpark cannot run with different minor versions. Please check environment variables PY…...

处理Pandas中的JSON数据:从字符串到结构化分析

在数据科学领域,JSON作为一种灵活的数据交换格式,被广泛应用于存储和传输数据。然而,JSON数据的非结构化特性在进行数据分析时可能会带来一些挑战。本文将指导读者如何使用Pandas库将DataFrame中的JSON字符串列转换为结构化的表格数据&#x…...

国内的 Ai 大模型,有没有可以上传excel,完成数据分析的?

小说推文AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 有啊!智谱清言、KiMI、豆包都可以做数分,在计算领域尤其推荐智谱清言,免费、快速还好使&a…...

Spring: jetcache

一、介绍 JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL(‌Time To Live,‌即缓存生存时间)‌、两级缓存、分布式自动…...

什么是分布式事务?

分布式事务跨越多个系统,确保所有操作一起成功或失败,这对于在现代计算环境中跨不同地理位置分离的资源维护数据完整性和一致性至关重要。 1. 为什么需要分布式事务? 分布式事务的需求源于确保分布式计算环境中多个独立系统或资源之间的数据…...

深入Java内存区域:堆栈、方法区与程序计数器的奥秘

引言 在Java开发过程中,合理地管理和利用内存资源对于提高程序的运行效率至关重要。特别是在大型项目或高并发场景下,一个小小的内存泄漏就可能导致整个系统崩溃。因此,掌握Java内存区域的相关知识,不仅能帮助我们更好地理解程序…...

【ML】异常检测、二分类问题

【ML】异常检测、二分类问题 1. 异常检测、二分类问题1.1 异常检测(Anomaly Detection)1.2 二分类问题(Binary Classification)1.3 异常检测与二分类问题的对比1.4 总结 2. 模型额训练与评估3. 为什么会出现比较高的误识别&#x…...

8.8-配置python3环境+python语法的使用

1.环境 python2 ,python3 [rootpython ~]# yum list installed|grep python ​ ​ [rootpython ~]# yum list installed|grep epel epel-release.noarch 7-11 extras ​ #安装python3 [rootpython ~]# yum -y install python3…...

高质量WordPress下载站模板5play主题源码

5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…...

前端实战:动态修改SVG图片颜色的5种高效方法

1. 为什么需要动态修改SVG颜色? 在Web开发中,SVG(可缩放矢量图形)已经成为不可或缺的一部分。相比传统的位图格式,SVG具有无限缩放不失真、文件体积小、支持交互和动画等优势。但最让我惊喜的是它的可编程性 - 我们可…...

HarmonyOS 6学习:Canvas实现圆角矩形进度条

在HarmonyOS应用开发中,进度条是展示任务进度、加载状态和数据可视化的重要组件。虽然系统提供了Progress组件,但在需要高度定制化、复杂视觉效果或特殊交互的场景下,开发者常常面临以下困境:样式限制:Progress组件难以…...

百考通:AI精准赋能开题报告,让学术研究全流程智能化

对于每一位学子与科研人而言,开题报告是学术研究的“第一粒扣子”,它不仅是研究方向的蓝图,更是顺利推进论文写作、获得导师认可的关键。然而,选题迷茫、文献梳理繁琐、逻辑框架搭建困难等问题,常常让开题之路步履维艰…...

ViGEmBus虚拟游戏控制器驱动:Windows游戏手柄模拟终极指南

ViGEmBus虚拟游戏控制器驱动:Windows游戏手柄模拟终极指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是Windows系统内核级别的虚拟…...

西门子PID调节仿真程序:1200/1500 PLC 的学习利器

西门子PID调节仿真程序1200plc和1500plc通用,只需一个PLC实物,就能轻松实现PID工艺对象的仿真,是学习PID的参数的好工具。针对这套程序,录制了一段视频解说,手把手教你如何使用博途PID调节工具和触摸屏PID画面的操作。…...

Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测

Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,在数学解题和逻辑分析方面展现出惊人的能力。与通用聊天模型不同,它专为多步推理和精确结论而…...

Qwen-Ranker Pro入门指南:语义热力图折线趋势与得分分布解读

Qwen-Ranker Pro入门指南:语义热力图折线趋势与得分分布解读 你用过搜索引擎吗?有没有遇到过这种情况:明明输入了很具体的问题,但搜出来的结果,排在前面的总是一些“看起来”关键词匹配,但实际内容完全不沾…...

Loop:3分钟快速掌握Mac窗口管理终极方案

Loop:3分钟快速掌握Mac窗口管理终极方案 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop Loop是一款免费开源的Mac窗口管理工具,通过径向菜单和智能快捷键系统,让窗口…...

UE5-MCP终极教程:3步实现AI自动化游戏场景创作

UE5-MCP终极教程:3步实现AI自动化游戏场景创作 【免费下载链接】UE5-MCP MCP for Unreal Engine 5 项目地址: https://gitcode.com/gh_mirrors/ue/UE5-MCP 你是否曾梦想过用一句话就能创造出令人惊叹的游戏场景?UE5-MCP(Unreal Engine…...

拆解RTX4090 24G GPU服务器,一文摸清硬件搭配逻辑

RTX4090 24G GPU凭借NVIDIA Ada Lovelace架构优势,以16384个CUDA核心、24GB GDDR6X显存、1008GB/s显存带宽的核心参数,成为个人开发者、中小企业、科研机构的首选算力核心,广泛应用于大模型训练、AI推理、工业仿真、视频渲染等场景。据IDC 20…...