• ライフサイエンス分野の研究をIT技術で支援します

(公開:2019/8/6、修正:2019/8/12)
技術情報公開を始めました。弊社内で使っている技術情報を今後弊社ホームページで公開していく予定です。

今回は、社内での情報共有や、講習会での資料・ファイル配布に使っているCrowi-plusのセットアップ方法について紹介します。
Crowi-plusは、HTMLのタグを使わなくてもレイアウトの整ったページを簡単に作成できるマークダウン記法でページの記述ができる便利なWikiのプログラムです。Wiki用のサーバーを用意して、そこにインストールして、ウェブブラウザでそのサーバーににアクセスして使います。
Crowi-plusの最新版はGrowiです。
Gworiのページ: https://growi.org

ここでは、以前から使っているCrowi-plusのインストール方法について紹介します。
Crowi-plusのセットアップ作業は、大雑把に言うと今回が3回目ですが、2回目は、1回目の手順を一部変えないとセットアップができず、3回目も2回目で使った手順のままではインストールできませんでした。今回紹介するセットアップ方法も、少し時間が経つと一部を修正しないといけないかもしれません。OSのバージョンアップや、外部プログラムのバージョンアップで、セットアップ手順が変更になることはよくあります。
今回紹介する手順は、Microsoft AzureでUbuntu 18.04.2のサーバーで動作を確認したものです。

システムのアップデート

クラウドコンピューターを借りた直後は以下のコマンドでシステムをアップデートすることから開始します。

sudo apt update -y
sudo apt upgrade -y
sudo reboot

システムのアップデートをして再起動しました。接続が切れますので、1分程度時間をおいて、再度ログインしてください。

Node.jsのインストール

sudo apt install -y nodejs npm
sudo npm cache clean
sudo npm install n -g
sudo n stable
sudo ln -sf /usr/local/bin/node /usr/bin/node
sudo apt purge -y nodejs npm
sudo apt autoremove -y
sudo n 6.11.5
sudo npm install -g yarn

ここの手順における最後のコマンドは、1回目の手順確認からしばらく時間が経って2回目に手順を確認した際には、その時のyarnのバージョンでは、正常にインストールができませんでした。その時は、最初にインストールした時と同じバージョンを指定するためにyarnの後に@1.2.1をつけました。今回は、最新バージョンのyarn(ver 1.17.3)で問題なくcrowi-plusをインストールできましたので、2回目の時に使っていた@1.2.1を削除しました。


バージョンの確認コマンドと今回の出力結果:

node -v
v6.11.5

npm -v
3.10.10

yarn -v
1.17.3

参考: https://qiita.com/q_kwm/items/fc506d3289db2f12d549

MongoDBのインストール

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update  # 上記で追加したsourcesファイルを反映するためにupdate
sudo apt install -y mongodb-org

1回目、2回目のインストール時には、mondoDB ver.3.2を使っていましたが、今回はver.3.2のインストールに失敗しました。参考ページを参考にして、ver.4.0をインストールした。
参考: https://xn--o9j8h1c9hb5756dt0ua226amc1a.com/?p=3370

MongoDBをシステム起動時に自動起動させるための設定

まず、自動起動のための設定ファイルを作成します。
以下の内容のテキストファイルを、/etc/systemd/system/の下にmongodb.serviceという名前で作成します。

/etc/systemd/system/mongodb.service:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

(以下は、1行ずつコマンド実行でファイル作成する方法を紹介しています。テキストエディタで作成する方法でも構いません。emacsは、まだインストールされていません。emacsをインストールするよりも、以下のコマンドをコピー&ペーストで実行した方が早いかもしれません。)

echo "[Unit]" | sudo tee /etc/systemd/system/mongodb.service
echo "Description=High-performance, schema-free document-oriented database" | sudo tee -a /etc/systemd/system/mongodb.service
echo "After=network.target" | sudo tee -a /etc/systemd/system/mongodb.service
echo "" | sudo tee -a /etc/systemd/system/mongodb.service
echo "[Service]" | sudo tee -a /etc/systemd/system/mongodb.service
echo "User=mongodb" | sudo tee -a /etc/systemd/system/mongodb.service
echo "ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf" | sudo tee -a /etc/systemd/system/mongodb.service
echo "" | sudo tee -a /etc/systemd/system/mongodb.service
echo "[Install]" | sudo tee -a /etc/systemd/system/mongodb.service
echo "WantedBy=multi-user.target" | sudo tee -a /etc/systemd/system/mongodb.service

