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 文件夹,下面有三个配置文件:
配置文件 | 说明 | 备注 |
---|
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 部署需要使用docker和docker-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
然后在这个文件的目录执行:
docker-compose up -d
执行后查看chevereto是否成功启动:
启动后在浏览器输入htpp://自己的ip:8082 ,初始化chevereto。初始化后,找到API里面的Key:
拿到这个Key之后,就可以使用到web服务器 中。
2.1.2 部署web服务器
上述部署好chevereto 后,就可以开始部署web服务器了。服务器依赖MySQL(请自行安装)。
修改配置
需要修改web服务器的数据库配置和chevereto的配置:
数据库需要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 编译
-
进入my-chat-server 目录,执行: cmake .
-
上述执行没问题的话,执行: make
make执行成功后,会在my-chat-server/bin 下生成两个可执行文件:chat_server 和file_server
2.2.3 修改配置
在my-chat-server/etc 文件夹下有两个配置:chatserver.conf 和filesever.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
可以看到服务器都成功运行:
三、其他
- 在编译服务器的过程中可能会出现数据库的头文件不存在、编译出错等等问题,可自行上网搜索解决。
- 在运行过程中如果有问题,可以将服务器直接运行,打日志到控制台,方便查看运行时的问题。
|