如何在CentOS 8上安装Rocket.Chat
Rocket.Chat是使用Meteor构建的免费开源聊天和消息传递应用程序。 它是Slack的替代产品,可让您与其他成员聊天,进行视频和音频通话,创建频道和私人群组,共享文件和文件夹等等。 它是自托管的,可帮助您的团队在台式机和移动设备上交流和共享想法。
在本教程中,我们将向您展示如何在Nentx上将Rocket.Chat部署为CentOS 8上的反向代理。
先决条件
- CentOS 8 VPS。
- 访问root用户帐户(或访问具有root特权的管理员帐户)
步骤1:登录到服务器并更新服务器操作系统软件包
首先,以root用户身份通过SSH登录到CentOS 8服务器:
ssh [email protected]_Address -p Port_number
您将需要用服务器各自的IP地址和SSH端口号替换“ IP_Address”和“ Port_number”。 此外,如有必要,将“ root”替换为管理员帐户的用户名。
在开始之前,您必须确保服务器上安装的所有CentOS软件包都是最新的。 您可以通过运行以下命令来执行此操作:
dnf update -y
步骤2:安装必需的软件包
首先,您需要安装一些在系统中安装Rocket.Chat所需的软件包。
首先,使用以下命令安装EPEL repo:
dnf install epel-release -y
安装EPEL repo后,请使用以下命令安装Nginx Web服务器和开发工具:
dnf install nginx curl GraphicsMagick gcc-c++ -y dnf groupinstall 'Development Tools'
安装所有软件包后,启动Nginx服务并启用它以在系统重新引导时启动:
systemctl start nginx systemctl enable nginx
步骤3:安装Node.js
接下来,您将需要在系统中安装Node.js。 默认情况下,最新版本的Node.js在CentOS 8默认存储库中不可用。 因此,您将需要在系统中启用Node.js模块。 您可以使用以下命令启用Node.js版本12模块:
dnf module enable nodejs:12
接下来,使用以下命令安装Node.js:
dnf install nodejs -y
安装Node.js之后,请使用以下命令验证Node.js的安装版本:
node --version
您应该获得以下输出:
v12.18.4
步骤4:安装和配置MongoDB
Rocket.Chat使用MongoDB作为数据库后端。 因此,您需要将其安装在系统中。
首先,使用以下命令创建一个MongoDB存储库:
nano /etc/yum.repos.d/mongodb-org.repo
添加以下行:
[mongodb-org-3.6]
名称= MongoDB存储库baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck = 1 enabled = 1 gpgkey = https://www.mongodb.org/static /pgp/server-3.6.asc
保存并关闭文件,然后使用以下命令安装MongoDB服务器:
dnf install mongodb-org -y
安装后,请启动MongoDB服务,并使用以下命令使其在系统重新引导时启动:
systemctl start mongod systemctl enable mongod
接下来,您将需要在MongoDB中定义副本集。 您可以使用以下命令进行定义:
nano /etc/mongod.conf
添加以下行:
replication: replSetName: "myreplica01"
保存并关闭文件,然后重新启动MongoDB服务以应用更改:
systemctl restart mongod
接下来,登录到MongoDB shell,并使用以下命令启动副本集:
mongo > rs.initiate()
您应该获得以下输出:
{ "info2" : "no configuration specified. Using a default configuration for the set", "me" : "127.0.0.1:27017", "ok" : 1, "operationTime" : Timestamp(1604905164, 1), "$clusterTime" : { "clusterTime" : Timestamp(1604905164, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
接下来,使用以下命令从MongoDB Shell退出:
myreplica01:SECONDARY> exit
步骤5:安装Rocket.Chat
首先,您需要创建一个单独的用户来运行Rocket.Chat。 您可以使用以下命令创建它:
useradd -m -U -r -d /opt/rocket rocket
接下来,使用以下命令将火箭用户添加到Nginx组:
usermod -a -G rocket nginx
接下来,使用以下命令为/ opt / rocket目录授予适当的权限:
chmod 750 /opt/rocket
接下来,将用户切换为火箭,并使用以下命令下载最新版本的Rocket.Chat:
su - rocket curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
接下来,使用以下命令提取下载的文件:
tar zxf rocket.chat.tgz
接下来,将提取的目录移动到Rocket.Chat:
mv bundle Rocket.Chat
接下来,将目录更改为Rocket.Chat服务器,并使用以下命令安装所需的模块:
cd Rocket.Chat/programs/server npm install
接下来,使用以下命令从火箭用户退出:
exit
步骤6:为Rocket.Chat创建Systemd服务文件
接下来,您将需要创建一个systemd服务文件来管理Rocket.Chat服务。 您可以使用以下命令创建它:
nano /etc/systemd/system/rocketchat.service
添加以下行:
[Unit] Description=Rocket.Chat server After=network.target nss-lookup.target mongod.target [Service] StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocket Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://chat.example.com:3000/ PORT=3000 ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js [Install] WantedBy=multi-user.target
保存并关闭文件,然后使用以下命令重新加载systemd守护程序:
systemctl daemon-reload
接下来,启动Rocket.Chat服务,并使用以下命令使其在系统重启时启动:
systemctl start rocketchat systemctl enable rocketchat
现在,您可以使用以下命令来验证Rocket.Chat的状态:
systemctl status rocketchat
您应该获得以下输出:
● rocketchat.service - Rocket.Chat server Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-11-09 02:01:10 EST; 28s ago Main PID: 65031 (node) Tasks: 11 (limit: 25014) Memory: 573.6M CGroup: /system.slice/rocketchat.service └─65031 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | MongoDB Version: 3.6.20 | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | MongoDB Engine: wiredTiger | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | Platform: linux | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | Process Port: 3000 | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | Site URL: http://chat.example.com:3000/ | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | ReplicaSet OpLog: Enabled | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | Commit Hash: e37d7ba8ed | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | Commit Branch: HEAD | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ | | Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ +------------------------------------------------------+
步骤7:将Nginx配置为反向代理
此时,Rocket.Chat已启动并在端口3000上侦听。接下来,您需要将Nginx配置为反向代理,以使用端口80访问Rocket.Chat。
首先,使用以下命令创建Nginx虚拟主机配置文件:
nano /etc/nginx/conf.d/rocket.conf
添加以下行:
upstream rocketchat_backend { server 127.0.0.1:3000; } server { listen 80; server_name chat.example.com; location / { proxy_pass http://rocketchat_backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
保存并关闭文件,然后重新启动Nginx服务以应用更改:
systemctl restart nginx
步骤8:配置防火墙
接下来,您将需要允许端口80通过Firewalld。 您可以使用以下命令允许它:
firewall-cmd --zone=public --add-port=80/tcp --permanent
接下来,重新加载firewalld以应用更改:
firewall-cmd --reload
第9步:访问Rocket.Chat
现在,打开您的Web浏览器,并使用URL http://chat.example.com访问Rocket.Chat。 您应该看到以下屏幕:
提供您的管理员信息,然后点击 继续 按钮。 您应该看到以下屏幕:
提供您的组织信息,然后单击 继续 按钮。
在下一页上,提供您的服务器信息,然后单击 继续 按钮:
现在,注册您的服务器,然后单击 继续 按钮。 您应该看到以下屏幕:
点击 继续 按钮。 您应该看到以下屏幕:
点击 转到您的工作区。 您应该在以下屏幕中看到Rocket.Chat仪表板:
当然,如果您使用我们的托管产品之一,则不必在CentOS 8上安装Rocket.Chat。
CentOS主机计划,在这种情况下,您可以简单地要求我们的专业Linux管理员为您在CentOS 8上安装Rocket.Chat。 它们全天候24×7可用,将立即处理您的要求。
PS。 如果您喜欢这篇有关如何在CentOS 8上安装Rocket.Chat的文章,请使用左侧的按钮与社交网络上的朋友分享,或者在下面留下您的答复。 谢谢。