AkiraZheng's Time.

WebServer学习1:部署运行

Word count: 972Reading time: 3 min
2024/02/28

前言

本项目是以Github上的开源项目TinyWebServer作为学习基础

一、环境配置

1. 环境

  • 服务器测试环境
    • Ubuntu版本22.04.1
    • MySQL版本8.0.36
  • 浏览器测试环境
    • Windows、Linux均可
    • Chrome
    • FireFox(本文调试环境为Linux下自带的FireFox)
    • 其他浏览器暂无测试

2. 软件安装

  • 安装VMware和Ubuntu

  • 安装MySQL(中间可能会缺少一些东西,按照提示安装即可)

    • 打开终端输入:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # 安装mysql
    sudo apt upgrade && sudo apt install mysql-server mysql-client libmysqlclient-dev

    # 进入mysql
    sudo mysql -u root

    # 退出mysql
    exit

    # 设置mysql远程连接
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    # 改成
    bind-address = 0.0.0.0
    # 重启mysql服务
    sudo service mysql restart
    • 在终端创建TinyWebServer需要的数据库

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      # 进入mysql
      sudo mysql -u root
      # 创建数据库akiradb,可以改成自己想改的名字
      create database akiradb;
      # 使用数据库akiradb
      use akiradb;
      # 创建user表
      CREATE TABLE user(
      username char(50) NULL,
      passwd char(50) NULL
      )ENGINE=InnoDB;

      # 添加数据
      INSERT INTO user(username, passwd) VALUES('akira', 'akira');
    • 补充:一些常用的mysql命令(mysql语句一般都需要分号;作为结尾)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      # 查看所有数据库
      show databases;

      # 删除数据库akiradb
      drop database akiradb;

      # 查看所有表
      show tables;

      # 选择user表中的所有数据
      select * from user;

      # 删除表user
      drop table user;
    • 退出mysql后在终端查询数据库状态

      1
      2
      # 查看mysql状态
      sudo service mysql status

二、TinyWebServer代码

1. 代码下载

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

2. 代码编译

  • git后项目就会出现在桌面上,进入项目文件夹,修改main.cpp文件配置

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

    • 获得需要的mysql的用户名和密码(需要先按照vim)
      1
      2
         cd /etc/mysql
      sudo vim debian.cnf
    • 修改main.cpp文件
  • 编译运行

    1
    2
    3
    4
    5
    6
    # 进入项目文件夹
    cd TinyWebServer
    # 编译
    make
    # 运行
    ./server

    注意:这里的make指令也可以换成sh ./build.sh

  • 编译时出现错误:

    • fatal error: mysql.h: No such file or directory:安装链接库 apt-get install libmysqlclient-dev
    • g++编译时:No such file or directory:sudo apt-get install g++
  • 运行并用浏览器访问

    • 终端中执行./server
    • 浏览器输入http://localhost:9006即可访问(也可输入回环IP地址,如http://127.0.0.1:9006)

三、Windows下使用ssh+VSCode远程连接Ubuntu

1. 部署Linux和Windows下的VScode环境

2. 在Linux下运行本文代码 && 在Windows下运行本文代码

  • 在Linux下运行本文代码

    • 在VSCode中打开TinyWebServer文件夹
    • 在VSCdoe中打开终端,输入./server运行(如果还没make要先执行make)
    • 浏览器输入http://localhost:9006即可访问
  • 在Linux中将TinyWebServer文件夹另存为一个工作区

  • 在Windows下运行本文代码

    • 根据上面部署视频中打开我们刚才生成的工作区就行
    • 然后同样在Windows下的VSCode中打开终端,输入./server运行(如果还没make要先执行make)

3. VMWare中Ubuntu出现内存不足需要扩容

首先关闭虚拟机,在VMWare中选择编辑虚拟机设置,然后选择处理器和内存,然后打开虚拟机,通过gparted扩容

具体扩容操作参考vmware:ubuntu虚拟机如何扩容?

如果遇到权限不足问题,可以参考GParted给ubuntu系统磁盘resize大小时候出现cannot resize read-only file system解决办法

四、总结

全部部署完就可以开启源代码的学习啦~

CATALOG
  1. 前言
  2. 一、环境配置
    1. 1. 环境
    2. 2. 软件安装
  3. 二、TinyWebServer代码
    1. 1. 代码下载
    2. 2. 代码编译
  4. 三、Windows下使用ssh+VSCode远程连接Ubuntu
    1. 1. 部署Linux和Windows下的VScode环境
    2. 2. 在Linux下运行本文代码 && 在Windows下运行本文代码
    3. 3. VMWare中Ubuntu出现内存不足需要扩容
  5. 四、总结