我想在Windows上(虚拟机中)搭建RocketChat

我想在Windows上搭建RocketChat。

这只是为了工作方便,搭建聊天环境时所整理出来的bash_history。

为了帮助他人使用。

有一个公式需要遵循的步骤。

我认为,在安装了CentOS之后,您也可以使用以下官方步骤(我在撰写本文时发现的…)。链接如下:
https://github.com/RocketChat/docs/tree/master/installation/manual-installation/centos

前提条件

    • OS(物理PC): Windows10

 

    • VirtualBox: 5.2.6

 

    Vagrant: 2.0.2

完成的环境

    • CentOS(VM): 7.6 (実際に構築したときのversion。)

 

    RocketChat: 1.2.1 (実際に構築したときのversion。記事執筆時点では1.3.0がある模様)

一起为RocketChat构建环境 (To build an environment together for RocketChat)

    • MongoDB: 3.6

 

    Node.js: 8.11.4

请确认这两个版本都是“特定”的版本,需要一致的版本。(如果稍微有差异而继续进行,会产生错误并浪费时间。)请确保安装的RocketChat版本和上述所需的版本一致。

操作步骤

请注意这些事项

只要复制并粘贴命令的部分,基本上都可以。
请确认并更改以下两点:
* ***TODO_CHANGE_HOST_NAME*** (请更改为您想要公开RocketChat的URL。※必需)
* RocketChat、Node.js和MongoDB的版本

首先建立一个虚拟机。

这是在Windows上的工作。假设Virtualbox和Vagrant已安装好。创建一个Vagrantfile并运行vagrant up。

Vagrant.configure("2") do |config|
# Proxy
  config.proxy.http     = "http://proxy:port"
  config.proxy.https    = "http://proxy:port"
  config.proxy.no_proxy = "localhost,127.0.0.1"
# OS
  config.vm.box = "centos/7"
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
  config.vm.network "private_network", ip: "192.168.250.250"
  config.ssh.insert_key = false
# Port forwarding
  config.vm.network "forwarded_port", guest: 3000, host: 3000
# Spec
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = "1"
  end
# Username
  config.ssh.username = "vagrant"
end

在MacOSX中,这个Vagrantfile无法连接到互联网。 (参见另一篇文章链接)

在虚拟机上进行操作。

登录虚拟机。(vagrant ssh)

需要安装RocketChat所需的各种组件。

以下命令是安装 MongoDB:3.6 和 Node.js:8.11.4 的命令。如果要安装其他版本,请注意。

echo -e "[mongodb-org-3.6]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/\ngpgcheck=1\nenabled=1\ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
sudo yum -y install epel-release
sudo yum -y update
sudo yum install -y nodejs curl GraphicsMagick npm mongodb-org-server mongodb-org gcc-c++
sudo npm install -g inherits n
sudo n 8.11.4

安装RocketChat

将RocketChat安装在/opt/Rocket.Chat/目录下。

以下是RocketChat:1.2.1的安装命令。

cd /opt
sudo curl -L https://releases.rocket.chat/1.2.1/download -o rocket.chat.tgz
sudo tar zxvf rocket.chat.tgz
sudo mv bundle Rocket.Chat
cd Rocket.Chat/programs/server
sudo npm install

再多一点

还不能启动。如果尝试跳过这里启动,
会出现错误:/lib64/libstdc++.so.6:找不到版本’GLIBCXX_3.4.20’(需要/opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-57/fibers.node),还有OPLOG/REPLICASET被要求运行ROCKET.CHAT,更多内容… 相信如此。

sudo npm install -g node-gyp
cd /opt/Rocket.Chat/programs/server/node_modules/fibers/
sudo node-gyp rebuild --target=v8.11.4
sudo cp bin/linux-x64-57/fibers.node{,_bk} #念の為ファイルをバックアップ
sudo cp -f build/Release/fibers.node bin/linux-x64-57/fibers.node #上書き

echo -e "replication:\n  replSetName: \"rs01\"" | sudo tee -a /etc/mongod.conf

启动确认

在进行RocketChat服务化之前,请事先确认在从其他计算机访问时的URL(如Windows物理计算机的IP等),并将以下命令中的***TODO_CHANGE_HOST_NAME***部分替换为正确的值后执行。

echo -e "[Unit]\nDescription=The Rocket.Chat server\nAfter=network.target remote-fs.target nss-lookup.target nginx.target mongod.target\n[Service]\nExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=rocketchat\nUser=rocketchat\nEnvironment=LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so NODE_ENV=production MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://***TODO_CHANGE_HOST_NAME***:3000/ PORT=3000 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01\n[Install]\nWantedBy=multi-user.target" | sudo tee /usr/lib/systemd/system/rocketchat.service

请创建所需的操作系统用户(CentOS)。创建用户后,请提供sudo权限。

sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat: /opt/Rocket.Chat
sudo visudo

由于在下面的代码行中为root用户授予了权限,因此我们将为rocketchat用户进行同样的授权。

rocketchat ALL=(ALL) ALL

首先启动数据库。

sudo systemctl start mongod
systemctl status mongod
sudo systemctl enable mongod
mongo --eval "printjson(rs.initiate())"

请确保在Mongo命令中看到了”ok”: “1”的输出。
接下来启动RocketChat。

sudo systemctl start rocketchat
systemctl status rocketchat
sudo systemctl enable rocketchat

检查启动状态

curl localhost:3000

只要返回类似的结果就可以了。不过,目前只能从CentOS内部访问。

让其他电脑可以访问(通过防火墙设置)

我仍在使用CentOS进行工作。

sudo systemctl start firewalld
systemctl status firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
sudo firewall-cmd --reload

回到Windows上进行操作验证。

最终终于回到Windows并进行操作确认了。

请在浏览器中访问 http://***TODO_CHANGE_HOST_NAME***:3000,并进行初始设置。

設定完成後

辛苦了!

如果您正在寻找聊天运营和管理方法,读一下这篇文章会让我很高兴。
在使用聊天进行工作时,首先要创建频道N进行选择。

享受美好的聊天生活吧!

bannerAds