jopa

一个强大的多功能团队聊天室:Rocket.Chat安装教程 CentOS 7
添加epel存储库并更新所有内容yum -y install epel-release nano &&am...
扫描右侧二维码阅读全文
08
2018/03

一个强大的多功能团队聊天室:Rocket.Chat安装教程 CentOS 7

添加epel存储库并更新所有内容

yum -y install epel-release nano && yum -y update

使用mongodb存储库填充yum repo

vim /etc/yum.repos.d/mongodb.repo

将其粘贴到新文件中:

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

现在我们需要从yum安装我们的依赖关系:

yum install -y nodejs curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++

现在我们已经安装了Node.js和npm,我们需要安装更多的依赖项:

npm install -g inherits n

推荐使用Rocket.Chat的Node.js版本是8.9.3。使用n我们将安装该版本:

n 8.9.3

安装Rocket.Chat

cd /opt

curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
tar zxvf rocket.chat.tgz

mv bundle Rocket.Chat
cd Rocket.Chat/programs/server

npm install

cd ../..

您可以设置PORT,ROOT_URL和MONGO_URL:

export PORT=3000
export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat

将3000替换为您选择的端口。

如果您选择使用端口80,则需要以root身份运行Rocket.Chat。

如果您没有配置DNS,请使用您的IP代替主机名。稍后可以在管理菜单中更改它。

Mongo
首先让Mongodb使用以下命令启动主机:

chkconfig mongod on

现在我们需要启动mongo:

systemctl start mongod

或为CentOs 6.X

/etc/init.d/mongod start

尝试安装
现在让我们做一个快速测试,看看在我们继续之前是否一切正常。

node main.js

若是报错请看文章底部

通过打开您最喜爱的网络浏览器并输入网址,浏览您的rocket-chat

http://your-host-name.com-as-accessed-from-internet:3000/

将your-host-name.com-as-accessible-from-internet替换为您在ROOT_URL中设置的服务器的IP地址或DNS主机名

现在你已连接:

  • 点击“注册新帐户”
  • 输入管理员的姓名,电子邮件和密码两次。对于我的例子,我输入了:

    • name = Admin
    • 电子邮件= admin @.COM
    • 密码= test1234
  • 点击提交
  • 系统会提示您选择一个用户名。我选择了管理员。
  • 点击使用此用户名继续。
  • 您现在应该以管理员身份登录您的新Rocket.Chat安装。

在你的终端中按Ctrl + C来停止Rocket.Chat。

自动启动Rocket.Chat
现在我们已经安装了所有的依赖关系,并且已经验证了Rocket.Chat的工作原理。我们需要配置Rocket.Chat作为服务启动。

首先我们创建服务文件:

vim /usr/lib/systemd/system/rocketchat.service

在它写:

 [Unit]
 Description=The Rocket.Chat server
 After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
 [Service]
 ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
 StandardOutput=syslog
 StandardError=syslog
 SyslogIdentifier=rocketchat
 User=root
 Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ PORT=3000
 [Install]
 WantedBy=multi-user.target

注意:将Environment中的值替换为上面使用的值。

现在您可以运行以下命令启用此服务:

systemctl enable rocketchat.service

最后通过运行来启动它:

systemctl start rocketchat.service

升级
升级与安装Rocket.Chat非常相似
1.关机Rocket.Chat
2.转到这种情况下的安装文件夹: cd /opt/
3.删除或移动Rocket.Chat文件夹。
4.按照安装部分

执行node main.js时报错

错误1.version `CXXABI_1.3.8' not found (required by ragel)'
找到源码安装gcc的目录(gcc编译器最好还是源码安装)
先find出libstdc++.so.6

find / -name "libstdc++.so*"

进入libstdc++.so.6所在目录(我的是/usr/lib64)

cd /usr/lib64

删掉libstdc++.so.6这个软连接

rm -rf libstdc++.so.6

下载libstdc++.so.6.0.24并建立连接

wget https://img.zhaolog.com/run/jb/libstdc++.so.6.0.24
ln -s libstdc++.so.6.0.24 libstdc++.so.6 && ldconfig

查看:

strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI' 

请输入图片描述

错误2./lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)
环境

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

注意, 以下操作只能保证在CentOS 7系统(且没有升级过glibc)上的可行性, 其他系统没有验证

升级

curl -O http://bbcbackup.oss-cn-shenzhen.aliyuncs.com/run/linux/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz 
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr #注意了,别修改路径
make -j2
make install

升级目标完成

查看

strings /usr/lib64/libc.so.6 | grep ^GLIBC_
最后修改:2018 年 05 月 04 日 01 : 55 PM
如果觉得我的文章对你有用,请随意赞赏

6 条评论

  1. [root@zabbix1 Rocket.Chat]# node main.js
    Updating process.env.MAIL_URL
    Starting Email Intercepter...
    Warning: connect.session() MemoryStore is not
    designed for a production environment, as it will leak
    memory, and will not scale past a single process.
    Setting default file store to GridFS
    LocalStore: store created at
    LocalStore: store created at
    LocalStore: store created at
    connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead npm/node_modules/connect/lib/middleware/bodyParser.js:56:20
    connect deprecated limit: Restrict request size at location of read npm/node_modules/connect/lib/middleware/multipart.js:86:15
    Using GridFS for custom sounds storage
    Using GridFS for custom emoji storage
    ufs: temp directory created at "/tmp/ufs"
    Updating process.env.MAIL_URL
    Loaded the Apps Framework and loaded a total of 0 Apps!
    âž” System âž” startup
    âž” +--------------------------------------------------+
    âž” | SERVER RUNNING |
    âž” +--------------------------------------------------+
    âž” | |
    âž” | Rocket.Chat Version: 0.70.0 |
    âž” | NodeJS Version: 8.9.3 - x64 |
    âž” | Platform: linux |
    âž” | Process Port: 3000 |
    âž” | Site URL: http://192.168.14.8:3000/ |
    âž” | ReplicaSet OpLog: Disabled |
    âž” | Commit Hash: 40b50f3164 |
    âž” | Commit Branch: HEAD |
    âž” | |
    âž” +--------------------------------------------------+

    老师:按照文章设置后,到最后运行node main.js这个命令后,一直是如上的界面等了很久,一直是那样,前面完全按照你的文章做的,不知道错在哪里?

    1. @马

      老师,这个就应该这样对吧?是表示服务器服务启动对吧?另外我问一下想实现音频及视频聊天可以吗?还需要配置吗?

      1. jopa
        @马

        这个说明程序启动成功了,然后将Rocket.Chat作为服务启动,看文档上说是可以进行语音视屏的,不过我没用过,因为手机端很不稳定所以就没用了,你可以在网上找下教程

  2. 老师,能找您付费学习rocketchat吗

    1. jopa
      @马

      搭建还是比较简单的,你可以先按照我的博客来,有什么问题可以留言给我

      1. @jopa

        老师,您好!我问一下想实现音频及视频聊天可以吗?还需要怎么配置吗?

发表评论