• (一)TinyWebServer的环境配置与运行


    Linux下C++轻量级Web服务器,项目来源于:TinyWebServer

    配置环境(为下载代码,编译运行做准备)

    1. 安装VMware

    VMware官网

    选择产品,点击Workstation Pro

    下载试用版(注:需要在官网注册自己的账号)

    下载完成后,双击exe文件

    点击下一步

    同意协议后,继续点击下一步

    更改安装路径,再点击 ”下一步“

    点击 ”下一步“

    点击 ”下一步

    点击“安装”

    点击“完成”

    之后,VMware安装成功,从桌面中双击打开它。

    在 "我有VMware Workstation 17 的许可证密码(H)" 下单方框里面填写 ”JU090-6039P-08409-8J0QH-2YR7F“ ,再点击 ”继续“ 。

    点击“完成”

    之后可以正常使用WMware

    2. 下载Ubuntu安装镜像

    Ubuntu官网

    点击Download

    点击Get Ubuntu Desktop

    往下划,下载22.04.3

    下载后如图所示

    3.安装Ubuntu系统

    VMware中点击创建新的虚拟机

    选择自定义,点击下一步

    点击下一步

    导入Ubuntu,点击下一步

    填一下

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击下一步

    点击完成

    进入VMware,选择开启此虚拟机

    根据需要选择是否将语言设置为中文简体,我这里就直接选择English,然后Install Ubuntu(安装Ubuntu):

    Kyeboard Layout(键盘布局)默认即可:

    Updates and other Software(更新和其它软件)这里,建议把Download updates while installing ubuntu(安装时下载更新) 去掉,把Install third-party software for graphics and wi-Fi hardware and additional media formats(为图形和 Wi-Fi 硬件以及其他媒体格式安装第三方软件)选择上,这里也不会下载很多内容,但是可以在今后的使用年过程中避免浏览器打不开视频、图片等问题。

    因为是安装的的虚拟机,这里直接选择Erase disk and install Ubuntu(擦除磁盘并安装ubuntu)即可

    选择中国即可

    设置计算机名,密码等

    安装完成后点击重启即可:

    进入系统

    4.安装配置mysql

    在终端打开

    安装数据库

    在终端输入以下内容

    1. # 安装mysql
    2. sudo apt upgrade && sudo apt install mysql-server mysql-client libmysqlclient-dev
    3. # 进入mysql
    4. sudo mysql -u root
    5. # 创建用户——这里根据自己所需配置
    6. create user 'starry'@'%' identified by 'root';
    7. # 给新用户符全部权限
    8. grant all on *.* to 'starry'@'%';
    9. # 退出mysql
    10. exit
    11. # 设置mysql远程连接
    12. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    13. # 改成
    14. bind-address = 0.0.0.0
    15. # 重启mysql服务
    16. sudo service mysql restart

    表的创建

    1. # 进入mysql
    2. sudo mysql -u root
    3. # 创建数据库yourdb
    4. create database yourdb;
    5. # 使用数据库yourdb
    6. use yourdb;
    7. # 创建user
    8. CREATE TABLE user(
    9. username char(50) NULL,
    10. passwd char(50) NULL
    11. )ENGINE=InnoDB;
    12. # 添加数据
    13. INSERT INTO user(username, passwd) VALUES('name', 'passwd');

    检查mysql状态

    systemctl status mysql.service
    

    可以利用以下命令查看表和表的内容:

    1. show databases; //可以查看当前的数据库
    2. show users;
    3. select *from user;

    需要先进入mysql环境,再使用以上命令

    进入mysql:

    sudo mysql -uroot -p
    
    5.下载代码,编译运行

    下载到本地

    点击复制链接

    使用git 克隆到本地

    1. # 没有git的使用下面命令(有git忽略此步骤)
    2. sudo apt install git -y
    3. # 执行下面的命令吧项目克隆到本地
    4. git clone https://github.com/qinguoyi/TinyWebServer.git

    此时,桌面出现TinyWebServer文件夹

    进入项目,修改main.cpp文件配置,执行make

    1. cd TinyWebServer
    2. vi main.cpp
    3. make

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

    1. cd /etc/mysql
    2. sudo vim debian.cnf

    然后打开main.cpp修改对应配置(直接在TinyWebServer文件夹点击main.cpp修改即可)

    编译Tinywebserver(编译运行)

    cd Tinywebserver
    
    sh ./build.sh
    

    编译时遇到的错误:fatal error: mysql.h: No such file or directory
    解决方法:安装链接库 apt-get install libmysqlclient-dev

    编译时遇到的错误:g++编译时:No such file or directory

    解决办法:安装g++

    sudo apt-get install g++

    运行可执行文件,访问项目

    1. # 运行
    2. ./server
    3. # 打开浏览器,访问
    4. http://127.0.0.1:9006/

    打开VMware中的浏览器,输入网址后访问

    此时,成功运行项目。

  • 相关阅读:
    【面试题】说说JS中的this指向问题
    【算法】Convert to Base -2 负二进制转换
    Session会话追踪的实现机制
    C语言---单身狗问题
    《网络运维 - 基础知识》
    一道React面试题把我整懵了
    DP-1-01背包问题
    java校园二手书交易管理系统springboot+Vue
    微信小程序-语音输入(录音并播放)
    每日算法刷题Day7-比较字符串大小,去掉多余的空格,单词替换
  • 原文地址:https://blog.csdn.net/weixin_46653651/article/details/133420059