在CentOS 7.6上运行GROWI的步骤记录
背景- 背景
我有减少以下类似繁琐的动机。
-
- その彼が困ってるやつ、10秒でやれる方法あるから教えたいけど時間がない。誰か教えてあげて。
-
- 調べるのが面倒で質問してきたんだろうけど、回答するときに改めて調べ直すからこっちの手も止まるんだよ。
-
- 議事録はあのNASのあのディレクトリ掘りまくったところに・・・
- 仕様書はあのsvnのあの辺の配下に・・・
因此,我决定尝试使用GROWI。我认为如果每个人都可以轻松地发布和搜索信息,情况可能会好转。我希望能够稳定地运行它,并先试运行一下,以确认其功能。如果能够熟练地使用它并感受到便利,我会很高兴。
写字
我们将在CentOS 7.6上安装GROWI,并确认了创建第一个账户的界面。下面是安装步骤。这次我们将逐个安装GROWI所需的组件。听说使用docker-compose很方便,下次试试。
我选择Growi的原因
-
- オンプレで動かせるので、弊社が持つクラウドへの謎の警戒心に阻まれない。
-
- Markdownで書けるからネ申Excelを量産しなくて済む。
-
- オープンソース
-
- 分かりやすい情報がたくさんある。
- なんとなくCrowiより活発そう
关于GROWI的详细信息如下。
GROWI.org- 通过Markdown进行编写的开源Wiki系统的介绍
我们发布了基于最强大的Wiki软件”Crowi”的分支版本”GROWI(前称crowi-plus)”的消息。
环境
在VirtualBox上安装好的CentOS7.6,作为一个WEB服务器进行了安装后,可以通过SSH连接。另外,防火墙和SELinux也已经被禁用。这些都需要好好处理一下才行。防火墙已经被正确的设定。
实际操作时,我们会找到适当的机器并使用它们。
安装
参考 GROWI Docs 安装到 Ubuntu。
这次全部使用 root 用户操作,只是为了练习。实际上应该使用适当的用户操作。
为了运行GROWI而安装的软件清单
在GROWI Docs中也有一个列表。
基本上是要安装这些工具。
-
- node.js 8.15.0
-
- npm 5.6.0
-
- yarn 1.13.0
-
- MongoDB 3.6
-
- OpenJDK 1.8.0_191
-
- Elasticsearch 5.6
-
- git 1.8.3.1 ←growiをgithubからcloneする時に。無かったので。
- growi 3.3.8
Node.js is a JavaScript runtime environment.
根据此链接(https://github.com/nodesource/distributions#installation-instructions-1),我使用的是Node.js的8.x版本(请勿使用9.x)。
使用curl命令下载安装脚本并执行(并未详细查看脚本内容)。
# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
然后安装是否成功,将会得到如下所述的反馈。
## Run `sudo yum install -y nodejs` to install Node.js 8.x LTS Carbon and npm.
## You may also need development tools to build native addons:
sudo yum install gcc-c++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
按照被告知的方式,使用yum进行安装。
# yum install -y nodejs
# node -v
v8.15.0
好的。
npm 是一个广泛使用的开源软件包管理工具。
既然安装了Node,应该也可以使用npm。
# npm -v
6.4.1
不是指定的5.x版本。虽然可能可以继续进行,但为了放心起见,我选择安装5.6版本。
# npm install -g npm@5.6.0
~
# npm -v
5.6.0
好的。
纱线
在安装Node时,按照脚本指示的方式进行。
# curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo
# yum install yarn
# yarn -v
1.13.0
好的。
MongoDB (蒙高数据库)
MongoDB的版本为3.x系列。安装方法请参考以下链接:
https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-red-hat/
为了通过 yum 进行安装,需要添加软件源。
# vi /etc/yum.repos.d/mongodb-org-3.6.repo
在使用↑打开的文件中写入↓的内容。
[mongodb-org-3.6]
name=MongoDB Repository
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
安装和版本确认
# yum install -y mongodb-org
# systemctl start mongod.service
# mongo
MongoDB shell version v3.6.10
好的。
开放JDK
在查找并安装yum存储库之后,确认版本。
# yum search java-1.8.0-openjdk
# yum install java-1.8.0-openjdk-devel
# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
# javac -version
javac 1.8.0_191
好吧。
弹性搜索
Elasticsearchのインストール方法はこちらを参照した。
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/rpm.html
安装公钥。
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
添加存储库→安装
# vi /etc/yum.repos.d/elasticsearch.repo
リポジトリ追加。ファイルに↓の内容を書き込む。
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
安装。
# yum install elasticsearch
個人用の場合、ElasticsearchのJavaヒープ最小・最大は256MBで十分らしいので設定。
初期値は2gだった。
-Xms256m
-Xmx256m
systemctlリロード後、自動起動の設定と起動。さらにプラグイン2つ追加。
# /bin/systemctl daemon-reload
# /bin/systemctl enable elasticsearch.service
# [root@growi ~]# systemctl start elasticsearch.service
# [root@growi ~]# systemctl status elasticsearch.service
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
git
正常安装完成。
# yum install git
# git --version
git version 1.8.3.1
好了好了。
成长
终于安装了GROWI。
从Github上将其clone到/opt/growi目录中。
# git clone https://github.com/weseek/growi /opt/growi
从标签中选择版本并检出分支使用。
# cd /opt/growi
# git tag -l
v3.3.6
v3.3.7
v3.3.8
# git checkout -b v3.3.8 refs/tags/v3.3.8
# git branch
master
* v3.3.8
用yarn进行安装
非常酷的网站yarn。
# cd /opt/growi
# yarn
[5/5] Building fresh packages...
Done in 151.78s.
好的。
确认启动
确认已安装的内容
既然已经完成了安装,那就启动并确认一下。
用下面的命令先启动。
# cd /opt/growi
# MONGO_URI=mongodb://localhost:27017/growi ELASTICSEARCH_URI=http://localhost:9200/growi npm start
请在浏览器中访问并确认。
/* xxxにサーバのIPアドレス */
http://xxx.xxx.xxx.xxx:3000/
用systemctl启动的配置
请使用systemctl来启动/停止。
# vi /etc/systemd/system/growi.service
写入。WorkingDirectory是指定安装(=git clone)的位置的地方。
[Unit]
Description=Growi
After=network.target mongod.service
[Service]
WorkingDirectory=/opt/growi
EnvironmentFile=/etc/sysconfig/growi
ExecStart=/usr/bin/npm start
[Install]
WantedBy=multi-user.target
维护MongoDB的IP等设定。
# vi /etc/sysconfig/growi
根据环境的不同进行描述
PORT=3000
NODE_ENV=production
PASSWORD_SEED="`openssl rand -base64 128 | head -1`"
MONGO_URI="mongodb://localhost/growi"
ELASTICSEARCH_URI="http://localhost/growi"
FILE_UPLOAD=local
如果从系统控制中心启动,然后在浏览器上可以看到,那就成功了!
# systemctl start growi.service
确认自动启动功能。
确认重新启动后能否自动启动。
# reboot
检查是否自动启动。
# systemctl status growi
● growi.service - Growi
Loaded: loaded (/etc/systemd/system/growi.service; disabled; vendor preset: disabled)
Active: inactive (dead)
检查设置,发现没有启动。
# systemctl is-enabled growi.service
disabled
我忘记设定了。
确认并设定自动启动。
# systemctl enable growi.service
Created symlink from /etc/systemd/system/multi-user.target.wants/growi.service to /etc/systemd/system/growi.service.
# systemctl is-enabled growi.service
enabled
这一次终于。在重启之后自动启动确认。
# systemctl status growi.service
● growi.service - Growi
Loaded: loaded (/etc/systemd/system/growi.service; enabled; vendor preset: disabled)
Active: active (running) since 月 2019-02-11 22:05:31 JST; 3min 26s ago
Main PID: 3566 (npm)
CGroup: /system.slice/growi.service
├─3566 npm
├─3740 npm
├─3781 node /opt/growi/node_modules/.bin/env-cmd config/env.prod.js node src/server/app.js
└─3787 node src/server/app.js
可以。
但是还不能在浏览器中打开。连接被拒绝了。
停掉防火墙后就可以运行了。
# systemctl stop firewalld.service
既然如此,防火墙也要进行设置。
这里借鉴了一下,或者说是模仿了这个。
https://qiita.com/yuki476/items/122bd5cc10355ce02b68
意识到自己写了差不多相同的内容… 这是给自己做的备忘录,所以还好。
$ firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client growi
从浏览器访问也可以。
重启后也没问题。
完成了!
终于
现在来使用吧。
希望找时间尝试使用docker-compose。