投稿者: manualmaton Page 8 of 243

Nextcloudの切り戻し(ダウングレード)手順。

Nextcloud、Webからアップグレードすることはできますが下位のメジャーバージョンにダウングレードすることはできません。

アップグレードの失敗ならびにアプリの相性などで元のバージョンに戻したい場合は以下のように切り戻しを行います。

(今回の筆者のパターンは前者です)

前提

アップグレード前のnextcloudのDBを取っていること

これがなければそもそも成り立ちません。この方法で日次のバックアップを取っていました

取っていなかった場合は別のサイトをお探しください。

nextcloud_backup.sql等のSQLを任意のディレクトリに格納してください。

環境

  • Ubuntu 24.04
  • Apache2.4
  • php 8.3
  • MySQL 8.0.39
  • Nextcloud 29.0.8

特記事項

データ格納ディレクトリを別パーティションにしています。

さっくりとした手順

  1. 切り戻し前のプログラムを退避させます。
  2. 切り戻しを行いたいプログラムをダウンロードします。
  3. プログラムを解凍して再配置します。
  4. コンフィグやアプリデータなどを再配置します。
  5. DBをリストアします。
  6. 切り戻しを確認します。

Nextcloudの退避

  • プログラム退避
sudo mv /home/www-data/nextcloud /path/to/backup/directory/nextcloud.$(date +%Y%m%d)

退避前、退避先はそれぞれ自分の環境に合わせます。

  • 退避確認
ls -l /path/to/backup/directory/nextcloud.$(date +%Y%m%d)

退避先にディレクトリファイル一式があることを確認します。

切り戻し対象前のプログラムをダウンロード

  • 作業用ディレクトリに移動
cd /hoge && pwd

任意のディレクトリを指定します。

  • wgetによるダウンロード
wget https://download.nextcloud.com/server/releases/nextcloud-29.0.8.zip

切り戻しを行う(アップグレード前)のバージョンを指定します。

  • 解凍
unzip nextcloud-29.0.8.zip
  • 所有者変更
sudo chown -R www-data:www-data nextcloud

Nextcloud(Webサービス)実行ユーザーに合わせます。

  • Nextcloud再配置
sudo mv nextcloud /home/www-data/

元々Nextcloudが配置されていたディレクトリに再配置します。

  • 再配置確認
ls -l nextcloud /home/www-data/nextcloud

ディレクトリ・ファイル一式があることを確認します。

Nextcloud復旧

  • 退避させた元のNextcloudからコンフィグをコピー
sudo cp -pi /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/config/config.php /home/www-data/nextcloud/config/
  • 退避させた元のNextcloudからアプリ一式をコピー