設定ファイルの確認コマンド

cat /etc/systemd/system/mongodb.service

システム起動時にMogoDBを自動起動するためのコマンドと、すぐにMongDBを起動するためのコマンドの実行:

sudo systemctl enable mongodb
sudo systemctl start mongodb


Crowi-plusのインストールと初回起動(環境構築を含む)

mkdir -p /opt/
cd /opt/
sudo git clone https://github.com/weseek/crowi-plus.git

cd crowi-plus
sudo git checkout 3e65ee1e7d4cad675dfd266b2b0701e86335dddb
sudo npm install --save crowi-plugin-lsx
sudo npm install --save crowi-plugin-pukiwiki-like-linker

sudo yarn
sudo npm start

Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process.
と表示されたら、Ctrl+Cでプログラムを停止させてください。

ここでは、以前に動作確認をした少し古いバージョンを指定して使っています。

Crowi-plusの自動起動設定

システムが再起動した時に、自動的にCrowi-plusを起動するように設定するために、以下の3つのファイルを用意します。
/opt/crowi-plus/crowi-plus:

FILE_UPLOAD=local

/opt/crowi-plus/crowi-plus.sh:

#! bin/bash

cd /opt/crowi-plus/
npm run server:prod

/etc/systemd/system/crowi-plus.service:

[Unit]
Description=Crowi - The Simple & Powerful Communication Tool Based on Wiki
After=network.target

[Service]
WorkingDirectory=/opt/crowi-plus
EnvironmentFile=/opt/crowi-plus/crowi-plus
ExecStart=/bin/bash /opt/crowi-plus/crowi-plus.sh
Restart = always

[Install]
WantedBy=multi-user.target

これらのファイルは以下のコマンドで作成できます。テキストエディタで作成しても構いません。

cd /opt/crowi-plus/

echo "FILE_UPLOAD=local" | sudo tee crowi-plus

echo "#! bin/bash" | sudo tee crowi-plus.sh
echo "" | sudo tee -a crowi-plus.sh
echo "cd /opt/crowi-plus/" | sudo tee -a crowi-plus.sh
echo "npm run server:prod" | sudo tee -a crowi-plus.sh

echo "[Unit]" | sudo tee /etc/systemd/system/crowi-plus.service
echo "Description=Crowi - The Simple & Powerful Communication Tool Based on Wiki" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "After=network.target" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "[Service]" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "WorkingDirectory=/opt/crowi-plus" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "EnvironmentFile=/opt/crowi-plus/crowi-plus" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "ExecStart=/bin/bash /opt/crowi-plus/crowi-plus.sh" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "Restart = always" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "[Install]" | sudo tee -a /etc/systemd/system/crowi-plus.service
echo "WantedBy=multi-user.target" | sudo tee -a /etc/systemd/system/crowi-plus.service

確認コマンド:

cat /opt/crowi-plus/crowi-plus
cat /opt/crowi-plus/crowi-plus.sh
cat /etc/systemd/system/crowi-plus.service

システム起動時にcrowi-plusを自動的に起動するためのコマンドと、システムの再起動コマンドの実行:

sudo systemctl enable crowi-plus
sudo reboot


Crowi-plus(Wiki)への接続方法

Crowi-plusは標準設定で3000番ポートを使うので、ウェブブラウザから次のURLでアクセスするとCrowi-plusのログイン画面にアクセスできます。初回接続時にはセットアップ画面ですが、セットアップ完了後にはログイン画面が表示されます。
http://(サーバーのIPアドレス):3000


初回接続画面

Azureでは、通常、3000番ポートが閉じられているので、3000番ポートを解放する必要があります。大学等の組織では外部の3000ポートのページにアクセスできない設定になっている場合もあります。


セットアップ後のログイン画面


ログイン後の画面

growiについても今後手順を確認して公開したいと思っています。
以上。