『ユミアのアトリエ ~追憶の錬金術士と幻創の地~ スペシャルコレクションボックス GSコンボセット【+オリジナルサウンドトラック】』到着と開封。

「(ライザ3と異なり)今回は物理でも持っておきたい」ということで、特典盛り盛りのセットを予約。

『ユミアのアトリエ』発売日に合わせて到着しました。

箱は相当の大きさ。

  • ソフト(CDキー)
  • クリアファイル
  • アクリルスタンド
  • ぬいぐるみ
  • サントラ2種
  • バンダナ

等々。

アクリルプレートにしても存在感は十分です。

タペストリーも同梱と、「グッズを買ったらソフトがついてきた」的なものでした。

Apache、特定のユーザーエージェントからのアクセスを404で返す。

こちらの記事の応用編。

Bot・クローラーへとアクセストラフィックを「特定のユーザーエージェントを弾く」

方法は「403エラーを返すため、柄の悪いBOTが繰り返し狙い続ける」弱点がありました。

また、confファイルに禁止するエージェントやIPを指定するため、メンテナンスが悪い難点もありました。

そこで、以下のような措置を執ります。

  1. 排除するクローラー(Bot)ならびにIPを別のファイルで管理する。
  2. Rewriteルールで「403」ではなく「404」を返すようにする。

環境

  • Ubuntu 24.04
  • Apache 2.4
  • 要:Rewriteモジュール

リライトモジュールのインストール確認

sudo apache2ctl -M |grep rewrite

rewrite_module (shared)と有効化を確認します。

有効化されていない場合は

sudo a2enmod rewrite
sudo systemctl restart apache2.service

で有効化します。

特定のユーザーエージェントを弾くためのファイルを作成

/etc/apache2/site-enabled/spam-clawler.txt として、以下のようなファイルを作成。

RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/1\.1) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (SemrushBot/7~bl) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (MJ12bot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (DotBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Baiduspider) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (YandexBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Sogou\ web\ spider) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Exabot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (MegaIndex\.ru) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (SeznamBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (BLEXBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Bytespider) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (DataForSeoBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (serpstatbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (SeekportBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (index\.community\ crawler) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (PetalBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (BacklinksExtendedBot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (GPTBot/1\.2) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (ICC-Crawler) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (ImagesiftBot) [NC]

正規表現などがある場合は注意してください。

特定のIPアドレスを弾くためのファイルを作成

/etc/apache2/site-enabled/spam-ips.txt として、以下のようなファイルを作成。

RewriteCond %{REMOTE_ADDR} ^190\.92\.
RewriteCond %{REMOTE_ADDR} ^159\.138\.
RewriteCond %{REMOTE_ADDR} ^166\.108\.
RewriteCond %{REMOTE_ADDR} ^124\.243\.
RewriteCond %{REMOTE_ADDR} ^114\.119\.
RewriteCond %{REMOTE_ADDR} ^119\.8\.
RewriteCond %{REMOTE_ADDR} ^110\.238\.
RewriteCond %{REMOTE_ADDR} ^217\.113\.194\.
RewriteCond %{REMOTE_ADDR} ^34\.123\.
RewriteCond %{REMOTE_ADDR} ^119\.13\.

confファイルの修正

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

任意のバックアップファイル、利用しているサイトを用います。

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

差分がないことを確認します。DocumentRoot等は修正します。

ファイル修正

  • /etc/apache2/sites-availables/sites.conf

以下のように修正していきます。

DocumentRoot /home/www-data/atelier/public
    <Directory /home/www-data/atelier/public>
        Options -MultiViews
        AllowOverride All
    <IfModule mod_rewrite.c>
    RewriteEngine On
    # 2025/03/21追加
    # 読み込まれたUser-Agentに基づき、Clawlerに対して404を返す
    Include /etc/apache2/sites-enabled/spam-clawler.txt
    RewriteRule .* - [R=404,L]

    # 2025/03/21追加
    # 読み込まれたIPアドレスに基づき、偽装エージェントのIPに対して404を返す
    Include /etc/apache2/sites-enabled/spam-ips.txt
    RewriteRule .* - [R=404,L]
   </IfModule>
     <RequireAll>
      Require all granted
     </RequireAll>
    </Directory>

この時、ディレクトリやパスファイルが合っていることを確認します。

整合性確認

sudo apache2ctl configtest

Syntax OKを確認します。

Webサービス再起動

sudo systemctl restart apache2.service && echo $?

0を確認

systemctl status apache2.service

tatus(running)を確認します。

設定後の確認

sudo tail -f /path/to/web/access_log 

等として、ログを流し続けて、
指定したBOTからのアクセスが404になっていることを確認できればOKです。

『ユミアのアトリエ』発売に向けての準備。

アトリエシリーズ(コンシューマー向け)最新作、『ユミアのアトリエ』発売日と言うことで準備を行いました。

公開用Redmineにプロジェクトを追加

https://atelier.reisalin.com/projects/yumia

新規プロジェクトの作成。

ライザのアトリエ3ほどの熱量があるかは不明ですが、記録には遺そうと思っています。

プレイ中の水分と糖分補給の準備

『ライザのアトリエ3』立て続けにプレイした際、脳のエネルギー源が著しく消費した反省から、今回は過剰と言えるものにしています。

アウトレットでキャラメルポップコーンがあったのはある種の救いでした。

こちらを携えつつ、集中してプレイに臨めればと思っています。

Redmineの404エラーを差し替え。

自分のメモとして残している公開用Redmine『クーケン島観光ガイド』の404.htmlファイルを差し替えた時のメモです。

環境

  • Ubuntu 24.04
  • Apache 2.4
  • ruby 3.2.3
  • MySQL
  • Redmine 5.1

htmlファイル作成

これに関しては自分の好みに合わせました。

  • Redmineの概要や特徴を
  • 英国のタブロイド紙『The Sun』のような文体で
  • 和訳付きで書いて欲しい
  • その際、フォントはRedmineのテーマ『こどもれっどまいん』のものをそのまま使う

を条件にGoogle AI「Gemini」に作成いただきました。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>404 Not Found</title>
  <style>
    /* 通常のフォント */
    @font-face {
      font-family: 'kiloji';
      src: url('/themes/redmine_theme_kodomo/font/kiloji/kiloji.woff') format('woff'),
           url('/themes/redmine_theme_kodomo/font/kiloji/kiloji.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }

    /* 太字のフォント */
    @font-face {
      font-family: 'kiloji';
      src: url('/themes/redmine_theme_kodomo/font/kiloji/kiloji_b.woff') format('woff'),
           url('/themes/redmine_theme_kodomo/font/kiloji/kiloji_b.ttf') format('truetype');
      font-weight: bold;
      font-style: normal;
    }

    body {
      font-family: 'kiloji', sans-serif;
      text-align: center;
      background-color: #f8f8f8; /* 背景色を少し明るく */
      color: #333; /* 文字色を濃いグレーに */
      padding: 20px;
    }

    h1, h2, h3, h4, h5, h6 {
      font-weight: bold; /* 見出しを太字に */
      color: #c00; /* 見出しの色を赤に */
      margin-bottom: 0.5em;
    }

    h2 {
      font-size: 1.8em;
      margin-top: 2em;
      border-bottom: 2px solid #c00; /* 下線を追加 */
      padding-bottom: 0.2em;
    }

    h3{
      font-size: 1.4em;
      margin-top: 1.5em;
    }

    p {
      font-size: 1.1em;
      line-height: 1.6;
      margin-bottom: 1em;
    }
    /* 箇条書き */
    ul{
        list-style: none;
    }

    .bold {
      font-weight: bold;
    }

    .container {
        max-width: 800px;
        margin: 0 auto;
        background-color: white;
        padding: 40px;
        box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.1);
        border-radius: 12px;
    }
    /* リンク */
    a{
      text-decoration: none;
      color: blue;
    }
  </style>
</head>
<body>
    <div class="container">
        <h1>RED-HOT REDMINE: THE PROJECT PANACEA! (AND IT WON'T COST YOU A PENNY!)</h1>
        <p>(和訳: 見出し:プロジェクト管理を激アツに!Redmineは万能薬だ!しかも、一銭もかからない!)</p>

        <h2>PAGE 3: WHAT IN THE BLAZES IS REDMINE? (AND WHY IS IT FREE AS A BIRD?)</h2>

        <p>Cor blimey, you've been living under a rock, ain't ya? Redmine's the <span class="bold">FREE</span>, open-source gaffer that sorts out all your project headaches. Think of it like a Swiss Army Knife for your work – it's got the lot! Tracking bugs, sorting deadlines, sharing files... it's like having a super-organised PA who never nicks your biscuits. And the best bit? It's <span class="bold">FREE as a bird!</span> No dodgy subscriptions, no hidden costs, no sneaky charges that'll leave you skint. It's open-source, meaning a bunch of clever clogs got together and built it for the good of humanity (and probably because they were bored). Bob's your uncle!</p>

        <p>(Page 3: Redmineって一体何者!? (しかも、なんでタダなの!?))</p>
        <p>おいおい、今までどこに隠れてたんだ?Redmineは、<span class="bold">無料</span>でオープンソースの、プロジェクトの悩みを全部解決してくれる頼れるヤツだ。仕事用のスイスアーミーナイフみたいなもんだと思えばいい – 何でもござれ!バグの追跡、締め切りの管理、ファイルの共有… まるで、あなたのビスケットを盗まない超有能な秘書がいるみたいだろ? しかも最高なは、<span class="bold">鳥のように自由(無料)</span>ってこと!怪しいサブスクも、隠れた費用も、一文無しになるようなコソコソした請求も一切なし。オープンソースだから、賢い連中が集まって、人類のために作ったんだ(多分、暇だったんだろうけど)。超簡単だろ!</p>

        <h2>PAGE 5: GET YOUR MITTS ON IT! (HOW TO USE IT AND MAKE IT YOUR OWN)</h2>

        <p>Right, listen up, 'cause this is important. First, you gotta get it installed. It's a bit techy, like setting up your Sky box, but there's loads of guides online. Once it's up and running, you create "projects". Then you chuck in your "issues". Assign 'em to your team, set deadlines, and watch the magic happen!</p>

        <p>But here's the <em>really</em> clever bit: Redmine's like a lump of Play-Doh. You can mould it into whatever shape you want! <span class="bold">That's the beauty of open-source – you can tinker with it 'til your heart's content!</span> Fancy a new feature? Get stuck in and code it yourself (or find a friendly geek to do it for you). Want to change the colours to match your favourite football team? Go for it! It's all yours to play with!</p>

        <p>(和訳: 5ページ目:Redmineをゲットせよ!(使い方と自分だけのものにする方法))</p>
        <p>よーく聞けよ、こっからが重要だ。まず、インストールしなきゃいけない。Skyのセットトップボックスを設定するみたいに、ちょっと技術的なんだが、ネット上にガイドは山ほどある。インストールが終わったら、「プロジェクト」を作る。そしたら、「課題」をぶち込む。チームに割り当てて、締め切りを設定して、あとは魔法が起こるのを待つだけ!</p>
        <p>でも、<span class="bold">本当に</span>すごいのはここからだ。Redmineは、まるでPlay-Doh(粘土)の塊みたいなんだ。好きな形に作り変えられる!<span class="bold">これがオープンソースの素晴らしいところ – 心ゆくまでいじくり回せるんだ!</span> 新しい機能が欲しい?自分でコードを書いて追加しちゃえ(または、親切なギークに頼むんだ)。好きなサッカーチームに合わせて色を変えたい? やっちゃえ! 全部、あなたの自由だ!</p>

        <h2>PAGE 7: FEATURES FIT FOR A KING (OR QUEEN!) (AND YOU CAN ADD YOUR OWN!)</h2>

        <p>This ain't no Mickey Mouse software, mate. Redmine's packed with features that'll make your jaw drop:</p>
        <ul>
            <li><span class="bold">Issue Tracking:</span> Like a bloodhound on the scent, it finds and squashes bugs faster than you can say "Coronation Chicken".</li>
            <li><span class="bold">Gantt Charts:</span> See your project timeline laid out like a football pitch. Know exactly when you're gonna score that winning goal (or finish the project!).</li>
            <li><span class="bold">Wiki:</span> A shared brain for your team. Stick all your important info in there, from meeting notes to the recipe for Aunt Mildred's famous flapjacks.</li>
            <li><span class="bold">Forums:</span> Chat with your team, discuss ideas, and generally have a good old natter.</li>
            <li><span class="bold">Time Tracking:</span> See where your precious hours are going. No more slacking off!</li>
            <li><span class="bold">Custom Fields:</span> Make Redmine your own! Add whatever info you need, like "Biscuit Preference" or "Favourite Spice Girl". <span class="bold">And if that's not enough, you can add <em>even more</em> custom fields 'til the cows come home!</span></li>
            <li><span class="bold">Multiple Project Support:</span> Juggling loads of projects? No dramas! Redmine can handle it all. It's like having ten pairs of hands!</li>
        </ul>

        <p>(和訳: 7ページ目:王室御用達レベルの機能!(しかも自分で追加できる!))</p>
        <p>これは、ちゃちなソフトじゃないぜ、相棒。Redmineには、アゴが外れるほどすごい機能が満載だ:</p>
        <ul>
            <li><span class="bold">課題追跡:</span> まるで獲物を追うブラッドハウンドのように、バグを見つけて潰すのが、「コロネーションチキン」って言うより早い。</li>
            <li><span class="bold">ガントチャート:</span> プロジェクトのタイムラインが、サッカー場みたいに表示される。いつ決勝ゴールを決めるか(つまり、プロジェクトを終わらせるか!)が正確に分かる!</li>
            <li><span class="bold">Wiki:</span> チーム共有の頭脳。会議のメモから、ミルドレッドおばさんの有名なフラップジャックのレシピまで、重要な情報を全部ここにぶち込んでおけ。</li>
            <li><span class="bold">フォーラム:</span> チームとチャットしたり、アイデアを議論したり、とにかく楽しくおしゃべりできる。</li>
            <li><span class="bold">時間管理:</span> 貴重な時間がどこに使われているかを確認できる。もうサボれないぞ!</li>
            <li><span class="bold">カスタムフィールド:</span> Redmineを自分好みにカスタマイズ!「好きなビスケット」とか「好きなスパイスガール」とか、必要な情報を何でも追加できる。<span class="bold">それでも足りなきゃ、牛が帰ってくるまで、もっともっとカスタムフィールドを追加できるぞ!</span></li>
            <li><span class="bold">複数プロジェクト対応:</span> たくさんのプロジェクトを抱えてる? 問題ない!Redmineなら全部管理できる。まるで10個の手があるみたいだ!</li>
        </ul>

        <h2>PAGE 9: IT'S A KNOCKOUT! (CONCLUSION)</h2>

        <p>So there you have it. Redmine: it's free, it's powerful, and it'll make your projects run smoother than a pint of Guinness. Get on it, and you'll be laughing all the way to the bank (or at least to the pub for a celebratory pint!). You'd be a right numpty not to!</p>

        <p>(和訳: 9ページ目:こいつはすごい!(結論))</p>
        <p>これで全部だ。Redmine:無料、パワフル、そしてプロジェクトをギネスビールよりもスムーズに進めてくれる。早速使ってみて、笑いが止まらなくなるはずだ(少なくとも、お祝いのビールを飲みにパブに行くまでは!)。使わないなんて、大バカ者だぜ!</p>
        <br>
        <a href="/">トップページへ戻る</a>
    </div>
</body>
</html>

英国英語の俗語モリモリ、参考元がタブロイド紙ということもあり、読者への煽りも満載の露悪的なものにしています。こうして得た404ページを404.htmlとしてサーバ上に作成します。

サイトへの配置

  • Redmineの404.html格納ディレクトリへの移動
cd /path/to/redmine/root/directory/public

自分の環境に合わせます。/var/lib/html/redmine/public

  • 既存404.htmlの退避
sudo mv 404.html /hoge/404.html.$(date +%Y%m%d)

任意の退避先を指定します。

  • ファイル差し替え

上記の404.htmlを任意の方法でこのディレクトリに配置します。

sudo chown www-data:www-data 404.html

として、アクセス権をapache2実行ユーザ(デフォルトではwww-data)に変えておきます。

必要に応じてWebサービス再起動、動作確認

動的な部分を一切いじらないため、Webサービスの再起動は不要ですが、念のため

sudo systemctl restart apache2.service && echo $?

0を確認

として、Webサービスの再起動を行います。

設定後、サイトURLに存在しない文字列を適当に入れて、上記の404エラーが出れば設定完了です。

より明確化したいのであれば、アクセスログやエラーログを確認して404がでていることを確認しましょう。

言葉のアクスタ。

気になっていた商品が届きました。

「空論」アクスタです。

机の上に置くことで、気軽に「机上の空論」が楽しめる(?)逸品。

うっすらと「ムリ」と小さく書かれているところもポイント。

サイズ感も手頃なので、常に自分への戒めとしておいておきます。

Steam版『ユミアのアトリエ』体験版メモ。(軽微なネタバレあり)

発売に先駆けて体験版がダウンロード可能になったのでメモです。

ポータブルゲーム機での動作

手持ちの『MSI Claw』にて動作を確認しましたが、起動に少し時間がかかりました。

序章プレイ中で躓いた点

「通路の先に進む」の所にある狭い通路を見つけられず、10分ほどさまよっていました。

ライザ3との操作感の違い

これになれるまで時間がかかりそうです。

  • Yで狭いところに移動。この時、RTで持ち上げられる。
  • Bでしゃがむ。敵に見つかりにくくなる。(ブルリフTと同じ)
  • Aでジャンプ。更に壁でジャンプすることで二段ジャンプが可能。
  • LTで銃を構え、RTで射撃が可能。
  • Yは採取。Xでスウィング。

特に、しゃがむが別操作になったことやジャンプが多用することになったのが『ライザのアトリエ3』との違い。

今回、ライザ2~3よりもアクション要素が多いので少し戸惑っています。

まずは慣れるところかが当面の目標です。

万年筆のインク“換装”。

1ヶ月以上にわたり、作業をサボっていた万年筆のインク補充。

ようやく終わりと思ったら、補充しようとしていた万年筆のインク切れ。インクそのものも終売となっていたので

万年筆を洗浄して乾燥。コンバータは捨てます。

そうして、インクも換装。

こうして、コンバータ経由でインクの交換を手早く行えるのが利点です。

Ubuntu 24.04環境で、BookStackを24.10→v25.02にアップグレード。

Ubuntu24.04環境でBookStackをアップグレードしたときの手順メモです。

環境

  • BookStack v24.10
    • 25.02にアップグレード
  • Ubuntu 24.04
  • Apache 2.4系
  • PHP 8.3
  • MySQL 8系

さっくりとした手順

https://manualmaton.com/2023/12/15

以前に実施した、こちらの記事の通りに行いました。

  1. DBのバックアップを行います。
  • 推奨:システム全体のバックアップ
  1. git pullとアップグレードを行います。
  2. キャッシュをクリアします。
  3. Webサービス再起動を行います。
  4. アップグレード確認と動作確認を行います。

手順

システム全体のバックアップ(推奨)

万一に備え、システム全体のバックアップを取ることを推奨します。AWSや仮想サーバ等の場合は、インスタンスをまるごとバックアップしておくと良いでしょう。

mysqldumpによるDBバックアップ

  • 保存ディレクトリに移動
cd /hoge

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

mysqldump -h localhost -u bookstack -p --no-tablespaces --single-transaction bookstack > bookstack_backup.$(date +%Y%m%d).sql

DB名やDBユーザは自分の環境に合わせます。

  • バックアップ確認
less bookstack_backup.$(date +%Y%m%d).sql

平文で読めることを確認します。

git pullとアップグレード

  • BookStackのディレクトリに移動
cd /var/lib/BookStack/ && pwd

インストールされているディレクトリを指定します

  • git pull
sudo -u www-data git pull origin release

実行例(一部抜粋)

remote: Enumerating objects: 6028, done.
remote: Counting objects: 100% (1295/1295), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 6028 (delta 1263), reused 1248 (delta 1248), pack-reused 4733 (from 3)
Receiving objects: 100% (6028/6028), 5.75 MiB | 18.75 MiB/s, done.
Resolving deltas: 100% (3708/3708), completed with 405 local objects.
From https://github.com/BookStackApp/BookStack
 * branch                release    -> FETCH_HEAD
   b0dda6e6a..268e35343  release    -> origin/release
Updating b0dda6e6a..268e35343
Fast-forward
 .env.example.complete                                                                     |    5 +
 .github/translators.txt                                                                   |   40 +-
 .github/workflows/analyse-php.yml                                                         |    4 +-
 .github/workflows/lint-js.yml                                                             |    4 +-
 .github/workflows/lint-php.yml                                                            |    6 +-
 .github/workflows/test-js.yml                                                             |   29 +
 .github/workflows/test-migrations.yml                                                     |    6 +-
 .github/workflows/test-php.yml                                                            |    6 +-
 .gitignore                                                                                |    1 +
 LICENSE                                                                                   |    2 +-
 app/Access/ExternalBaseUserProvider.php                                                   |   49 +-
 app/Access/Ldap.php                                                                       |    8 +-

composer install

sudo -u www-data composer install --no-dev
  • 実行例(一部抜粋)
> @php -r "!file_exists('bootstrap/cache/services.php') || @unlink('bootstrap/cache/services.php');"
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 5 installs, 70 updates, 8 removals
  - Downloading bacon/bacon-qr-code (v3.0.1)
  - Downloading dompdf/php-svg-lib (1.0.0)
  - Downloading dompdf/php-font-lib (1.0.1)
  - Downloading dompdf/dompdf (v3.1.0)
  - Downloading symfony/deprecation-contracts (v3.5.1)
  - Downloading symfony/http-foundation (v7.2.3)
  - Downloading guzzlehttp/uri-template (v1.0.4)
  - Downloading intervention/gif (4.2.1)
  - Downloading intervention/image (3.11.1)
  - Downloading symfony/process (v7.2.0)
  - Downloading knplabs/knp-snappy (v1.5.1)
  - Downloading symfony/string (v7.2.0)
  - Downloading symfony/service-contracts (v3.5.1)
  - Downloading symfony/console (v7.2.1)
  - Downloading laravel/prompts (v0.3.5)
  - Downloading laravel/serializable-closure (v2.0.3)
  - Downloading paragonie/constant_time_encoding (v3.0.0)
  - Downloading phpseclib/phpseclib (3.0.43)
  - Downloading league/oauth1-client (v1.11.0)
  - Downloading voku/portable-ascii (2.0.3)
  - Downloading symfony/css-selector (v7.2.0)
  - Downloading tijsverkoyen/css-to-inline-styles (v2.3.0)
  - Downloading symfony/var-dumper (v7.2.3)
  - Downloading symfony/uid (v7.2.0)
  - Downloading symfony/routing (v7.2.3)
  - Downloading symfony/mime (v7.2.3)
  - Downloading symfony/event-dispatcher-contracts (v3.5.1)
  - Downloading symfony/event-dispatcher (v7.2.0)
  • DBマイグレート
sudo -u www-data php artisan migrate

※この時、Are you sure you want to run this command?というプロンプトには「Yes」が見えるようにカーソルを移動してEnterします。そのままEnterするとキャンセルされ、全体のアップグレードが行われません。

アップグレード後のキャッシュクリアを行います。

  • キャッシュクリア
sudo -u www-data php artisan cache:clear
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan view:clear

上記、それぞれ、successfully.で終わることを確認します。

Webサービス(apache)再起動

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

active(running)を確認します

  • apache再開
sudo systemctl restart apache2.service && echo $?

0を確認します。

  • apache再起動後確認
systemctl status apache2.service

active(runnning)を確認します

バージョンアップ確認

  1. BookStackがインストールされているURLにアクセスします。
  2. 管理者権限でログインします。
  3. 設定に進みシステムバージョンが作業時の最新版になっていることを確認します。
  4. ページの作成や編集が正常に行えることを確認します。

バージョンアップ後の作業(dumpファイル削除)

※SQLファイルが平文で読めるのは非常に危険な状態なので、作業を確認次第、早急に実施します※

  • 保存ディレクトリに移動
cd /hoge

DBバックアップを行ったディレクトリに移動します。

  • ファイル削除
shred -u bookstack_backup.$(date +%Y%m%d).sql
  • ファイル削除確認
ls -l bookstack_backup.$(date +%Y%m%d).sql

ファイルがないことを確認します。

Web解析システムmatomoの自動アップグレード機能。

Jetpackの代わりとして運用しているWeb解析、Matomo。更新もあまり手間を必要とせず利用可能でした。

このように「新しいアップデート」ボタンが出てきますので

これを押した後に「自動アップデート」をクリック。

この成功の画面が出て、「Matomoを続ける」をクリック。

バージョンによってはDBのアップブレードを示唆されますので、

Matomoのアップグレードをクリック。

このDBのアップグレードも終われば完了。

Growi v7.1.x→v7.2.0へのアップグレード。

概要

Growi v7.1.xをインストールしているのであれば、v7.2.0へのアップグレードはv7.1.xと同じ手順でアップグレードできました。

前提

  • 既にgrowi v7.1.xをインストールしていること。
  • 管理画面トップやトップページ右下からバージョンが7.1.xであることを再確認します。
  • systemdによってサービス化されていること。
  • 具体的な手順はhttps://barrel.reisalin.com/books/growi/page/ubuntu2404growi-v7v710-ImY
  • 最新版や安定版がリリースされていることを以下のサイトで確認していること。
  • https://github.com/weseek/growi/releases
  • ※設定ファイルの変更やパッケージインストールの変更、nodeのバージョンアップの必要等があれば、それも事前に済ませます。

手順

さっくりとした手順

  1. Growiをメンテナンスモードにします。
  2. Growiのサービスを停止します。
  3. バックアップを取ります。
  4. gitコマンドで最新版をcheckoutします。
  5. アップグレードを行います。
  6. Growiのサービスを再開します。
  7. Growiのメンテナンスモードを解除します。
  8. アップグレードされたことを確認します。

メンテナンスモード有効化

  1. Growiに管理者権限でログインします。
  2. 管理トップ>アプリ設定に進み、「メンテナンスモードを開始する」をクリックします。
  3. トップページに戻り「メンテナンスモード」が表示されていることを確認します。

バックアップ

以下をバックアップします。

  • mongodbの格納データ
cat /etc/mongod.conf |grep dbPath

として、ここのディレクトリ一式を控えます。(筆者環境 /home/mongodb)

このディレクトリを任意の方法でバックアップします。

  • Growiの添付ファイル一式が納められているディレクトリ(ファイルアップロード先をlocalにしている場合のみ)
/growi/root/directory/apps/app/public

(筆者環境 /home/www-data/growi/apps/app/public)ここも念のためバックアップします。

※ 添付ファイルのアップロード先をAWSやAzureなどにしている場合は不要です

  • vpsや仮想ゲストの場合はシステム全体:推奨

スナップショット機能などでシステム全体をバックアップした方が確実で安心です。

growiサービスを停止します

  • growiのステータス確認(停止前)
systemctl status growi.service

※ サービススクリプト名は自分の環境に合わせます。
※ active(running)を確認します

  • growiのサービス停止
sudo systemctl stop growi.service
  • growiのステータス確認(停止後)
systemctl status growi.service

inactive (dead)を確認します

growiディレクトリに移動します

cd /opt/growi

自分の環境に合わせます。(筆者環境/home/www-data/growi)

リリースタグを確認します。

  • リリースタグ取得
sudo git fetch --tags
  • リリースタグ確認
sudo git tag -l

スペースで確認していき、上記リリースサイトと同じバージョンがあることを確認します。

チェックアウトとインストールを行います。

  • 変更を一時的に退避
sudo git stash
  • チェックアウト
sudo git checkout 【バージョン】
  • pnpm install
sudo pnpm i
  • ビルド
sudo npm run app:build

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

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

inactive (dead)を確認します

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

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

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

→ サービススクリプトを[growi]にしている場合

active (running)を確認します

メンテナンスモード無効化

  1. Growiに管理者権限でログインします。
  2. 管理トップ>アプリ設定に進み、「メンテナンスモードを終了する」をクリックします。
  3. トップページに戻り「メンテナンスモード」が表示されていないことを確認します。

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

  1. 画面下部にあるバージョンがチェックアウトしたバージョン(v7.2.x)であることを確認します。
  2. 各種機能(ページ閲覧や編集)などが正常に行えるかを確認します。

バージョンアップ後の作業

必要に応じてバックアップしたファイル一式やスナップショットを削除します。

Page 2 of 250

Powered by WordPress & Theme by Anders Norén