投稿者: manualmaton Page 22 of 244

Growi v7でページ編集時に空白になる問題に対処(Apache リバースプロキシのWebSocket設定)

事象の内容

  • Growiのバージョンをv6.3.5→v7.0.11にアップグレード後、既存のページを編集しようとすると編集エリアが空白になってしまう。
  • 新規ページを作成する際に、テンプレートが適用されない。

先のエントリーで述べたようにWikiとしては致命的な弱点だったため、やむなくv6.3.5に戻したという経緯があります。

ですが、回避策が見つかりましたのでメモとして残します。

事象が発生した環境

  • Ubuntu 22.04
  • Apache 2.4
  • Growi v7.0.11をDockerではなくオンプレ環境で利用。
  • Apacheによるリバースプロキシを設定

同一事象をネットで確認。

How to reproduce? (再現手順)

2台のHostPCでそれぞれGrowiを立ち上げています。A環境・B環境と呼称します。

「データ移行」機能を用いて、A環境からB環境にデータをインポートする
B環境のGrowiに他のPCからアクセスする
記事の編集画面を表示する

What happens? (症状)

記事の編集画面が白紙になっており、そのまま保存しても記事の内容が失われる(添付画面参照)

と、事象が一致。

事象の原因

上記issueのツリーに

私の環境でも編集画面が空白になる現象が観測されました。

私は https-portal を使ってデプロイしているのですが、 growi-docker-compose/examples/https-portal にある WEBSOCKET: 'true' の環境変数を設定し損ねていたのが原因でした。
私の環境では、これを設定すると通常通り編集を行えることを確認しております。逆に、コメントアウトすると空白に戻ります。

とあります。

これを原因と断定し、対処に臨みます。

対応方法のさっくりとした手順

  1. 現状のgrowiのリバースプロキシの設定を確認。
  2. 設定ファイルのバックアップ。
  3. 設定ファイルを修正。
  4. 修正を反映。
  5. 事象の解決確認。

参考にしたURL

How to Reverse Proxy Websockets with Apache 2.4

現段階でのリバースプロキシの設定を確認します。

  • Apacheのバーチャルファイルを確認
cat /etc/apache2/sites-available/growi.conf

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

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

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

設定そのものはgithubのgrowi公式ドキュメントに沿ったものでしたが、これが引っかかっていたようです。

設定ファイルのバックアップを取ります。

  • バックアップ
sudo cp -pi /etc/apache2/sites-available/growi.conf /path/to/backup/directory/growi.conf.$(date +%Y%m%d)

ファイル名は自分の環境に合わせます。適宜、任意のバックアップディレクトリを指定します。

  • バックアップ確認
diff -u /path/to/backup/directory/growi.conf.$(date +%Y%m%d) /etc/apache2/sites-available/growi.conf

差分が無いこと(エラーがないこと)でバックアップを確認します。

ファイルを修正します。

上記、バックアップを取ったファイルを教義・信仰に沿ったエディタで編集します。(要管理者権限)

  • 削除する内容
    # socket.io の path を rewrite する
    RewriteEngine On
    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
    RewriteRule /(.*) ws://localhost:3000/ [P,L]
  • 削除した箇所に追記する内容
     # WebSocketのための設定
     RewriteEngine On
     RewriteCond %{HTTP:Upgrade} =websocket [NC]
     RewriteCond %{HTTP:Connection} upgrade [NC]
     RewriteRule /(.*) ws://localhost:3000/$1 [P,L]

編集後、差分を取ります。

  • 差分確認
diff -u /path/to/backup/directory/growi.conf.$(date +%Y%m%d) /etc/apache2/sites-available/growi.conf
  • 差分結果
-    # socket.io の path を rewrite する
-    RewriteEngine On
-    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
-    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
-    RewriteRule /(.*) ws://localhost:3000/ [P,L]
+     # WebSocketのための設定
+     RewriteEngine On
+     RewriteCond %{HTTP:Upgrade} =websocket [NC]
+     RewriteCond %{HTTP:Connection} upgrade [NC]
+     RewriteRule /(.*) ws://localhost:3000/$1 [P,L]

設定を反映します。

  • 構文確認
sudo apache2ctl configtest

Syntax OKを確認します。

  • Apache再起動前確認
systemctl status apache2.service

active (running)を確認します。

  • Apache再起動
sudo systemctl restart apache2.service
  • Apache再起動後確認
systemctl status apache2.service

active (running)を確認します。

