目次
はじめに
こんにちは!
テレワークに伴い、室内で運動するようには心掛けているのですが、この土日は久々にガッツリ歩きました。
するとどうでしょう。筋肉痛とかならわかるんですが、足の裏の皮が剥けちゃいました!
さすがに家で足裏は鍛えられなかった…。おうち大好きエンジニア森屋でございます。
今回は、以前から気になっていながらも触れていなかった、モダンなWikiツールであるGrowi を入れてみます。
公式ドキュメントがあるので楽勝だと思っていたら、意外と手こずりましたのでこの記事が誰かの助けになればと。
環境は、CentOS7.8(64bit)で割かしプレーンな状態で実施しています。
公式ドキュメントと本手順の大まかな差異について
・公式ドキュメントのインストール手順
https://docs.growi.org/ja/admin-guide/getting-started/centos.html
こちらの手順ですが、執筆時点でGrowi最新版が「v4.2.7」に対し、「v3.4.2」時代に書かれたものの様で、nodejsやMongoDBなど軒並みバージョンが合いません。
▼v3.4.2の場合
node.js 8.x (DO NOT USE 9.x)
npm 6.x
yarn
MongoDB 3.x
(Optional) Elasticsearch 5.x
(Optional) systemd
(Optional) Apache or nginx
▼v4.2.7の場合
→https://github.com/weseek/growiによると
Node.js v12.x or v14.x
npm 6.x
yarn
MongoDB 4.x
Redis 3.x
ElasticSearch 6.x (needed when using Full-text search)
CAUTION: Following plugins are required
Japanese (kuromoji) Analysis plugin
ICU Analysis Plugin
インストール手順
ちょこっといじってますが、基本的な流れ自体は、公式ドキュメントと大きく変えていません。
Node.jsインストール
https://github.com/nodesource/distributions
コチラに従い、v14をインストールします。
# curl -sL https://rpm.nodesource.com/setup_14.x | bash -
※nodejsインストール用のレポジトリが入ります
# yum install gcc-c++ make
※nodejsインストールのために必要だそうなので、実施
# yum install nodejs
Yarnインストール
# curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo
※こちらもレポジトリを入れる際に指示された通り、yarnのインストール
# yum install yarn
# node -v
----------------------------------------------------------
v14.15.4
----------------------------------------------------------
# npm -v
----------------------------------------------------------
6.14.10
----------------------------------------------------------
# yarn -v
----------------------------------------------------------
1.22.5
----------------------------------------------------------#
Elasticsearchインストール
https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
コチラに従い、v6をインストールします。
# yum install java-1.8.0-openjdk
※JDKが入ってなかったので、まずこちらを入れます
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# vi /etc/yum.repos.d/elasticsearch6.repo
----------------------------------------------------------
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
----------------------------------------------------------
# yum install elasticsearch
# yum list installed |grep elasticsearch
----------------------------------------------------------
elasticsearch.noarch 6.8.13-1 @elasticsearch-6.x
----------------------------------------------------------
自動起動設定を入れます。
# systemctl start elasticsearch
# systemctl enable elasticsearch
# systemctl status elasticsearch
推奨されているElasticsearchプラグインをインストールします。
# rpm -ql elasticsearch | grep bin | grep plugin
----------------------------------------------------------
/usr/share/elasticsearch/bin/elasticsearch-plugin
----------------------------------------------------------
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
----------------------------------------------------------
-> Downloading analysis-kuromoji from elastic
[=================================================] 100%??
-> Installed analysis-kuromoji
----------------------------------------------------------
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
----------------------------------------------------------
-> Downloading analysis-icu from elastic
[=================================================] 100%??
-> Installed analysis-icu
----------------------------------------------------------
MongoDBインストール
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
コチラに従い、v4.4をインストールします。
画面左上にバージョン選択画面があると思うので、執筆時点の4系最新版を選択しました。
# vi /etc/yum.repos.d/mongodb-org-4.4.repo
----------------------------------------------------------
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
----------------------------------------------------------
# yum install mongodb-org
# yum list installed |grep mongodb
----------------------------------------------------------
mongodb-database-tools.x86_64 100.2.1-1 @mongodb-org-4.4
mongodb-org.x86_64 4.4.2-1.el7 @mongodb-org-4.4
mongodb-org-database-tools-extra.x86_64
4.4.2-1.el7 @mongodb-org-4.4
mongodb-org-mongos.x86_64 4.4.2-1.el7 @mongodb-org-4.4
mongodb-org-server.x86_64 4.4.2-1.el7 @mongodb-org-4.4
mongodb-org-shell.x86_64 4.4.2-1.el7 @mongodb-org-4.4
mongodb-org-tools.x86_64 4.4.2-1.el7 @mongodb-org-4.4
----------------------------------------------------------
自動起動設定を入れます。
# systemctl start mongod
# systemctl enable mongod
# systemctl status mongod
Growiインストール
公式手順に従い、最新版をインストールします。
# cd /opt/
# git clone https://github.com/weseek/growi /opt/growi
# cd /opt/growi/
# git tag -l
----------------------------------------------------------
…
v4.2.0
v4.2.1
v4.2.2
v4.2.3
v4.2.4
v4.2.5
v4.2.6
v4.2.7
----------------------------------------------------------
※RCがついてない最新版をインストールします
# git checkout -b v4.2.7 refs/tags/v4.2.7
----------------------------------------------------------
Switched to a new branch 'v4.2.7'
----------------------------------------------------------
# git branch
----------------------------------------------------------
master
* v4.2.7
----------------------------------------------------------
# cd /opt/growi/
# yarn
起動確認
# MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
npm start
以下のメッセージが表示されるまでしばらく待つ
----------------------------------------------------------
> growi@4.2.7 server:prod /opt/growi
> env-cmd -f config/env.prod.js node src/server/app.js
----------------------------------------------------------
アクセスし、初回セットアップ画面が表示されることを確認(確認だけ。セットアップは実施しない)
http://growi.example.com:3000
systemdでのGrowi自動起動
# vi /etc/systemd/system/growi.service
----------------------------------------------------------
[Unit]
Description=Growi
After=network.target mongod.service
[Service]
WorkingDirectory=/opt/growi
Environment=PORT=3000\
MONGO_URI=mongodb://localhost:27017/growi\
ELASTICSEARCH_URI=http://localhost:9200/growi
ExecStart=/usr/bin/npm start
[Install]
WantedBy=multi-user.target
----------------------------------------------------------
# systemctl start growi
# systemctl enable growi
# systemctl status growi
# watch -n 1 "netstat -lntp | grep :3000"
→ポートがLISTENするまでしばらく時間がかかるため、辛抱強く待ちます
リバプロ設定(Apache)
公式ドキュメントでは、Apache(80番ポート)経由でアクセスできる様にする手順まで気を配ってくれています。
# yum install httpd
# vi /etc/httpd/conf.d/growi.conf
----------------------------------------------------------
<VirtualHost *:80>
ServerName growi.example.com # ←このドメインは環境に応じて変えてください
ProxyPreserveHost On
RequestHeader set x-forwarded-proto 'http'
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
----------------------------------------------------------
自動起動設定を入れます。
# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
インストール完了
あとはアクセスしてみて、この様な画面が出たらOKです。
アカウントを作り、初期セットアップをしていきましょう。
おつかれさまです!
おわりに
たくさんプラグインも用意されているので、情報共有の幅が広がりそうです。
しかし色々なミドルウェアを介しているので、運用面は気配りが要りそうですね。
開発元の提供するクラウドサービスも有る様なので、一度オンプレで入れてみて、大変そうだったらコチラに乗り換えるのもアリかなと。
今回は以上です。お読みくださり、ありがとうございました。
ではまた!
テクニカルサポートとして、日々お客様の悩み事解決を支援しております。
スーパーエンジニアになるべく、日々、自宅でのウェイトトレーニングに励んでいます。
LINK
クラウドベリージャム:プロフィールページ