在EC2上安装growi到Amazon Linux 2上

1. GROWI环境建设目标

    • AWS EC2環境へインストールします

OS : Amazon Linux 2
インスタンス : micro
必須:ElasticSearch, Mongo
別途:PlantUML

利用想定

最大3名以下のクローズドな使い方

インストール方法

Dockerを使わずに、インストールしていきます
レガシーですが、それじゃ面白くないので…
インストール中は、スペックを上げて作業しています(small)

ビルドとかメモリ使いそうだし

安装时的版本号

nameversionOSAmazon Linux 2GROWI3.6.3node.js12.14.0openjdk1.8.0_222MongoDB3.6.16PlantUML1.2019.13Graphviz2.42.2

首先,通过查阅GROWI Docs的内容来确认流程。

    • CentOS 7環境へのインストール手順があるので、基本はそれを踏襲します

CentOS | GROWI Docs

バージョンは、同じく公開されてるdocker-composeのバージョンを踏襲していきます
このマニュアルでは、PlantUMLはインストールせずに外部のサーバーを指しているので、別途自前でインストールします

この内容は公式マニュアルに記載されていない内容ですので、動作保証はしません

3.安装 Node.js, npm, yarn

    • NodeJS 12.xのインストール

公式マニュアルの手順をそって入れます
GitHub – nodesource/distributions: NodeSource Node.js Binary Distributions

事前準備

yum install gcc-c++ make

node.jsのインストール

curl -sl https://rpm.nodesource.com/setup_12.x | sudo bash –
sudo yum install nodejs

yarnのインストール

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

4. 安装Elasticsearch

    • OpenJDKのインストール

sudo yum install java-1.8.0-openjdk

Elasticsearch 6.xのインストール

Install Elasticsearch with RPM | Elasticsearch Reference [6.8] | Elastic

事前準備

sudo rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch

sudo vi /etc/yum.repos.d/elasticsearch.repo

レポジトリ先の設定
Install Elasticsearch with RPM | Elasticsearch Reference [6.8] | Elastic

インストール

sudo yum install elasticsearch

割り当てメモリの設定

sudo vim /etc/elasticsearch/jvm.options

サービス化と自動起動

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl status elasticsearch

プラグインのインストール

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

5.安装MongoDB

    • 事前準備

sudo vi /etc/yum.repos.d/mongodb-org-3.6.repo

レポジトリ先の設定
Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux — MongoDB Manual

インストール

sudo yum install -y mongodb-org

サービス化と自動起動

sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

MongoDBへの認証設定とユーザーの作成、パスワードの設定

長いので先駆者記事を参照
GCPにGrowiを構築する 06 MongoDBのユーザ設定 | Qrunch(クランチ)
設定したユーザー・パスワードは、growi起動時のオプションで利用します

6.安装PlantUML

    • JREのインストール

sudo yum install java-1.8.0-openjdk-devel

graphvizのインストール

事前情報

2.30以後のバージョンがcentos向けにパッケージされていない
調べる限り、2018年ごろに消えている?
ソースからmakeする必要

2.39, 2.40はPlantUMLとの相性が良くないのでそれ以外

フォーラムによれば、2.40.1は直っている

事前準備

sudo yum install expat-devel autoconf make automake libtool libtool-ltdl yacc byacc flex bison libtool-ltdl-devel

インストール(再現チェックしてません)

git clone https://gitlab.com/graphviz/graphviz.git
git checkout -b 2.42.2 refs/tags/2.42.2
cd ./graphviz
./autogen.sh
./configure –prefix=/opt/graphviz
sudo make

sudo make install

この対応により、PlantUMLに必要なDOTが下記に配置されます
/opt/graphviz/bin/dot

PlantUmlのインストール

事前準備

sudo yum install tomcat maven

インストール

cd /opt/
git clone https://github.com/plantuml/plantuml-server.git
git checkout -b v1.2019.13 refs/tags/v1.2019.13

コマンド実行

mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot

サービス化

sudo vi /etc/systemd/system/plantuml.service
“`
[Unit]
Description=plantuml

[Service]
WorkingDirectory=/opt/plantuml-server
ExecStart=/usr/bin/mvn jetty:run -DGRAPHVIZ_DOT=/opt/graphviz/bin/dot

[Install]
WantedBy=multi-user.target
“`

この対応によりPlantUML-serverがlocalhost:8080で立ち上がっています

7.执行GROWI

    • コマンド実行

sudo MONGO_URI=mongodb://growiuser:password@localhost:27017/growi ELASTICSEARCH_URI=http://localhost:9200/growi PLANTUML_URI=http://localhost:8080 PASSWORD_SEED=passwordseed FILE_UPLOAD=mongodb npm start

オプションとして下記を含めています

MongoDBの接続先(ID/PWを含む)
ElasticSearchの接続先
PLANTUML_URIの接続先
PASSWORD_SEEDは適当なランダム値がよい
FILE_UPLOADはGROWIにファイルを上げる時の保存先、S3やローカルへの設定が可

サービス化

systemd による自動起動 | GROWI Docs
接続先情報や追加のオプションは適時変更

8.反向代理和HTTPS兼容

    • GROWIはlocalhost:3000, PlantUMLはlocalhost:8080/plantumlで実行しています

 

    • これらを443で応答できるようにリバースプロキシの設定をし、証明書を適応することでHTTPS対応が行えます

 

    また、異なるサーバーへ一部サービスを逃がす場合はそれらもHTTPS対応しておいた方がよいかもしれません
广告
将在 10 秒后关闭
bannerAds