嘘~ 正在从服务器偷取页面 . . .

Tyloo-chat 聊天室部署教程


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 环境的直接下载双击安装就可以。

下载链接:

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环境

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 

大功告成!

可以去聊天室玩耍了~



版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Small-Rose / 张小菜 !
评论
  目录