sudo -u www-data cp -r /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/apps/* /home/www-data/nextcloud/apps/
  • 退避させた元のNextcloudからデータ一式をコピー
sudo -u www-data cp -r /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/data/* /home/www-data/nextcloud/data/

※データ格納ディレクトリを別のパーティションにしている場合は不要です。ディスクサイズによってはcp -rの代わりにmvを用いてください。

  • DBからリストア
mysql -u nextcloud -p nextcloud < /path/to/directory/nextcloud_backup.sql

-u nextcloudのDBユーザ名-p nextloudDB名です。バックアップのSQLファイルは自分の環境に合わせます。

  • Webサービス再起動(Apacheの場合)
sudo systemctl restart apache2.service
  • Webサービス再起動(nginxの場合)
sudo systemctl restart nginx.service

切り戻し確認

  1. Nextcloudに管理者権限でログインします。
  2. バージョンが切り戻し前に戻っていることを確認します。
  3. 主要な機能が使えることを確認します。

切り戻し後のデータ削除(必要に応じて)

  • 退避させたプログラムの削除
sudo rm -rf /path/to/backup/directory/nextcloud.$(date +%Y%m%d)
  • バックアップのSQLファイルの削除
rm /path/to/directory/nextcloud_backup.sql

『ライザのアトリエ3』1000万ダメージ達成時のパーティーメンバー並びに秘密の鍵。

この記事から随分と間が空きましたが、再検証が確定できました。

1000万ダメージを達成したのは「ライザ以外の要因」によるところが大きいです。

バースト「アイテム強化・極」

言葉通りの意味でのキーアイテムとなったのが秘密の鍵。バースト効果「アイテム強化・極」を持つSSRの鍵です。

これを用いた上で

  1. エイビスコール
  2. ラブリーブロッサム
  3. ツヴァイレゾナンス

とつなげることで

800万ダメージまでは到達。

もう200万を突破できたのは、種族特攻を持つパーティーメンバーでした。

リラ&カラのパッシブスキル

リラとカラには、パーティークエスト以外で得られるパッシブスキルがあります。

  • 活性強化(リラ)
    • 自身に精霊が付与されている間、スキルのWTが減少する。フィルフサへ与えるダメージが増加する
  • 活性循環(カラ)
    • 自身に精霊が付与されている間、行動時にHPが回復する。フィルフサへ与えるダメージが増加する

それぞれ、異界のアトリエすぐ近くにいる「精霊触媒を求めるオーレン族」に精霊触媒を納品することで得られるスキルです。

https://atelier.reisalin.com/issues/516

この、両者に共通する「フィルフサへ与えるダメージが増加する」に着目。

パーティーメンバーと鍵の相乗効果

前衛メンバーにリラとカラを加えた上で、シャープシザース×3に戦闘を仕掛けます。

開幕、ライザが秘密の鍵(アイテム強化・極)を用いて

アイテムを選択。

10,224,196ダメージが当たりました。

ボードゲーム『ガイアプロジェクト 拡張 失われた艦隊』到着と開封。

デジタル版の登場で面白さを知った重ボードゲーム『ガイアプロジェクト』。

その拡張の日本語版が出たとのことで早速予約。これが到着しました。

基本セットとの比較

見た目こそ小さく見えますが、元が大きな箱なので、『アグリコラ』と同じぐらいの大きさです。

内容物

  • 新勢力(水色とピンク)のコマ一式
  • および勢力用の個人ボード
  • 新たな要素(探査船)コマとボード
  • 新しいタイル(宙域含む)

と、これだけで大きめのボードゲームと見まがうかのような量です。

目下の問題

「収納問題」に尽きます。

基本セットだけでも箱一杯のオーガナイザーを使っているため、どう箱に収めていくかは相当な悩み。

新たなオーガナイザーが出ることに期待です。(既に出てはいますが樹脂製なので

『ライザのアトリエ3』中盤からの装飾品「闘士のバングル」調合。

これほど調合が難しくはなく、高難易度でも役立つ装飾品「闘士のバングル」を統合します。

『闘志のバングル』調合例

ステータス

  • HP:164
  • 攻撃力:409
  • 防御力:270
  • 素早さ:506

効果:特性

  • 効果1:武神の証
    • 与える物理ダメージが増加し、ダメージの一部を回復する
  • 効果2:武の領域
    • スキルダメージが増加する
  • 効果3:心眼
    • クリティカル率が上昇し、クリティカル寺のダメージが増加する
  • 効果4:食いしばり
    • 戦闘不能時、確率でHP1で耐える
  • 特性1:攻速強化++ 99
    • 攻撃力と素早さが最大で100増加する
  • 特性2:防速強化 ++99
    • 防御力と素早さが最大で100増加する
  • 特性3:全能力強化++ 99
    • 全ての能力が最大で50増加する
  • 超特性:先見之識
    • タクティクスレベルが1増加した状態で戦闘を開始する

前提

スキルツリーから「悠久のモノリス」を解放していること。影響拡大を持ち、金属を持つアイテムなので何かと重宝します。

「悠久のモノリス」からのレシピ変化に必要な「蛮勇の角笛」も調合しておきます。

また、以下の通り、グランツオルゲンを作っておきます。

なので、このタイミングで調合可能です。

作成

調合

調合メニューから「悠久のモノリス」を選択して、液体金属を投入します。

フロートスフィアを入れて、秘密の鍵を投入。投入回数増加・中の鍵を投入します。

ここで雷属性を付与したグランツオルゲンを投入。環環の発現と同時にパラメーター上昇へとつなげます。

蛮勇の角笛を投入してレシピ変化させます。

闘士のバングルへとレシピ変化。悠久のモノリスを入れます。

秘密の鍵は適当に。(まだレアのシンセサイズキーがないのでよさげなのを選びました)

幸いこの装備品は各所に金属/インゴットを入れるマテリアル環があるため、グランツオルゲンを入れていきます。

残りの効果発現はリビルドで行います。

アイテムリビルド

残りの効果を発現させていきます。今回は戦闘開始時にタクティクスレベルが上がる先見之識が付与されている金属を入れています。

まとめ

この手のスキル特化の装飾品を作っておくと、高難易度での魔法ダメージ無効化を持つ敵に対して有利が取れるようになります。

『ライザのアトリエ3』中盤からの素材底上げ(全属性付与のグランツオルゲン調合。ネタバレあり)

こちらの記事でも採り上げている最強武器の必須素材、グランツオルゲン。

相応のSPがあれば、割と早い時期から調合が可能です。

調合可能タイミング

理論上は、フェデリーカが仲間になる前の段階で可能ですが、サルドニカのメインクエストを終え、無垢の鍵が解放されるのを待ってからの方が無難です。

本記事では、それを前提として話を進めます。

前提

  1. 上記の通り、メインクエスト【カーク群島再び】まで進んでいること。
  2. 無垢の鍵を利用して、「属性追加・雷」を持っていること。
    • 鍵の発現効果が十分でないとなかなか出てきませんので、セーブ&ロードも視野に入れてください。
  3. スキルツリーで「グランツオルゲン」を解放していること。
    • 品質上限999や投入回数増加、リビルドレベル上限解放なども上げておくと更に良いでしょう。
  4. 以下に挙げる『ライザの手も借りたい』をクリアして、必要な素材を入手していること。

もう一つの前提

ノーマルクエスト「ライザの手も借りたい」をクリアしておきます。

https://atelier.reisalin.com/issues/287

リーゼ峡谷で魔物を10体倒すのがクエスト達成条件のため、

この時追加されるキャラクタークエスト

を同時に進行させておくと効率的です。

これをクリアすることで見聞録『白煙山道の強者』を入手。

ランドマーク「古い吊り橋」の南西部に「巨岩の兵士」が出現。

倒すことでグランツオルゲンの原料である

  • 七煌原石
  • セプトリエン

を入手します。

調合

特性を決めておきます。

グランツオルゲンには中和剤を入れるマテリアル環があるので、特性の決め方が容易です。

筆者は

  • 武器
    • 全能力強化++ 99
    • 攻速強化++ 99
    • 攻防強化++ 99
  • 防具
    • 全能力強化++ 99
    • 攻防強化++ 99
    • 防速強化++ 99
  • 装飾品
    • 全能力強化++ 99
    • 攻速強化++ 99
    • 防速強化++ 99

としています。

グランツオルゲンを調合します。

最初に七煌原石を入れ、セプトリエンを投入。

エリキシルの所に「賢者の石」を入れています。(巨岩の兵士は、賢者の石を調合するのに必要なエーテルコアもドロップします)

中和剤のマテリアル環に入れたい特性つきの中和剤を投入。

秘密の鍵

ここで使う秘密の鍵は「属性追加・雷」です。これによって、装備品のマテリアル環発現が非常に楽になります。

後は効果1と効果2を最大まで発現させて調合です。

装備品調合

先に作っておくことの利点は、武器のマテリアル環に「金属/インゴット」がある場合、この、グランツオルゲンを入れられること。

装備作成時に全能+6/攻速+7のパラメータ(ステータス上昇)は投入すればするほど効果を発揮するので、装備品によるステータスアップが見込めます。

これをロックしておいて、必要なときに複製。

そうすれば、後に加入するキャラクターや上位の装備作成も楽になります。

Redmineのリマインダースクリプトをもう少し改良。

概要

Redmine標準で備わっているリマインダー。

締め切りが近いチケットを担当者に送付できる機能をcronで登録しています。これを更に改良です。

スクリプト

#!/bin/bash

# 引数でルートディレクトリを指定(デフォルトは/home/www-data/redmine)
REDMINE_ROOT=${1:-"/home/www-data/redmine"}

# 引数で日数を指定(デフォルトは3日)
DAYS=${2:-3}

# Redmineのルートディレクトリに移動
cd $REDMINE_ROOT

# リマインダーを送信
bundle exec rake redmine:send_reminders days=$DAYS RAILS_ENV=production

前は締め切り日数を

./redmine_reminder.sh 5

のように、引数で指定していました。新しいスクリプトでは

./redmine_reminder.sh /home/wwww-data/redmine2 5

と、同一サーバ上にある別Redmineでもルートディレクトリを指定できるようになっています。

後はこれを

20 8 * * * /home/hoge/scripts/redmine_reminder.sh /home/www-data/redmine2 31

など、crontabでの自動化を行いやすくしました。

Redmine 5.1にenhanced_uxプラグインをインストール。

概要

以下のように、UX回りを大幅にパワーアップするプラグインです。

  • Ctrl+クリックでポップアップ
  • 二画面モードの追加

動作を確認した環境

  • Ubuntu 24.04
  • Redmine 5.1
  • Apache 2.4

さっくりとした手順

  1. Redmineのプラグイン配置ディレクトリに移動します。
  2. git cloneを行います。
  3. Webサービスを再起動します。
  4. 動作を確認します。

Redmine プラグイン配置ディレクトリに移動

cd /home/www-data/redmine && pwd

自分の環境に合わせます。

プラグインインストール

  • git clone
sudo -u www-data git clone https://github.com/sk-ys/redmine_enhanced_ux
  • clone 確認
ls -ld redmine_enhanced_ux

ディレクトリがあることを確認します。

Webサービス再起動

sudo systemctl restart apache2.service

動作確認

  1. Redmineに管理者権限でログインします。
  2. 管理>プラグイン>Redmine Enhanced UX plugin>設定に移動します。
  3. 有効にしたい機能を選び、チェックしていきます。

利用者にとっては、ない方がよかった機能もいくつかあります。そこはユーザーと調整しながら行ってください。

弁当の構成、バージョンアップ。

「やはり弁当に暖かい汁物がほしい」と思い立ち、スープジャーを足しました。

前に使ったものよりサイズダウンして、取り回しをよくしています。

同様に、弁当箱も心持ち小さくしました。ダイソーにて手頃なサイズのドーム型があったのはありがたいです。

調理例はこんな形。

好物の麻婆豆腐も入れられる構成なので、かなりの重宝です。

地味に、スープジャーに小さめの弁当箱もあるのでサラダジャーとしても活用可能。

レパートリーを増やす準備が整いました。

Ubuntu24.04にGrowi v7をインストール。(v7.1.0対応版)

Growi v7.1.0のインストールメモです。

パッケージ管理がyarnからpnpmに変更されているため、若干手間が異なります。

環境

  • Ubuntu 24.04
  • Apache 2.4

の基本的な設定が済んだという状況です。

前提

  • 名前解決できるドメインが用意されている。
  • そのドメインに応じた証明書が用意されている。

さっくりとはならない手順

  1. 必要なパッケージをインストールします。
  2. Node.js/npmをインストールします。
  3. Redis-serverをインストールします。
  4. Javaをインストールします。
  5. ElasticSearch 8をインストールします。
    • ElasticSearchの設定変更を行います。
    • ElasticSearchのプラグインをインストールします。
    • ElasticSearchの設定変更を反映します。
  6. MongoDBをインストールします。
    • MongoDBのデータ格納先を変更します。(オプション)
    • MongoDBの設定変更を反映します。(オプション)
  7. pnpmのインストールを行います。
  8. turboパッケージをインストールします。
  9. Growiのインストールを行います。
    • pnpmを用いてインストールします。
    • アプリのビルドを行います。
    • 自動起動のスクリプトを作成します。
  10. Apacheのリバースプロキシの設定を行います。
  11. ブラウザで初期インストールを行います。

手順

必要なパッケージのインストールを行います。

  • git, buildツールなど
sudo aptitude install build-essential git git-lfs apt-transport-https

※v6系と異なり、git-lfsをインストールしない状態でgit-cloneを行うと正しくビルドが行えません。

node20をインストールします。

  • レポジトリ追加
sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash
  • パッケージアップグレード
sudo aptitude update
  • Node.jsインストール
sudo aptitude install nodejs
  • Node.jsバージョン確認
node -v

2024/10/30現在:v20.18.0

  • npmバージョン確認
npm -v

2024/10/30現在:10.9.0

redis-serverをインストールします。

  • インストール
sudo  aptitude install redis-server
  • 起動確認
systemctl status redis-server

active(running)を確認します。

  • 自動起動有効化
sudo systemctl enable redis-server

Javaをインストールします。

  • インストール
sudo aptitude install openjdk-17-jdk

ElasticSearhをインストールします。

  • OpenJDKインストール
sudo aptitude install openjdk-17-jdk sudo bash -
  • gpg追加
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
  • レポジトリ追加
sudo echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
  • パッケージのアップグレード
sudo aptitude update
  • ElasticSearchインストール
sudo aptitude install elasticsearch

※この後、デフォルトパスワードが表示されますが、控えておく程度にしましょう。

JVM設定変更
  • バックアップディレクトリ作成
sudo mkdir /etc/elasticsearch/old

※任意のバックアップディレクトリを指定します。

  • 設定ファイルバックアップ
sudo cp -pi /etc/elasticsearch/jvm.options /etc/elasticsearch/old/jvm.options.$(date +%Y%m%d)
  • 設定ファイル書き換え
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
  • 差分
+-Xms256m
+-Xmx256m
ElasticSearchの設定変更

※この作業だけ管理者権限で実行します。

  • root昇格
sudo su -
  • 設定ファイルバックアップ
cp -pi /etc/elasticsearch/elasticsearch.yml /path/to/backup/elasticsearch.yml.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • ファイル書き換え
sed -i -e 's/xpack.security.enabled: true/xpack.security.enabled: false/' \
       -e '/xpack.security.http.ssl:/{n; s/  enabled: true/  enabled: false/}' \
       -e '/xpack.security.transport.ssl:/{n; s/  enabled: true/  enabled: false/}' /etc/elasticsearch/elasticsearch.yml
  • 差分確認
diff -u /path/to/backup/elasticsearch.yml.$(date +%Y%m%d) /etc/elasticsearch/elasticsearch.yml
  • 差分
 # Enable security features
-xpack.security.enabled: true
+xpack.security.enabled: false

 xpack.security.enrollment.enabled: true

 # Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
 xpack.security.http.ssl:
-  enabled: true
+  enabled: false
   keystore.path: certs/http.p12

 # Enable encryption and mutual authentication between cluster nodes
 xpack.security.transport.ssl:
-  enabled: true
+  enabled: false
  • rootから抜ける
exit
ElasticSearchのプラグインを追加
  • analysis-kuromoji インストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
  • analysis-isu インストール
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
自動起動設定反映
  • 起動
sudo systemctl start elasticsearch
  • 起動確認
systemctl status elasticsearch

active(running)を確認します。

  • 自動起動有効化
sudo systemctl enable elasticsearch

MongoDBインストール

レポジトリ追加

  • 必要パッケージインストール
sudo aptitude install gnupg
  • gpg追加
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
   --dearmor
  • レポジトリ追加
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
MongoDBインストール
  • パッケージのアップグレード
sudo aptitude update
  • MongoDBインストール
sudo aptitude install mongodb-org
保存先変更(オプション)

MongoDBの格納先を、冗長化構成されているパーティションにするため対応しました。

  • 格納ディレクトリ作成
sudo mkdir /home/mongodb

保存先を変えたいところにします

  • 所有者変更
sudo chown -R mongodb:mongodb /home/mongodb
  • 所有者変更確認
ls -ld /home/mongodb
  • 設定ファイルのバックアップ取得
sudo cp -pi /etc/mongod.conf /path/to/backup/mongod.conf.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

  • バックアップ確認
sudo diff -u /etc/mongod.conf /path/to/backup/mongod.conf.$(date +%Y%m%d)

バックアップが保存されたか、差分がないことで確認します。

  • ファイル書き換え
sudo sed -i 's/dbPath: \/var\/lib\/mongodb/dbPath: \/home\/mongodb/' /etc/mongod.conf
  • 差分確認
sudo diff -u /path/to/backup/mongod.conf.$(date +%Y%m%d) /etc/mongodb.conf
  • 差分
-  dbPath: /var/lib/mongodb
+  dbPath: /home/mongodb
自動起動有効
  • mongodサービス起動
sudo systemctl start mongod
  • サービス起動確認
systemctl status mongod

active (running)を確認します

  • 自動起動有効化
sudo systemctl enable mongod

pnpmインストール

  • npmでpnpmインストール
sudo npm install -g pnpm
  • turboインストール

※Growi v6.1.0から必須パッケージとなりました。

sudo yarn global add turbo

Growiインストール

  • git clone
sudo git clone https://github.com/weseek/growi /home/www-data/growi

※任意のディレクトリを指定します。

  • ディレクトリ移動
cd /home/www-data/growi && pwd

先ほどcloneしたディレクトリです。

  • チェックアウト
sudo git checkout -b v7.1.0 refs/tags/v7.1.0
  • lfs pull
sudo git lfs pull
  • pnpmによるインストール
sudo pnpm install

CPUのスペックによっては相当な時間がかかります。

  • ビルド
sudo npm run app:build

やはり時間がかかります。

自動起動スクリプトの作成

  • systemd作成
cat <<- __EOF__ | sudo tee -a /etc/systemd/system/growi.service
[Unit]
Description = growi
After=network-online.target mongod.service
After=network.target elasticsearch.service
ConditionPathExists=【/home/www-data/growi】

[Service]
ExecStart=【/home/www-data/growi/】growi-start.sh
Restart=no
Type=simple

[Install]
WantedBy=multi-user.target
__EOF__

※【】内を、git cloneしたディレクトリにします。

  • Growiインストールディレクトリに作成
  • 教義・信仰に沿ったエディタで作成します。
  • ファイル名:growi-start.sh
  • growiを配置したディレクトリ内に作成します。
#!/bin/bash
cd 【/home/www-data/growi】
NODE_ENV=production \
AUDIT_LOG_ENABLED=true \
FORCE_WIKI_MODE=private \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=[任意の文字列] \
npm run app:server

※【】内を、git cloneしたディレクトリにします。
[]内には任意の文字列を入れます。 例:PASSWORD_SEED=GOLDEN_SEED

また、オプションなどは好みに応じて指定してください。(今回はs3互換クラウドストレージに保存するため、ファイルのアップロードを自由選択にしています。)

  • 権限変更
sudo chmod +x /home/www-data/growi/growi-start.sh
  • systemd設定反映
sudo systemctl daemon-reload
  • growi有効化
sudo systemctl start growi.service
  • growi有効化確認
systemctl status growi.service

active(running)を確認

  • 自動起動有効化
sudo systemctl enable growi.service

Apacheによるリバースプロキシの設定

  • モジュールインストール
sudo a2enmod proxy_http rewrite
  • apache再起動
sudo systemctl restart apache2.service
  • ログ保存ディレクトリ作成
suod mkdir /var/log/growi/
  • 所有者変更
sudo chown -R www-data:www-data /var/log/growi
  • 設定ファイル作成
cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/growi.conf
<VirtualHost _default_:80>
    ServerName 【hoge.example.com】
    # ドメイン名を指定します
    RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# HTTPアクセスを強制的にHTTPSにリダイレクトします
</VirtualHost>

<VirtualHost _default_:443>
    ServerName 【hoge.example.com】
    # ドメイン名を指定します
    CustomLog /var/log/growi/growi_access.log combined 
    ErrorLog /var/log/growi/growi_error.log

#SSL設定
  SSLEngine on
    Protocols h2 http/1.1
  # SSLを有効化します

SSLCertificateFile 【/etc/certs/hoge.example.com.crt】
# SSL証明書を指定します
SSLCertificateKeyFile 【/etc/private/hoge.example.com.key】
# 秘密鍵を指定します

    # Header に Host: example.com を追加するため
    ProxyPreserveHost On
    # HTTPS利用時: Header に x-forwarded-proto: https を追加するため
    RequestHeader set x-forwarded-proto 'https'
    # Apache では static assets で 304 が返らないことがあるので ETag を無効化する
    <ifModule mod_headers.c>
            Header unset ETag
    </ifModule>
    FileETag None

    # socket.io の path を rewrite する
    RewriteEngine On
    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
    RewriteRule /(.*) ws://localhost:3000/$1 [P,L]

    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

</VirtualHost>

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off
__EOF__

【】内を自分の環境に変更してください。

※Ubuntu22.04の時と異なり、socket.ioのpathは公式ドキュメント通りで正常に動作しています。

  • 設定反映
sudo a2ensite growi.conf
  • コンフィグ確認
sudo apache2ctl configtest

Syntax OKを確認します。

  • Apache2再起動
sudo systemctl restart apache2.service

Growiインストール確認

http://設定したドメイン でアクセスします。

この初期サイトが表示されたらインストール完了です。

Ubuntu 24.04環境でのGrowi 7.0.23→7.1.0へのバージョンアップ

Ubuntu 7.1.0はかなり大きめの仕様変更がありました。

https://github.com/weseek/growi/releases/tag/v7.1.0

いくつかハマったポイントがありましたが、「自分はこの手順でうまくいった」 というメモを残します。

バージョンアップ前環境

  • Ubuntu 24.04
  • Mongodb 6.0.19
  • npm 10.9.0
  • node v20.18.0
  • yarn 1.22.22
  • Growi 7.0.23

以下の手順に沿ってインストール済みです。

https://barrel.reisalin.com/books/growi/page/ubuntu2404growi-v7v710

バージョンアップ後環境

  • Ubuntu 24.04
  • Mongodb 6.0.19
  • npm 10.9.0
  • node v20.18.0
  • pnpm 9.12.3
  • Growi 7.1.0

ここで分かるように、パッケージ管理がyarnからpnpmへと変わっています。

さっくりとした手順

  1. Growiサービスを停止します。
  2. Growiのディレクトリを退避します。
  3. 新たにgit cloneを行います。
  4. チェックアウトを行います。
  5. pnpmのインストールを行います。
  6. アプリのビルドを行います。
  7. Growiスタートアップスクリプトをコピーします。
  8. Growiサービスを起動します。
  9. バージョンアップを確認します。

なぜか通常のgit checkoutはビルドがうまくいきませんでした。

Growiサービスの停止

  • Growiサービス停止前確認
systemctl status growi.service

active(running)を確認します。

  • Growiサービス停止
sudo systemctl stop growi.service
  • Growiサービス停止後確認
systemctl stop growi.service

inactive(dead)を確認します。

Growiディレクトリの退避

  • ディレクトリ退避

筆者環境は/home/www-data/growiです。

sudo mv /home/www-data/growi /path/to/backup/directory/growi_org
  • ディレクトリ退避確認
ls -l /path/to/backup/directory/growi_org

ファイル一覧が参照できることを確認します。

Growiデータの新規取得

  • git clone
sudo git clone https://github.com/weseek/growi /home/www-data/growi

※任意のディレクトリを指定します。

  • ディレクトリ移動
cd /home/www-data/growi && pwd

先ほどcloneしたディレクトリですが、退避前のディレクトリと同じことを確認します。

Growi v7.1.0をチェックアウト

  • チェックアウト
sudo git checkout -b v7.1.0 refs/tags/v7.1.0
  • lfs pull
sudo git lfs pull

pnpmパッケージのインストール

  • npm install
sudo npm install -g pnpm
  • インストール確認
pnpm --version

9.12.3を確認(2024/11/02現在)

Growiインストール

  • lfs pull
sudo git lfs pull
  • pnpmインストール
sudo pnpm install

※ マシンスペックによっては相当時間がかかります
※ Done in 【時間】と書かれていたらアップグレード完了です

  • ビルド
sudo npm run app:build

退避させたGrowiから起動スクリプトのコピー

筆者のように、起動スクリプトをGrowiのインストールディレクトリに仕込んでいる場合の手順です。

  • スクリプトコピー
sudo cp -pi /path/to/backup/directory/growi_org/growi-start.sh /home/www-data/growi/

それぞれ、バックアップしたディレクトリとcloneしたディレクトリです。

  • コピー確認
ls -l /home/www-data/growi/growi-start.sh

ファイルがあることを確認します。

growiサービスを起動します。

  • 再開前のステータス確認
systemctl status growi.service

inactive (dead)を確認します

  • サービス再起動
sudo systemctl start growi.service

※ 完全に起動していないと、アクセスしても503エラーが発生します。

  • 再開後のステータス確認
systemctl status growi.service
サービススクリプトを[growi]にしている場合

active (running)を確認します

バージョンアップを確認します。

  1. ブラウザから設定したgrowiのドメイン/IPにアクセスします。
  2. 画面下部にあるバージョンが7.1.0であることを確認します。

Page 8 of 243

Powered by WordPress & Theme by Anders Norén