IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> MySelfQQ部署文档 -> 正文阅读

[系统运维]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. 在运行过程中如果有问题,可以将服务器直接运行,打日志到控制台,方便查看运行时的问题。
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:30:52  更:2022-05-08 08:32:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:29:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码