MySelfQQ部署文档

5 篇文章 0 订阅
4 篇文章 0 订阅

MySelfQQ部署文档

本文章是MySelfQQ项目文章内容项目的构建部署文档,有兴趣可以先看看

MySelfQQ包含两个个主要的部分:客户端、服务器。服务器又包含三个服务器,提供不同的功能:web服务器、文件服务器、聊天服务器。

模块说明配置依赖
客户端软件客户端,直接可交互的终端。需要登录才能使用全部功能1. C++
2. Qt5.12.0
web服务器web服务器,提供客户端的数据修改操作和比如更换头像、登录验证等等功能1. Java
2. jdk1.8
3. MySQL 8.0
4. chevereto(图床服务)
文件服务器文件服务器,提供文件传输功能1. C++
聊天服务器聊天服务器,提供核心的语言文字传输功能1. C++
2. MySQL 8.0

一、客户端部署

客户端并无什么前置的依赖,只需要保证Qt版本一致,直接进行编译执行就能生成登录页面。

1.1 客户端连接配置

客户端默认配置连接的是本人的服务器,如果想要修改连接的ip等配置,可以到编译后的文件夹里面找到config文件夹,下面有三个配置文件:

image-20220506151316913

配置文件说明备注
env.ini标识客户端读取的配置是test还是prod。test和prod配置不一样只能设置为test或者prod
prod.ini生产环境配置属性
test.ini测试环境配置属性

可以根据自己的情况,修改配置文件中的配置。比如现在想设置为生产环境,修改各个服务器连接的ip,则可以:

先将env.ini的配置设置为prod

然后更改prod.ini中的各个ip配置:

到这里,如果所有服务器全部启动成功,则应该可以正常使用功能了。配置文件默认配置会连接本人的服务器

二、服务器部署

2.1 web服务器

web服务器主要提供一些增删改查的功能和上传图片的功能。上传图片的功能依赖了开源的图床项目chevereto,所以需要优先部署chevereto

2.1.1 部署chevereto(其实也是一个搭建自己图床的教程)

如果不想自己安装chevereto,可以直接使用本人的图床进行保存图片。

图床地址:http://112.126.73.165:8082/

图床key:b22c35fb12ae074e9d0b852c620de9e0

chevereto部署需要使用dockerdocker-compose(这里请自行安装)。安装好了之后,新建一个文件docker-compose.yml文件:


version: '3'

services:
  db:
    image: mariadb
    volumes:
      - /root/docker/workspace/database/mysql:/var/lib/mysql:rw
    restart: always
    networks:
      - private
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: chevereto_db
      MYSQL_USER: chevereto
      MYSQL_PASSWORD: 123456
    ports:
      - 3306:3306
    container_name: mysql

  chevereto:
    depends_on:
      - db
    image: nmtan/chevereto
    restart: always
    networks:
      - private
    environment:
      CHEVERETO_DB_HOST: db
      CHEVERETO_DB_USERNAME: chevereto
      CHEVERETO_DB_PASSWORD: 123456
      CHEVERETO_DB_NAME: chevereto_db
      CHEVERETO_DB_PREFIX: chv_
    volumes:
      - /root/docker/workspace/chevereto/images:/var/www/html/images:rw
      - /root/docker/workspace/chevereto/conf/php.ini:/usr/local/etc/php/php.ini:ro
    ports:
      - 8082:80    # 这里端口8082可以改成自己想暴露的端口

然后在这个文件的目录执行:

docker-compose up -d  # 启动chevereto

执行后查看chevereto是否成功启动:

启动后在浏览器输入htpp://自己的ip:8082,初始化chevereto。初始化后,找到API里面的Key:

4b588fa783410cf3bd6ab39537fa41ea.png

拿到这个Key之后,就可以使用到web服务器中。

2.1.2 部署web服务器

上述部署好chevereto后,就可以开始部署web服务器了。服务器依赖MySQL(请自行安装)。

修改配置

需要修改web服务器的数据库配置和chevereto的配置:

87c3865ed47a5987ee1be7532d902ce6.png

数据库需要ip和端口需要修改为自己的数据库配置,db名称也需要修改为自己的。

chevereto的配置,url、port和key都需要修改为自己的chevereto的配置。key就是上述教程中需要保存的key。

打可执行jar包

配置修改完后,就需要将程序打成可以执行的jar包,打包可以直接使用maven进行打包,具体操作如下:

打包后,在项目的target目录下,能找到一个打好的jar包。将jar包上传到服务器后,运行命令:

nohup java -jar xxxx.jar > webserver.log &

启动服务器,如果依赖没问题,web服务器就启动成功了。

2.2 文件服务器(fileserver) & 聊天服务器(chatserver)

文件服务器和聊天服务器编译部署的流程基本一致,下文就直接以聊天服务器为例进行部署说明。

聊天服务器依赖数据库,该数据库和web服务器依赖的数据库应该为同一个数据库,文件服务器不依赖数据库。

2.2.1 安装依赖

安装cmake、makefile和g++

作系统是 Linux,推荐的版本是 CentOS 7.0 以上。服务器代码使用纯C++11开发,所以您的gcc/g++版本必须至少在4.7以上,推荐的版本是4.8.5。另外,使用cmake和makefile工具进行项目管理和编译,因此您需要安装cmake和makefile工具。

数据库,MySQL

聊天服务器的数据库和web服务器的数据库使用同一个,上面如果安装好了这里不需要再安装。

首次启动chatserver需要将数据库和表都初始化好,建表语句在my-chat-server/etc/table.sql中,登录MySQL执行以下建表语句就行。

2.2.2 编译
  1. 进入my-chat-server目录,执行:

    cmake .
    
  2. 上述执行没问题的话,执行:

    make
    

    make执行成功后,会在my-chat-server/bin下生成两个可执行文件:chat_serverfile_server

2.2.3 修改配置

my-chat-server/etc文件夹下有两个配置:chatserver.conffilesever.conf。用于配置服务器监听的端口和连接的数据库配置。

2.2.4 启动

依赖安装好、编译成功、配置修改好后,就可以启动服务器了。启动命令:

nohup bin/chat_server > chat_server.log &
nohup bin/file_server > file_server.log &

启动需要在my-chat-server目录下执行。

nohup: 在一个新终端执行这个命令,防止连接结束后程序自动结束
> chat_server.log : 日志重定向到chat_server.log文件
& : 后台运行

2.3 部署结果

三个服务器构建运行后,检查一下是否成功运行,运行命令:

ps -ef | grep erver

可以看到服务器都成功运行:

三、其他

  1. 在编译服务器的过程中可能会出现数据库的头文件不存在、编译出错等等问题,可自行上网搜索解决。
  2. 在运行过程中如果有问题,可以将服务器直接运行,打日志到控制台,方便查看运行时的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值