コンテナ環境だともっと楽なのでしょうけれど、きちっとオンプレで運用したいので、こういう方法をとりました。
前提
- インストールするサーバはUbuntu 20系のLinux Mint 20.03を用います。(22系はMongoDBで詰まりました)
- 他にWebサーバを稼働していないサーバにて実施しています。
- ローカルNW内で運用するため、サーバのセキュリティ設定は低くなっています。
- インストールするディレクトリは「/var/growi」とします。
- ここではあくまでもインストールと起動確認を行うまでです。
- エディタによる編集は極力使わず、コマンドのコピー&ペーストで完結するようにしています。
- ここではインストールと動作確認にとどめます。
参考にしたURL
- Ubuntu Server 20.04 LTSにGROWIをインストール
https://qiita.com/BigTree777/items/4a67d36c4111a1fb50e7
- Ubuntu18.04にGrowiをインストール
https://qiita.com/hawk777/items/0916024c1bd7b24904ae
手順
別途、記載がない限りは
- 1行空いているコマンドは、1行ずつ実行します。
- 空白行がない一連のコマンドは全てをコピー&ペーストして実行します。
必要に応じて:aptitudeのインストール
sudo apt-get install aptitude
# 本項ではパッケージ管理にaptitudeを用いますので、導入されていない場合はインストール。
# ポリシーによりaptを用いる場合は読み替えてください。
事前準備 - nginx リポジトリの追加
sudo add-apt-repository ppa:ondrej/nginx
# これを先に実施しないと、mongodbのバージョン固定に失敗しました
Node.js/npm/yarnのインストール
cd ~
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo aptitude install nodejs
Node.jsとnpmのインストール確認
node -v
npm -v
# インストールしたバージョンを確認
yarnのインストール
sudo npm install -g yarn
yarn -v
# インストールしたバージョンを確認
Elasticsearchのインストール
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
sudo aptitude install apt-transport-https
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo aptitude update && sudo aptitude install elasticsearch
dpkg -l |grep elasticsearch
#インストールしたバージョンを確認
Elasticsearchに割り当てるメモリを調整
sudo mkdir /etc/elasticsearch/old
# 切り戻しができるように、設定ファイルのバックアップを格納するディレクトリを作ります
sudo cp -pi /etc/elasticsearch/jvm.options /etc/elasticsearch/old/jvm.options.`date +%Y%m%d`
# .`date +%Y%m%d`をつけることで、バックアップファイルは当日日付(YYYY/MM/DD形式)で記録されます
echo -e "-Xms256m\n-Xmx256m" | sudo tee -a /etc/elasticsearch/jvm.options
メモリ調整確認
sudo diff -u /etc/elasticsearch/old/jvm.options.`date +%Y%m%d` /etc/elasticsearch/jvm.options
diffの出力結果(差分)が以下であることを確認します。
+-Xms256m
+-Xmx256m
Elasticsearchの自動起動の有効化
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl status elasticsearch
# (running) と enabledを確認
Growiに必要なElasticsearchプラグインのインストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
sudo systemctl restart elasticsearch
Redisのインストール
sudo add-apt-repository ppa:chris-lea/redis-server
sudo aptitude update && sudo aptitude install redis-server
インストール後の確認
redis-cli --version
redis-server --version
# インストールしたバージョンが表示されることを確認
sudo systemctl start redis-server
sudo systemctl enable redis-server
sudo systemctl status redis-server
# (running) と enabledを確認
MongoDBのインストール
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo aptitude update && sudo aptitude install mongodb-org=4.4.13 mongodb-org-server=4.4.13 mongodb-org-shell=4.4.13 mongodb-org-mongos=4.4.13 mongodb-org-tools=4.4.13
MongoDBのバージョン固定
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
インストール後の確認
redis-cli --version
mongod --version
# インストールしたバージョンが表示されることを確認
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
# (running) と enabledを確認
Growiのインストール
sudo aptitude install git build-essential
sudo git clone https://github.com/weseek/growi /var/growi
cd /var/growi
sudo git tag -l
# 2022/09/15での最新版は5.1.4
sudo git checkout -b v5.1.4 refs/tags/v5.1.4
sudo yarn
Growi起動確認
ここでは「PASSWORD_SEED」を「GOLDEN_SEED」と設定します。任意のランダム文字列を指定してください。
先頭のsudo から最終行のnpm startまで全てコピー&ペーストで実行します。
sudo \
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=GOLDEN_SEED\
FILE_UPLOAD=local \
npm start
以下の表示が出たら起動は成功です。
> growi@(インストールしたバージョン) start /var/growi
> yarn app:server
ブラウザで
http://IPorホスト名:3000
に接続し、ログインページ表示を確認します。(ここではまだログインをしないでください)
ログインページ表示を確認後、[Ctrl]+[C]で抜けます。
これからの流れ
最終的に以下を行います。
- mkcertによるSSL取得と常時SSL化
- nginxによるリバースプロキシー
- growiの起動スクリプト化