Tyloo-chat 聊天室部署详细教程
一、前言
最近几个小伙伴一起搭建聊天室。
废话不多说,先看效果:http://chat.zhangxiaocai.cn/
如果会一点前端,跟着大佬的教程基本上就可以搞定了。
可惜我前端太菜,所以也是天天追着大佬问,终于搞出来了。
可能有跟我一样不懂前端的小伙伴又想搭建,又觉得难,所以这里将安装搭建步骤细化一点,理论上不会有什么问题。
二、Tyloo-chat 项目介绍
GitHub 项目地址:https://github.com/BoBoooooo/tyloo-chat
官方的安装文档: https://github.com/BoBoooooo/tyloo-chat/blob/feature_APIROBOT/deploy.md
按教程操作还是有问题可以进大佬的QQ群提问:289438105
三、环境准备
服务器上必须要有的:
Centos 7 服务器
Node 环境
MySql 环境
Nginx 环境
3.1 安装Node环境
这里是 centos 服务器操作。 如果是你的Windows 环境的直接下载双击安装就可以。
下载链接:
- Windows 版: node-v14.15.3-win-x64.zip
- Linux 版: node-v14.15.3.tar.gz
3.1.1、验证
node -v
如果版本是10之后的,可以跳过,否则安装吧。
3.1.2、在线安装准备
yum clean all && yum makecache fast
yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_10.x | sudo -E bash -
3.1.3、安装
(1)安装
sudo yum install nodejs
(2)验证
node -v
npm -v
3.2 安装MySQL环境
在线安装 MySQL 在线安装
离线安装 MySQL 解压安装
3.3 安装Nginx环境
在线安装Nginx:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
可以使用 search 命令:
yum search nginx
看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。
sudo yum install -y nginx
离线安装里请参考: Nginx 离线安装
四、客户端部署
4.1 编译操作
windows 环境编译客户端代码。
(1)在 windows 环境下载源码:
git clone https://github.com.cnpmjs.org/BoBoooooo/tyloo-chat.git
(2)切换分支:
git checkout feature_APIROBOT
(3)修改 tyloo-chat/client/.env.out
文件
VUE_APP_API_URL=http://xxx.xxx.xxx.xxx:3000
xxx.xxx.xxx.xxx
表示需要改成你的IP或者域名
(4)终端进入 client
目录
cd tyloo-chat/client
如果 node
没有更换镜像可以先配置一下淘宝镜像。
# 先强制清缓存
npm cache clean --force
#运行的npm的指令走的淘宝代理
npm install -g cnpm --registry=https://registry.npm.taobao.org
(5)安装依赖,编译生成。
依次执行以下命令即可:
cnpm i
npm run build
执行成功后,client 目录会生成一个dist
文件夹,可以打个dist.tar
包。
4.2 部署操作
我这里是直接将nginx 的root 指向自己的目录
(1)上传客户端编译文件
上传 dist.tar
到 /home/chat/client_deploy
目录,你也可以使用自己其他目录或者Nginx
默认目录/usr/share/nginx/html/
。
cd /home/chat/client_deploy
# 解压
tar -xvf dist.tar
(2)配置Nginx
vi /etc/nginx/nginx.conf
http {
#避免mime类型丢失导致css样式无法正常加载
include mime.types;
#nginx开启gzip
#前端文件在build的时候已经配置好压缩,需要再配置一下nginx;
gzip on;
gzip_static on;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg
image/gif image/png;
#nginx请求级别配置
server {
listen 80;
server_name chat.zhangxiaocai.cn;
location / {
root /home/chat/client_deploy/dist;
index index.html index.htm;
add_header Cache-Control public;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(3)刷新 Nginx 配置
检查nginx配置:
nginx -t
不报错就直接重新加载
nginx -s reload
五、服务端部署
Linux 环境编译服务端代码。
(1)拉取大佬的代码:
git clone https://github.com.cnpmjs.org/BoBoooooo/tyloo-chat.git
(2)切换分支:
git checkout feature_APIROBOT
(3)然后修改服务端MySQL连接密码
vi tyloo-chat/server/src/app.module.ts
将 password
的值 123456
改成你对自己的数据库密码。
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456',
database: 'chat',
charset: 'utf8mb4', // 设置chatset编码为utf8mb4
autoLoadEntities: true,
synchronize: true
}),
UserModule,
ChatModule,
FriendModule,
GroupModule,
AuthModule
]
})
(4)创建数据库
在MySQL中创建一个
chat
数据库。
首先登录你的MySQL
mysql -uroot -p
输入你的密码后,进入MySQL终端:
查看现有的数据库:
show database;
创建一个 chat
数据库:
create database chat DEFAULT CHARSET utf8mb4;
再次查看,有chat
就说明创建成功了:
show database;
# 退出
exit;
(5)安装依赖,指向编译
好了,可以开始安装依赖然后进行编译了,如果慢的话,也可以配置一下淘宝镜像,使用 cnpm i
安装依赖。
npm i
npm run build
(6)安装pm2
编译成功之后,安装一下pm2
npm i pm2 -g
(7)后台启动Node服务
npm run pm2
验证有没有启动成功:
pm2 ls
查看日志
pm2 logs --lines 200
# 或者
pm2 logs tyloo-chat --lines 200
到此搭建基本完成,但是如果你可能还是不能正常访问,请查看注意事项:
查看端口开放情况
firewall-cmd --zone=public --list-ports
80和443 请自己开放即可。
mysql 需要3306
端口
node 服务需要3000
端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放 3306 端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent # 开放 3000 端口
如果你的是云服务器,请登录你的云服务器控制台,在安全组里出站入站添加相关端口。
几个pm2常用的命令
# 看启动的Node服务列表
pm2 ls
# 启动指定 id 的 node服务
pm2 start [id]
# 停止指定 id 的 node服务
pm2 stop [id]
# 重启指定 id 的 node服务
pm2 restart [id]
# 查看日志
pm2 logs [name] --lines 300
大功告成!
可以去聊天室玩耍了~