事象の解決を確認します。

上記、設定を行ったGrowiサイトにアクセスします。

編集後、左ペイン(エディタ部分)がそのまま残っていれば対処完了です。

Nextcloud29.03へのアップグレード後の警告解消。(テーブルにインデックス追加)

概要

Nextcloudを29.0.3にアップデート後、以下の警告を確認しました。

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。 オプションのインデックス "schedulobj_lastmodified_idx" がテーブル "schedulingobjects"にありません

こちらに対応します。

環境

  • Ubuntu 20.04
  • PHP8.1
  • Nextcloud 29.0.3 (29.0.2からアップデート)

また、nextcloudの実行ユーザーはwww-dataです。

Nextcloudのディレクトリに移動します。

  • ディレクトリ移動
cd /var/www/html/nextcloud && pwd

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

occを実行します。

  • 指示されたコマンドを実行
sudo -u www-data php occ db:add-missing-indices
  • 出力結果
Adding additional schedulobj_lastmodified_idx index to the oc_schedulingobjects table, this can take some time...
oc_schedulingobjects table updated successfully.

警告の解消を確認します。

  1. 上記の措置を執ったNextcloudのサイトに管理者権限でログインします。
  2. 管理>概要に進みます。
  3. 警告が消えていることを確認します。

解消方法がある程度示されているので、Nextcloudは親切です。

Growiバージョンアップ時の問題点と切り戻しでハマったこと。(nodeとturboのバージョンダウン)

Growiのバージョンをv6.3.5 → v7.0.10に変えたところ、以下のデグレを自分の環境で確認しました。

  1. 編集したページを再度編集しようとすると空白になる。
    • 再々編集した場合でも消える場合がある。
  2. 新しいページを作ったときにテンプレートが適用されない。

Wikiとしてこの2つは致命的なので、v6.3.5に切り戻しを行いましたが、ダウングレードできない事象が発生しました。

以下、その対処記録です。

環境

  • Ubuntu 22.04
  • Dockerではなくオンプレ環境で稼働
  • Growi v7.0.10→v6.3.5に切り戻しをしましたが、yarnの途中で失敗しました。

その途中で確認したこと

  1. v7.0.1へのセットアップ後、aptでnodeのバージョンが上がっていたことにより、v6.3.xの対象外になっていました。(18→19)
  2. v7.xへのセットアップ時、それにつれてturboのバージョンも上がっていました。

問題はこの2つにあると仮定して、これらのバージョンダウンを行っていきます。

対処

  • バージョン管理のためにnをインストール
sudo npm install -g n
  • インストール可能なnodeバージョンを確認
n ls-remote --all

→ 18系の最新版18.20.3をインスト-ルします

  • nでバージョンを指定してインストール
sudo n 18.20.3
  • バージョン確認
node -v

v18.20.3を確認

  • turboのバージョンを戻す
sudo yarn update turbo@1.12.2

この後、以下の手順でv7.0.10→v6.3.5へバージョンダウンを行えました。

https://barrel.reisalin.com/books/growi/page/growi

Webアプリはミドルウェアとの兼ね合いでハマることが多いんで注意です。

修復と補強。

出先で、その出来事は起きました。

5月の最初に買ったハリー・ポッター「スリザリン」のバックパック。その紐が根元から切れてしまいました。

下駄の鼻緒が切れたような不吉な出来事だったので、この日の予定を全てキャンセルして家に戻ります。

そして、母に修復を依頼しました。

瞬く間に復旧。

  • ボンドで固定してから
  • 三重の折り返し縫い

外れなかった方も同じように強化してくれたとのこと。

デザインとモチーフが好きなので、壊れたときには目が真っ暗に。

ですが、こうして復旧して何よりです。

続『ライザのアトリエ3』終盤の武器(アニエスルーチェ)調合。

この記事から一年超。

本作の様々な知見を得て、現時点での理想的なライザの武器を調合しました。

作成タイミング

この『アニエスルーチェ』を取得した直後です。

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

武器データ

