• ライフサイエンス分野の研究を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についても今後手順を確認して公開したいと思っています。
    以上。