CentOS7.9部署HasChat

之前无意中接出到一个开源项目HasChat,看了作者的部署文档,描述的并不是很详细,刚好最近群里有小伙伴在问关于部署的问题,为了给这个开源项目出份力,于是我就写了这么个部署文档

一、环境

1、CentOS7.9
2、Windows10(win7及以上均可)
3、Nodejs 16.19.0
4、Mysql8.x
5、HBuilderX
6、Nginx 1.24.0
7、openssl1.1.1o
8、pcre
9、zlib

二、步骤

1、安装Mysql8,有两种方法,分别是离线和在线安装,请参考我的两个帖子!点击下面的文字可跳转

离线安装Mysql8.x
在线安装Mysql8.x

2、安装Nodejs

1
2
3
4
wget https://nodejs.org/download/release/v16.19.0/node-v16.19.0-linux-x64.tar.gz
tar -zxvf node-v16.19.0-linux-x64.tar.gz
mv node-v16.19.0-linux-x64 /usr/local/node
vim /etc/profile

2.1把下面的代码填到profile最下面,在

i````之上
1
2
3
````
export NODE_HOME=/usr/local/node/
export PATH=$NODE_HOME/bin:$PATH

2.2保存退出并使其生效

1
source /etc/profile

3、安装Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
下载软件包 

wget --no-check-certificate https://nginx.org/download/nginx-1.24.0.tar.gz
wget --no-check-certificate https://www.openssl.org/source/old/1.1.1/openssl-1.1.1o.tar.gz
wget --no-check-certificate https://master.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.zip
wget --no-check-certificate http://www.zlib.net/zlib-1.2.13.tar.gz

解压软件包
tar -zxvf openssl-1.1.1o.tar.gz
unzip pcre-8.32.zip
tar -zxvf zlib-1.2.13.tar.gz
tar -zxvf nginx-1.24.0.tar.gz

编译软件包
mv pcre-8.32 /usr/local
mv zlib-1.2.13 /usr/local
cd openssl-1.1.1o
./config --prefix /usr/local/openssl/
make && make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
安装Nginx

cd
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-stream \
--with-openssl=/usr/local/openssl/ \
--with-pcre=/usr/local/pcre-8.32/ \
--with-zlib=/usr/local/zlib-1.2.13/

4、下载Has-Chat并编译

1
2
git clone https://gitee.com/howcode/has-chat.git
cd has-chat

修改.env.production中的地址
将wss://howcode.online修改成自己的域名,wss://这个前缀不变
https://howcode.online修改成自己的域名,https://这个前缀不变
比如我的域名是chat.zwyk.eu.org,那就将上述的两个修改成chat.zwyk.eu.org即可

1
2
3
4
5
6
7
8
9
10
11
编译打包

npm install
npm run build:prod

也可以使用yarn命令
yarn install
yarn run build:prod

如果没有yarn的话,可以先安装个yarn
npm install yarn

这个时候在目录下会得到一个叫做dist的文件夹,将这个放到www目录下

1
2
mkdir /www
mv dist /www/haschat

5、下载HasChatApp并使用HBuilderX编译打包

1
wget https://gitee.com/howcode/has-chat-app.git

打开HBuilderX导入项目开始编译打包

编译打包1
编译打包1
编译打包1
编译打包1
编译打包1
编译打包1
编译打包1
将h5文件夹上传到/www中并重命名为haschatapp

6、下载HasChatService并配置数据库文件、导入数据库脚本

1
2
3
4
git clone https://gitee.com/howcode/has-chat-service.git
mv has-chat-service /www
cd has-chat-service
npm install

导入数据库脚本到数据库

1
mysql -u root -p

然后输入数据库密码,回车,输入密码是不会显示任何密码字符的

1
2
3
4
5
6
7
8
create database haschat;
use haschat;
source /www/has-chat-service/store/community_comment.sql;
source /www/has-chat-service/store/community_like_record.sql;
source /www/has-chat-service/store/community.sql;
source /www/has-chat-service/store/content.sql;
source /www/has-chat-service/store/history_session.sql;
source /www/has-chat-service/store/user.sql;

编辑后端文件

1
vim app.js

找到数据库信息那一段,填入数据库用户名密码和库名

配置数据库账户信息

1
vim config.js

找到数据库信息那一段,填入数据库用户名密码和库名

配置数据库账户信息

app.js和config.js中的数据库信息都是一样的

7、配置Nginx

先创建一个v_host

1
mkdir -p /usr/local/nginx/conf/v_host

配置nginx.conf

1
vim /usr/local/nginx/conf/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
worker_processes  4;
events {
worker_connections 2048;
}

stream {
upstream socket_server{
server 127.0.0.1:9527 weight=1;
}


server {
listen 3100;
proxy_pass socket_server;
}
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

include /usr/local/nginx/conf/v_host/haschat.conf;
}

在v_host下创建并配置haschat.conf

1
2
3
cd /usr/local/nginx/conf/v_host
touch haschat.conf
vim haschat.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
server {
listen 443 ssl;
charset utf-8;
server_name chat.zwyk.eu.org;
client_max_body_size 300m;
ssl_certificate /usr/local/nginx/cert/chat.zwyk.eu.org.crt;
ssl_certificate_key /usr/local/nginx/cert/chat.zwyk.eu.org.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /usr/local/nginx/logs/chat_access.log;
error_log /usr/local/nginx/logs/chat_error.log debug;
error_page 497 https://chat.zwyk.eu.org$uri?$args;
gzip on;
gzip_comp_level 9;
gzip_types text/css text/plan text/xml application/javascript application/x-javascript application/html application/xml image/png image/jpg image/jpeg image/gif image/webp image/svg+xml;


location /haschat/{
alias /www/haschat/;
try_files $uri $uri/ /haschat/index.html;
index index.html index.htm;

}

location /haschatapp/ {
alias /www/haschatapp/;
try_files $uri $uri/ /haschatapp/index.html;
index index.html index.htm;
}

location /gif/{
root /www/haschat/;
}

location /emo/{
root /www/haschat/;
}




location /api/{
charset utf-8;
proxy_pass http://127.0.0.1:9527;
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
}


location ^~ /socket.io/ {
proxy_pass http://127.0.0.1:9527;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

}
}

8、重启Nginx

1
2
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

将后端设置为服务项并开机自启

1
vim /usr/lib/systemd/system/haschat.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=haschatservice
After=network.target

[Service]
ExecStart=/usr/local/node/bin/node /www/has-chat-service/app.js
WorkingDirectory=/www/has-chat-service/
Restart=always
User=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
1
2
systemctl restart haschat
systemctl enable haschat

9、最后我们就部署完毕了,看下效果图
效果1
效果2
效果3
效果4

觉得不错的话,就用微信扫一扫二维码关注我吧~~

戴戴的Linux

文章目录
  1. 1. 之前无意中接出到一个开源项目HasChat,看了作者的部署文档,描述的并不是很详细,刚好最近群里有小伙伴在问关于部署的问题,为了给这个开源项目出份力,于是我就写了这么个部署文档
  • 一、环境
  • 二、步骤
    1. 0.1. 觉得不错的话,就用微信扫一扫二维码关注我吧~~


  • 本站总访问量 本文总阅读量