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 -v3.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:3000xxx.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-ports80和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 大功告成!
可以去聊天室玩耍了~




