LoginSignup
19
19

More than 5 years have passed since last update.

CentOS7.6でGROWIを動かしたときの手順メモ

Last updated at Posted at 2019-02-11

背景

下記みたいな面倒を減らしたいという動機がありました。

  • その彼が困ってるやつ、10秒でやれる方法あるから教えたいけど時間がない。誰か教えてあげて。
  • 調べるのが面倒で質問してきたんだろうけど、回答するときに改めて調べ直すからこっちの手も止まるんだよ。
  • 議事録はあのNASのあのディレクトリ掘りまくったところに・・・
  • 仕様書はあのsvnのあの辺の配下に・・・

と、必要な情報があったり無かったり、特定の人に依存していたり、よくない状況が続いていました。
みんなが気軽に情報を発信できて、検索できると上手くいきそうなイメージがあったので、GROWIを試してみることにしました。やるならしっかり運用に載せたいので、とりあえず動かして、機能を確認します。上手く使って楽になれると嬉しい。

書くこと

CentOS7.6でGROWIをインストールして、最初のアカウント作成画面まで確認したので、その手順を残します。
今回は、GROWIに必要なものを1つずつインストールしていきます。
docker-composeを使うと楽らしいので、今度使ってみます。

Growiを選んだ理由

  • オンプレで動かせるので、弊社が持つクラウドへの謎の警戒心に阻まれない。
  • Markdownで書けるからネ申Excelを量産しなくて済む。
  • オープンソース
  • 分かりやすい情報がたくさんある。
  • なんとなくCrowiより活発そう

GROWIについては以下の情報が詳しい。

GROWI.org - Markdown で書けるオープンソースの Wiki システム
最強のWiki「Crowi」のフォーク、「GROWI(旧crowi-plus)」を公開した話

環境

VirtualBox上のCentOS7.6
WEBサーバとしてインストール後、SSHで接続できる状態。
あと、firewallとSELinuxも無効にした。この辺ちゃんとやらねば・・。
→firewallはちゃんと設定できた

実際に運用するときは適当なマシンを探してきて使います。

インストール

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

node.jsのバージョン8.x(DO NOT USE 9.x、だそうです)
やりかたはここを参照しました。
https://github.com/nodesource/distributions#installation-instructions-1

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

良し。

yarn

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

↑で開いたファイルに↓の内容を記載する。

/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

良し。

OpenJDK

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

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

リポジトリ追加。ファイルに↓の内容を書き込む。

/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だった。

/etc/elasticsearch/jvm.options

-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

ついにGROWIをインストール。

githubから、 /opt/growi にcloneしてくる。

# 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でインストール
WEBサイトがちょっとかっこいい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/

どうやら動いてる!
スクリーンショット 2019-02-11 0.37.08.png

systemctlで起動させる設定

systemctlから起動/停止するように。

# vi /etc/systemd/system/growi.service

書き込む。WorkingDirectoryはインストール(=git clone)した場所を指定するところ。

/etc/systemd/system/growi.service
[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から起動。再びブラウザで見れたら成功!

# systemctl start growi.service 

自動起動の確認。

rebootして自動起動できるかを確認。

# reboot

reboot後、ブラウザでGROWI開けない。
スクリーンショット 2019-02-11 21.19.59.png

自動起動してるかどうか確認。

# 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

今度こそ。reboot後に自動起動確認。

# 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

良し。

でもまだブラウザで開ない。接続が拒否されました。
firewall止めると動いた。

# systemctl stop firewalld.service

せっかくなのでfirewallのほうも設定しておく。
ここ参考というか真似させていただきました。
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

ブラウザからのアクセスもOK.
再reboot後も大丈夫。

できた!

最後に

さあ使うぞ。
docker-composeのほうも、時間を見つけて使ってみたい。

19
19
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19