ConoHaのVPSサーバーにGrowi(旧Crowi-Plus)を導入する手順について

最近になって職場に社内Wikiとして導入されたCrowi-plusの使い勝手が非常に良かったため、自分用に導入しようと考えて手順をまとめました。
※手順について調べてるうちにCrowi-plusがGrowiという名前に変わったようです(手順について紹介してるサイトのGitHubへのリンクがGrowiにリダイレクトされて混乱した;;)

調べてみると私が日常的に使っているhttpd、PHP、Java、MySQL、PostgreSQL、Tomcatのあたりは不要でNode.jsとMongoDBというNoSQLなデータベースが必要とのこと。

当ブログを動かしてる既存のVPS環境(さくらのVPSのメモリ1GBプラン)に構築するのは怖かったので新規にGMOのConoHaというVPSサーバーをレンタルすることにしました。手順については別途まとめていますのでよろしければご確認ください。
ConoHaのVPSサーバー構築手順

なお、各モジュールについての理解を深めるためあえてDockerは使わずにセットアップに挑戦してみました。


Crowiについて簡単な動作要件くらいしかわかってなかったので、まずは以下のページを確認しておおよその手順を勉強しました。
GitHub – weseek/growi: GROWI – Team collaboration software using markdown
最強のWiki「Crowi」のフォーク、「GROWI(旧crowi-plus)」を公開した話 – Qiita
CentOS7にCrowi-Plusをインストールする方法 – Qiita
crowi-plusをEC2(t2.micro)で動かす
Crowi Plusの構築


はじめにgitをインストールしました。

# yum install git


mongodb-orgをインストールする際にコンフリクトするという記事を見かけたので以下の記事にしたがってリポジトリ設定を追加してインストールしました。
yumでmongodbをインストールするときの注意 – Qiita

# 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 mongodb-org
# systemctl start mongod
# systemctl enable mongod


以下を参考にNode.jsのインストールを行いました。
パッケージマネージャを利用した Node.js のインストール | Node.js

# curl -sL https://rpm.nodesource.com/setup_6.x | bash -
# yum install nodejs

Growiで使用されるnodejsの依存関係について事前に調べずに適当に操作してnodejs6をインストールしてしまい、アンインストールを行ったあとでnodejs8をインストールしようとしたところまたしても6系が入ってしまい8系がインストールできないという現象に遭遇しました。
Fail to install nodejs 8 on CentOS 7 · Issue #472 · nodesource/distributions · GitHub
色々調べたところ以下のコマンドでnodejsのリポジトリを削除してyumのキャッシュをクリーンしてインストールしなおすことでnodejs8のインストールが無事に行えました。

# yum clean all
# rm -f /etc/yum.repos.d/nodesource*
# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# yum install nodejs


npmのバージョンを確認したところGrowiの依存関係をクリアした5.6.0が入っていました。が、最新のバージョンを確認したところ5.8.0だったのでグローバルインストールで差し替えてみました。

# npm info npm versions --json | grep '"5.'
# npm install -g npm@5.8.0

nodejsとnpmのバージョンを確認したのが以下


npmでインストールする際にビルドツールによるコンパイルが必要とのことなので、ビルドツールをインストールしました。以下の画像を見てわかるとおりmakeは既に入ってました。

# yum install gcc-c++ make


ここよくわかっていないですがyarnというnpmに関連した何かをインストールしました。

# wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
# yum install yarn


Growiの導入は事前に読み込んでおいた情報通りに実施しました。lsxというツリー表示を行ってくれるプラグインがすごい便利なので追加でインストールしてみました。
CentOS7にCrowi-Plusをインストールする方法 – Qiita

# cd /usr/local
# mkdir site && cd $_
# git clone https://github.com/weseek/growi.git
# cd growi
# yarn

ツリー表示を行うプラグインを追加
# yarn add growi-plugin-lsx

Growiをサービス化するための設定

# vi /etc/systemd/system/growi.service
[Unit]
Description=Growi
After=network.target mongod.service

[Service]
WorkingDirectory=/usr/local/site/growi
EnvironmentFile=/etc/sysconfig/growi
ExecStart=/usr/bin/npm start

[Install]
WantedBy=multi-user.target

Growi用の環境変数ファイルの作成

# vi /etc/sysconfig/growi
PORT=3000
NODE_ENV=production
PASSWORD_SEED="`openssl rand -base64 128 | head -1`"
MONGO_URI="mongodb://localhost/growi"
FILE_UPLOAD=local

Growiの起動、自動起動

# systemctl daemon-reload
# systemctl start growi
# systemctl enable growi

しばらくたってもブラウザでアクセスできないので調べたところ、デフォルトのファイアウォールによって3000番へのアクセスが遮断されていました。以下のコマンドでファイアウォールを停止しました。

# systemctl stop firewalld
# systemctl disable firewalld

あらかじめDNSレコード設定を用意しておいたwikiサブドメインにアクセスして正常に初回セットアップ画面が表示されることを確認!
http://wiki.imo-tikuwa.com:3000/

初回の設定を行ってひとまずトップページが見れることを確認しました。

スポンサーリンク
GoogleAdsense



GoogleAdsense



シェアする