武器名『アニエスルーチェ』

  • HP: 233
  • 攻撃力: 595
  • 防御力: 222
  • 素早さ: 403
  • 効果1:純粋な希望
    • アイテムで弱点を突いたときのダメージが増加し、さらにアイテムのクリティカル時のダメージが増加する
  • 効果2:アタッカーの証6
    • リンクコールで上書き
    • アタッカーレベルが加算され、アタッカーのロールになりやすくなる
  • 効果3:対の共鳴・大
    • ツヴァイレゾナンスで付与
    • クリティカル時のダメージが増加する
  • 効果4:立派な切れ味
    • 鋭い爪で付与
    • クリティカル時に与えるダメージが増加する
  • 特性1:攻防強化++ 99
    • 攻撃力と防御力が最大で100増加する
  • 特性2:攻速強化++ 99
    • 攻撃力と素早さが最大で100増加する
  • 特性3:全能力強化++ 99
    • 全ての能力値が最大で50増加する
  • 超特性:英雄の心得
    • アタッカーレベルが上昇

また、趣味で「ソードマスター」を付与させています。

なぜこの効果と特性か?

「コアアイテムの威力を上げる」を突き詰めた形です。

本作のシステム「ロール」の恩恵を最大限利用するため、超特性はロールレベルを上げるもの。

特に「アルケミスト」はレベルに応じてアイテムのダメージが増床するので極限まで上げた形です。

そして、上位ロール(アルケミスト)は基本ロールの特性をそのまま参照。

アニエスルーチェが元々持つサポーターレベルではなく、アタッカーに変更したのも、アタッカーの「レベルに応じてクリティカル率とクリティカルボーナスが上昇する」を上げるためです。

前提

スキルツリーで

  • 品質上昇上限 999
  • アイテムリビルドレベル 99
  • 投入回数を全て解放

まで持っていきます。(筆者はアドバンスドスキルの投入回数上昇も入れています)また、当然ながら、

  • 原料となるグランツオルゲンは取得していて
  • 影響拡大形のエリキシル(賢者の石など)

は準備済みとします。

  • 超特性:超純度による無限ジェム稼ぎ

も無くてはならないものです。

準備

超特性「英雄の心得」を持つグリッターサンドを入手します。(入手場所はネメド地方の狩人の泊まり場が便利です)

原料のグランツオルゲンは効果1と効果2を全解放。特性はこの時点で決めておきます。ついでに、秘密の鍵を用いて火属性を付与させておくと便利です。

調合時の秘密の鍵も厳選が必要です。

  • モチーフ:星
  • スーパーレア
  • シンセサイズ効果:ステータス上昇系

を入手しておきます。(今回は素早さ上昇:極を用いました)

調合

武器を作成します。

アニエスルーチェの調合を開始します。

原料にグランツオルゲンを投入。

超特性「英雄の心得」を持つグリッターサンドを投入。

この2つを入れたらシンセサイズキーを入れます。

レシピLv.3を発現させるため星をモチーフにしたスーパーレアの鍵を入れます。

上述した通り、シンセサイズ効果はステータス上昇系です。

他の原料には目もくれず、グランツオルゲンを限界まで入れます。

これは、グランツオルゲンには「調合時にステータス上昇」があるためです。

最大まで投入後、引き継ぎ特性を選択。

この段階では特性はロックされていますが、ここから更に加工していきます。

リビルドとリンクコール

リビルドの前に、念のため複製しておきます。

リビルド自、効果2「サポーターの証」のところでリンクコールをします。

古の闘剣を投入し、効果を上書きします。

リビルドのトキにリンクコールをするのは、上述した「グランツオルゲンの調合時効果」を最大限発揮するためです。

特性・効果を発現させていきます。賢者の石/古の賢者の石といった影響拡大を持つアイテムで一気に発現させましょう。

ついでにここでソードマスターも発現させました。

リビルドで特性・超特性を発現します。

これも、念のため複製します。

装備強化

装備を強化させます。

先に述べたように

  • ツヴァイレゾナンス
  • 鋭い爪

を投入してクリティカル時のダメージを上げる構成にします。

もう1スロットはステータスが一番上がるものにしました。

完成

効果のみならず、ステータスも万全の武器が完成しました。

休日夜の『ウイングスパン:ソロ』。

ここのところ、通勤時にアプリ版の『ウイングスパン』を回しています。

このゲーム、やはり面白いということで物理で行いました。

独立拡張『東洋の翼』で、特別ソロルール「つがいモード」です。

こちらが餌やカードをかき集めていくのに対して、対戦相手(オートマ)は餌を獲得せずに卵やカードをピンポイントで置いていきます。

こちらはボーナスカードである「平原にある鳥の巣の種類の数」をばらけるように配置すると共に、つがいトークンをできるだけ一つの塊になるようにプレイ。

そうして5R終了を迎えた盤面がこちら。

森に置いた「オシドリ」が継続的に手札を補充してくれたのでボーナスカード狙いの配置を行え、

自分(白)のつがいトークンは全てひとつながりとなりました。

対してオートマはトキやインドオオノガンなどの高得点カードや絶え間ない卵の獲得で得点を重ねていきます。(途中で卵トークンが足りなくなり、基本セットから拝借するほどでした)

項目手動オートマ
鳥カード3334
ボーナスカード5-
ラウンド終了目的77
1721
蓄えた餌1-
差し込んだカード60
つがいの塊103
合計7965

最終得点は79-65により勝利。

  • ラウンド終了時に効果をもたらすカード
  • 最終的な勝利目的に沿った戦略
  • 「とにかくつがいをひとかたまりに」を意識した

のが勝因でしょうか。

とはいえ、相手の難易度は一番低いレベルなので、安定してこれに勝てるようにしていきたいものです。

情報カード&ノートの収納システム。

昨年から愛用している情報カード。1つの案件事に1枚を使うという、思考の整理には便利。

ですが、記録をログ形式で、時系列に追っていくためにはノートも不可欠です。

そこで、こういうものを用意しました。

情報カードとクリップボードは元々持っていたもの。

後は百均で

  • B5ソフトケース
  • B6ファスナーケース
  • B5ノート
  • B5下敷き
  • 2L(B6)フォトアルバム

を購入。

ファスナーケースには白紙のカードとラベル用に便利なシールを。

2Lのアルバムは書き終えた情報カードを収納するのにジャストサイズです。

これらにノート(と下敷き)、クリップボードをケースに収納。

こんな形でまとまりました。

呼びのペンケースが隙間に入ったのも幸いです。

これで、折れやすく散逸しやすい情報カードを一つにまとめることが出来て、ノートとの連携も容易な収納システムが完成しました。

サイト、4周年。

利用しているレンタルサーバ(x-server)の年間更新が終わったとの連絡が来て、2020年から続けているこのサイトが4周年を迎えたということを悟りました。

  • 写真をたくさんアップロードしたい
  • 広告あるプランは絶対に嫌

の2つからレンタルサーバへと移行。

そこからややあってAWS Lightsailを利用しているものの、Wordpressのセキュリティ対策を考えるとこちらの便利さは譲れず。

旅行中、コロナ罹患中でも更新は続けているため、毎日の更新をできるだけ続けていく所存です。

growiのプラグイン追加。

growiはv6以降よりプラグインを簡単にインストールできる機能が備わっています。

今回、それを用いてテーブル(表)の視認性を向上させました。

growiに管理者権限でログイン後、プラグインインストーラーで

https://github.com/weseek/growi-plugin-datatables

を入力後に「インストール」。インストール後、念のため、growiを再起動します。

導入後、任意のWikiページのテーブルに「Enable Data Table」ボタンが表示されるので、こちらをクリック。

  • 検索欄
  • 列の表示/非表示
  • 並べ替え

などが表示され、

細かい表示もしやすくなっています。

思った以上にかゆいところに手が届く機能なので、growiを使っている方にはおすすめです。

惣菜の検証と準備-2-。

  • 食べ応えがあり
  • 見栄えも考慮して
  • 保存が利く

副菜・惣菜の準備ということで、改めて作ってみました。

用意したもの

  • 切り干し大根/にんじん
  • 乾燥わかめ
  • タマネギ
  • ツナ缶(油漬け)
  • 冷凍枝豆
  • すき焼きのタレ
  • 七味唐辛子

手順

  1. タマネギは薄切りにしておきます。
  2. 乾燥わかめ/切り干し大根とにんじん(乾物)は水で戻しておきます。
    • 戻ったらよく洗い、絞っておきます。
  3. フライパンに油を引き、タマネギを弱火でよく炒めます。
  4. 甘くなるまで炒めたら、ツナ缶を油ごと入れます。
  5. 戻した乾燥わかめ/切り干し大根/にんじんを加えて炒めます。
  6. 冷凍枝豆も加えます。
  7. すき焼きのタレを適量入れて、水分を飛ばすように炒め煮にします。
  8. 最後に七味唐辛子で味を調えます。

こうしてできあがったのがこちらです。

粗熱を取って密閉容器に入れればある程度は日持ちします。

盛り付けたのがこちら。単体で仕事をするのはもちろんのこと、他の素材と合わせたり炒め物の起点にするなどの汎用性があります。

Page 22 of 244

Powered by WordPress & Theme by Anders Norén