ブログ

  • blender : Physics についての機能説明 [2025/12/10]

    blender : Physics についての機能説明 [2025/12/10]

    はじめに

    Image

    このサイトでの解説では,できるだけオリジナルの用語を使用している.

    さて,今回は,物理演算の機能である「Physics」について解説します.物理演算なので,その現象を確認(見る)にはAnimationを実行する必要があります.

    Physicsは,Properties画面にあります.Physicsには,表に示したように物理現象をシミュレーションする8つの種類があります.

    例えば,アニメのキャラクターデザインのケースとして髪と人体とのシミュレーションを例示すると,Soft BodyやClothを髪のブロックに設定し,更にCollisionは,髪が接触する人体(肩や腕・・・)に設定してやれば,髪は人体の中に入り込まないようにできます.これは,Animation画面で確認することになります.

    🔬 Blender 物理演算項目の解説

    項目名日本語名特徴・用途
    Force Fieldフォースフィールドオブジェクト(パーティクル、クロス、ソフトボディ、リジッドボディなど)に外力(重力、風、渦、磁力など)を与えるために使用されます。旗を風になびかせたり、爆発で破片を吹き飛ばしたりする表現に使われます。
    Collisionコリジョンオブジェクトに衝突判定を設定します。クロス(布)、ソフトボディ(軟体)、パーティクル、および流体などのシミュレーションにおいて、他のオブジェクトとぶつかり合って変形したり動きが止まったりするようにするために必要です。床や壁などの「動かない障害物」に設定することが多いです。
    Clothクロスなどの柔軟な物体の動きをシミュレーションします。旗が風になびく様子や、キャラクターの服、カーテンなどの表現に使われます。重力や風、他のオブジェクトとの衝突(Collisionを設定したオブジェクト)の影響を受けます。
    Dynamic Paintダイナミックペイントオブジェクトにリアルタイムで波や凹凸といった変位、または塗料を塗られたようなペイントウェイト情報を作成できる機能です。ブラシオブジェクトとキャンバスオブジェクトを設定し、ブラシがキャンバスに触れたり、上を通過したりすることで効果が生まれます。水面に波紋を立てたり、雨粒の軌跡を表現したりするのに使われます。
    Soft Bodyソフトボディゼリーゴム果物などの柔らかい素材の挙動をシミュレーションします。重力や衝突などで形状が大きく変形する動きを表現できます。
    Fluid流体水、液体、煙、火、ガスなどの流体の動きをシミュレーションします。水が流れたり、渦を巻いたり、煙が立ち上ったりするリアルな表現を作成できます。
    Rigid Bodyリジッドボディ変形しない固い物体(剛体)の動きをシミュレーションします。重力、衝突、摩擦などの影響を受け、ボールが転がったり、ドミノが倒れたり、物が崩壊したりする動きを再現できます。動く物体にはアクティブ、地面や壁など動かない物体にはパッシブを設定します。blender demoはここ
    Rigid Body Constraintリジッドボディコンストレイント複数のリジッドボディオブジェクトを**ジョイント(継ぎ手)**でつなぎ、ヒンジ(蝶番)ピストンモーターなどの関係を持たせる機能です。ドアやロボットアームの動き、振り子のようなシミュレーションに使われます。

    💇 髪の毛のシミュレーションに使う機能

    1. パーティクルシステム(Particle System)

    Blenderで髪の毛を作るための主要な機能です。

    • 機能: パーティクルシステム内の「ヘアー」タイプを使用して、オブジェクトの表面から非常に多くの曲線(ストランド)を生成します。
    • 用途: 静的な髪の毛や、風、重力などの影響を受け自動的に動くシミュレーションされた髪の毛を作成できます。カット、コーミング、テクスチャリングなど、髪の見た目とスタイリングの大部分を制御できます。
    • シミュレーション: 髪の毛一本一本の動き(ダイナミクス)を計算するために、パーティクル設定内の「ヘアーダイナミクス」を有効にします。

    2. クロス(Cloth)

    パーティクルシステムと組み合わせて、またはよりリアルな動きが求められる特定の状況で使用されます。

    • 機能: 髪の毛をメッシュとして作成し、そのメッシュ全体に**クロス(布)**の物理演算を設定します。
    • 用途: 特にロングヘア大きな束の髪で、髪の塊全体の重みや揺れ、他のオブジェクトとの衝突を、布のような挙動としてシミュレートしたい場合に有効です。
    • 組み合わせ: パーティクルシステムの「ヘアー」はレンダリング用の見た目を作り、クロスシミュレーションが設定された目に見えないメッシュがそのガイドとして動き、髪の動きを制御することもあります。

    3. フォースフィールド(Force Field)

    上記のシミュレーションに外的な力を加えるために使われます。

    • 機能: 風(Wind)、渦(Vortex)、重力(Gravity)などの力をシーンに配置します。
    • 用途: 風で髪の毛がなびく様子や、水中でのふわふわとした動きなど、環境による影響を髪の毛のシミュレーションに加えるために使用します。

    したがって、リストアップされた項目の中では、直接的に髪の毛の動きのシミュレーションに使われるのはクロス (Cloth) の物理演算ですが、Blenderで髪の毛を作る際にはパーティクルシステムが主役となります。

    👩‍🦱 ソフトボディを髪のブロックに適用する利点

    ソフトボディは、特にアニメーションの効率とスタイルを重視する場合に、いくつかの大きなメリットがあります。

    • ✨ アニメーションの手間削減: 髪の毛一本一本のリアルなシミュレーション(パーティクルダイナミクスなど)は計算負荷が高く、制御が難しいです。ソフトボディを使うと、**髪の塊全体の慣性や重力による「遅延した動き」**を自動で計算してくれるため、アニメーターが手動で複雑な揺れをキーフレームする必要が大幅に減ります。
    • 💨 パフォーマンスの向上: 髪の毛全体を少数の低解像度のメッシュ(ブロック)として扱い、それにソフトボディを設定します。これにより、数万本のヘアストランドを計算するよりも処理速度が格段に速くなり、プレビューやレンダリングの時間を短縮できます。
    • 🎨 アニメ的な表現のしやすさ: ソフトボディは弾力性剛性を調整できるため、硬すぎず、柔らかすぎない、アニメ特有の「ぷるん」とした動き流れを比較的簡単に実現できます。これは、リアルな物理法則よりも、キャラクターの魅力を引き出すディレクションされた動きを優先するアニメーションに最適です。
    • 💥 衝突の管理: 髪のブロックメッシュにソフトボディを設定し、頭や肩にコリジョン (Collision) を設定することで、髪の毛が体や衣装を貫通するのを防ぐことができます。

    💡 実際の制作ワークフロー(ハイブリッド方式)

    このアプローチを採用する場合、以下のようなハイブリッドなワークフローになることが多いです。

    1. メッシュの作成: 前髪、横髪、後ろ髪ごとに、髪の形状をなぞる低解像度のメッシュ(ケージメッシュやガイドメッシュと呼ばれる)を作成します。
    2. ソフトボディの適用: そのメッシュにソフトボディの物理演算を適用し、重さ、硬さ、減衰などのパラメーターを設定します。
    3. パーティクルの生成: このソフトボディメッシュを、最終的なレンダリング用のパーティクルヘアーのガイドとして使用します。
    4. 結果: ソフトボディメッシュが動くと、それに追従してレンダリング用の髪の毛も動き、ブロックとしてのまとまり物理的な揺れを持ったアニメーションが完成します。

    この手法は、VRChatなどのゲームアセットや、TVアニメーションの制作パイプラインで広く採用されている、効率的かつ効果的な手法です。

    ⛓️ 鎖のシミュレーションにおけるリジッドボディの有用性

    リジッドボディは、**変形しない固い物体(剛体)**のシミュレーションに特化しており、鎖のリンク(環)のような構造をシミュレートするのに理想的です。

    1. リアルな挙動の実現

    • 剛体として: 鎖の環一つ一つをリジッドボディとして設定することで、それぞれの環が変形することなく、物理法則に従って衝突、重力、摩擦の影響を受けながら動きます。
    • 慣性と反発: 鎖を持ち上げたり振ったりした際の慣性や、環同士がぶつかり合う際のカチカチという音が聞こえてきそうな、リアルな反発を再現できます。

    2. リジッドボディコンストレイントによる結合

    このアプローチの鍵となるのが、リジッドボディコンストレイント (Rigid Body Constraint) の利用です。

    • ジョイントの作成: 鎖の環と環の間にコンストレイントを設定することで、特定の軸での回転のみを許可する**ヒンジ(Hinge)**や、ボールソケット(Ball & Socket)のようなジョイントを作成できます。
    • 自由度の制御: これにより、環同士が自然に繋がり、現実の鎖のように柔軟に曲がりながらも、互いに離れないという動きを実現できます。

    3. パフォーマンスと安定性

    • 高速な計算: リジッドボディシミュレーションは、クロスやソフトボディなどの変形を伴うシミュレーションと比較して、一般的に計算負荷が低く、安定しています
    • 安定性の確保: 多くの環を持つ鎖でも、適切なコンストレイント設定を行うことで、環同士の**不自然な貫通(めり込み)**を減らし、安定した動きを維持しやすいです。

    📝 鎖の作成手順の概要

    1. 環のモデル化: 鎖の環のメッシュを一つ作成します。
    2. リジッドボディの適用: 環のメッシュにリジッドボディを設定し、タイプをアクティブ(動く物体)にします。
    3. 配列: 配列(Array)モディファイアなどを使って、必要な数の環を複製します。
    4. コンストレイントの設定: 隣り合う環同士の間に、リジッドボディコンストレイント(例:ヒンジまたはボールソケット)を配置して接続します。
    5. シミュレーションの実行: シーンに重力を設定し、シミュレーションを実行します。

    この手法は、アンカーチェーン、吊り下げられた鎖、鎖帷子(くさりかたびら)など、様々な固い連結構造のシミュレーションに広く応用されています。

    David Vogelさんが作成した鎖のblenderのデモがblenderのデモサイトにあります(link).

    by Harikiri and Gemini3

  • 吉野家、ルーロー

    吉野家、ルーロー

    Img 0252

    !牛丼に飽きてきたので今日はこれ

  • パスワード付きZIPファイルによるメールでのファイル送信の脆弱性が高いことから政府は・・・

    パスワード付きZIPファイルによるメールでのファイル送信の脆弱性が高いことから政府は・・・

    日本政府による「PPAP」(パスワード付きZIPファイルとパスワードを別送する方式)の廃止方針が、現場に揺れを生んでいる中、多くの組織が求める“次の安全なファイル送信手段”について、最新状況とオススメの手段を以下に整理しました。

    なぜPPAPは廃止されたのか?その問題点とは

    1. ZIP暗号の脆弱性や同一経路での送信
      ZIP形式の暗号化は脆弱で、メールでパスワードも同じ経路で送るPPAPは、盗聴されるリスクが高いと指摘されています  。
    2. マルウェアの検査回避
      パスワード付きZIPはメールゲートウェイで中身がスキャンできず、ウイルス検知をすり抜けてしまう危険性があります  。
    3. 誤送信対策としても不十分
      パスワードを別手段で送っても、運用負担が高く、形骸化しがちです  。
    4. 対応の公式要請
      金融庁からも、2025年5月に金融機関に対してPPAPの利用廃止が要請されました  。

    PPAP以降、いま注目される安全なファイル送信方法

    A. WebFileなど“セキュア送信システム”の利用

    • 金融業界などで注目されている「WebFile」は、ファイル送信システムとして設計され、セキュリティ要件が厳しい現場でも導入が進んでいます  。

    B. ファイル転送サービス・クラウドストレージの活用

    • クラウドストレージ
      ファイル共有リンクにアクセス制御(閲覧・ダウンロード期限、パスワード、ウイルススキャンなど)を組み込むことで、安全性と利便性を両立できます  。
    • 一般企業での導入例
      ギガファイル便やfirestorageなど、簡易なファイル転送サービスもPPAPの代替として活用されています  。
    • **Next File Share(ネクストアライブ)**
      ・URL共有
      ・メールアドレス認証
      ・自動削除
      ・直感的なUI (月額500円〜)といった特徴を備えた、次世代型ファイル共有サービスです  。

    C. S/MIME や 暗号化メール

    • メール本文と添付ファイルを丸ごと暗号化する S/MIME は、メールベースでの安全な送信を可能にする選択肢です  。

    D. エンタープライズ向けMFT(Managed File Transfer)・プロトコル利用

    • SFTP / FTPS / AS2 / HTTPS
      安全な通信プロトコルとして、従来のFTPに代わる選択肢として使用されています  。
    • MFT(Managed File Transfer)
      これらのプロトコルを統合し、暗号化・認証・監査・ワークフローを管理できるシステムで、安全性と運用効率が向上します  。
    • FileCloud(Zero Trust File Sharing)
      独自に作成されたパスワード付きZIPを、ファイルサーバー側で強力な暗号化として提供し、パスワードを保持しない仕組みでセキュリティを向上させます  。

    E. その他:Send Anywhere や Smash などのツール

    • Send Anywhere
      6桁の認証コードで送信でき、10GBまで対応。
    • Smash
      無制限サイズの無料送信可能+パスワード保護オプションあり  。

    結論

    政府や金融当局からの正式な要請も受け、PPAP方式はセキュリティ上も運用上も限界が指摘されています。

    その代替として、安全性/操作性/コスト/運用効率などをバランスさせた方法が多数存在しており、組織のニーズに応じて最適な手段を選ぶのが現状です。

  • モスバーガーで昼ご飯!

    モスバーガーで昼ご飯!

    モスバーガーは日本の会社ですよ。知ってましたか?

    マウンテン、オーシャン、サンつの頭文字でモスです。今日は定番のエビカツバーガー!

    Img 8385

    モスバーガーはドコモ風ですが、店内は小綺麗です。外環石切店も非常に小綺麗で快適です。トイレもグッド👍。

    Img 8386
  • ChatGPT : o3は100回まで、4oはお調子者だ。

    ChatGPT : o3は100回まで、4oはお調子者だ。

    有料版のChatGPTの標準モデルは4oになっているが、blenderに関する質問については、こいつはちょっと調子が良いい。答えについて検証してみると、まぁ間違いが多い。そこでo3を使うのだが、こいつはなかなかじっくり考えてくれるし、ディスカッションのやりとりも少なくて正解に到達する時間も早いように感じる。しかし、使用制限があって。そこでオスを使ってじっくり考えてもらうのだが、使用制限があって100回までである。今日使用制限に達してしまった。数日解除まで待たなければならない。

  • 【実務で迷わない!】PPQとPVの違いとは?国際的な位置づけとバリデーション活動全体の流れを解説

    【実務で迷わない!】PPQとPVの違いとは?国際的な位置づけとバリデーション活動全体の流れを解説

    プロセスバリデーション(PV)は、医薬品製造において最も基本かつ重要な品質保証活動のひとつです。しかし、実務の現場では「PV」「PPQ」「PQ」といった類似用語が混在し、とくに「PVとPPQの違いが曖昧なまま使われている」ことも少なくありません。

    この記事では、まずPPQとPVの違いを日米欧の規制視点から明確化し、つづいてPPQがPVの一部であることを「PV実施計画書〜報告書までの全体フロー」とともに網羅的に解説します。


    ◆ 1. PPQとPVの違いとは? ― 日米欧の規制視点から

    ✅ FDA(米国)の位置づけ

    米国FDAでは、プロセスバリデーション(Process Validation)を以下の3つのステージに明確に分類しています:

    ステージ名称内容
    Stage 1プロセス設計(Process Design)製造プロセスを設計・最適化する
    Stage 2プロセス性能適格性評価(PPQ)商用スケールで製品を製造し、再現性を検証
    Stage 3継続的プロセスバリデーション(CPV)商用製造中の継続的な品質モニタリング

    👉 このうち**Stage 2に相当するのがPPQ(Process Performance Qualification)**であり、PPQはPVの一部と明確に位置付けられています。


    ✅ EU(欧州)の位置づけ

    EU(EudraLex Annex 15)では「プロセスバリデーション」という包括的概念が明記されており、PPQという単語自体は登場しません。ただし、商用製造前にプロセスが一貫性を持って再現できることを複数バッチで確認することが要求されており、その内容はFDAのPPQと同義です。

    また、Annex 15では**設備の性能評価(PQ)とプロセスの妥当性確認(PV)**を明確に区別しており、文書構造がきっちり整備されています。


    ✅ 日本(GMP省令)の位置づけ

    日本のGMP省令では「PPQ」という言葉は出てきませんが、「プロセスバリデーション」という用語は明記されています。また、PMDAの査察・照会でも近年はFDAやICHの用語体系がそのまま使用されており、実務的にはPPQはPVの一部と理解して対応するのがスタンダードです。


    ✅ 要約:PPQとPVの違い(日米欧比較表)

    区分PVの定義PPQの扱い備考
    FDA3ステージのライフサイクル型PVステージ2として明確に定義PV ⊃ PPQ の構造
    EUプロセスの再現性確認をPVに含む用語としてのPPQはなし内容的にはPPQと同義
    日本GMP省令でPVを規定PPQ用語なし(実務上導入)規制より運用に依存

    ◆ 2. PPQはPVの一部である ― 全体ステップで理解する

    PPQは、プロセスバリデーションの中でも「実際の商用スケール製造によってプロセスの妥当性を検証するステップ」であり、全体から見れば中盤に位置するPVステージ2にあたります。

    以下に、PV全体を「計画書から報告書まで」の流れとして構造化した図を示します。


    ✅ 全体ステップ:PV実施計画書から報告書までの構成(網羅的フロー)

    ① PV実施計画書(PVプロトコル)作成
     ├─ スコープ・試験項目・成功基準を定義
     ↓
    ② PPQバッチの製造(Stage 2)
     ├─ 商用スケールで連続2〜3バッチ製造
     ├─ 製造記録・試験・逸脱処理を実施
     ↓
    ③ データ収集・評価・統計解析
     ├─ 試験結果・プロセスデータの統計評価
     ↓
    ④ 成功判定とSOP改訂
     ├─ バリデーション成功可否を社内承認
     ├─ BPRやSOPの更新
     ↓
    ⑤ PV報告書の作成・承認(Final Report)
     ├─ 評価結果・結論・今後の対応方針を記載
     ↓
    ⑥ CPV(Stage 3)への移行
     ├─ 継続的モニタリング体制へ

    このうち、PPQ(Step②)だけを切り出して「PPQ活動」と呼びますが、PV全体の一部に過ぎません。


    ◆ 3. 含まれるタスクの具体例

    PVの実施には以下のタスク群が含まれます:

    カテゴリタスク概要
    計画PV実施計画書作成スコープ・基準・試験内容を事前定義
    実行PPQバッチ製造商用スケールで3バッチ前後製造
    試験出荷試験、IPC、安定性初期試験試験室および製造部門で実施
    評価統計解析(CpK、トレンド)プロセスの変動性を解析
    文書PV報告書作成結果・評価・CPV計画を記録
    継続CPV計画と移行本格製造下での監視体制構築

    ◆ 4. 実務での注意点と運用

    • PPQだけでPVが完了するわけではない
       → 試験結果、統計解析、逸脱評価、最終判定が不可欠です。
    • PV報告書が承認されて初めて「PV完了」
       → 承認なくCPVへ移行するのは重大なGMP逸脱です。
    • 社内では「PVバッチ」と「PPQバッチ」の混用に注意
       → 文書上は明確に区別し、「これはPVステージ2(PPQ)である」と明記しましょう。

    ◆ まとめ:PPQとPVの違いを正しく理解し、文書体系と対応を整える

    • PPQ(Process Performance Qualification)は、PVの一部(ステージ2)であり、PV全体を構成する中核ステップです。
    • ✅ 日米欧で用語や表現に違いはありますが、実質的には同じプロセスを指しており、共通理解が求められます
    • ✅ 実務では、PV計画書 → PPQ製造 → 試験 → 統計解析 → 報告書作成 → CPV移行という一貫した流れで活動が行われており、その中でPPQは中心的役割を果たします。

    正しい理解と文書管理は、査察対応の信頼性だけでなく、組織全体の品質文化を支える基盤です。ぜひこの機会に、社内のバリデーション体系を再確認してみてください。

    2025/06/30

  • 近所のスーパー/ホームセンターで、備蓄米が売られ始めた

    近所のスーパー/ホームセンターで、備蓄米が売られ始めた

    いつも行ってる近所のスーパーのイズミヤカナートとホームセンターのカインズで、備蓄米が売られ始めてる。

    Img 8107
  • エクソソーム製品開発の現状と展望 ~制度・技術・実務の交差点からの考察~ [2025/06/21]

    エクソソーム製品開発の現状と展望 ~制度・技術・実務の交差点からの考察~ [2025/06/21]

    エクソソーム製品開発の現状と展望 ~制度・技術・実務の交差点からの考察~

    エクソソーム(Exosome)は、細胞から分泌される直径30~150nmの細胞外小胞であり、タンパク質、脂質、核酸などの生理活性物質を内包し、細胞間コミュニケーションやシグナリングに関与することが近年明らかになっている。これを応用した治療・診断用途の製品開発が国内外で急速に進展しており、特にバイオベンチャーによる参入が活発化している。エクソソームは、細胞治療製品のように生きた細胞を投与するのではなく、その分泌産物であるため「非細胞製品」と位置付けられ、製造・品質管理が比較的容易であるとの期待が先行している。

    しかし実際には、エクソソーム製品の開発はGMP製品と同等か、あるいはそれ以上に高い実務的難易度を伴う。その主な理由は、①製品の定義と同一性の確保が困難、②分析手法の標準化が未確立、③規制上の不確実性、の3点に集約される。

    第一に、製品の同一性・一貫性の確保が極めて困難である。エクソソームの性質は、原料となる細胞種、培養条件、刺激、分離方法に大きく依存し、同じ細胞由来でもロットや環境条件の差異により、含有物や活性が大きく変動する。つまり、「プロセスが製品そのものに直結する」という特徴は、細胞製品と同様かそれ以上に強く、比較可能性(comparability)や製造バリデーションの面で大きな課題を抱えている。

    第二に、有効性・品質を正しく評価するための分析技術が未発達であることが、製品開発のボトルネックとなっている。ナノ粒子トラッキング解析(NTA)や電子顕微鏡、ELISA、質量分析などを用いた評価法が試みられているが、標準化やバリデーションに至るには至っておらず、規制当局が求める「定量的・再現性ある品質評価」に十分応えられていないのが現状である。特に、活性の指標(バイオアッセイ)や、製品のロット同等性を示すデータの構築は依然として困難である。

    こうした課題に対し、国内外では分析技術の高度化が進められている。たとえばニュージーランドのIzon Scienceは、サイズ排除クロマトグラフィーとTRPS(個粒子解析)を組み合わせたシステムを開発し、高精度な粒子測定を可能にしている。また、日本国内では株式会社ハカレルやヒューマン・メタボローム・テクノロジーズ(HMT)などが、エクソソームの定量キットや精製プロトコルを提供し、研究支援を行っている。これらの動きは将来的に、CTDに記載可能な標準試験項目や規格設定の基盤となることが期待される。

    第三に、法規制上の位置づけが不透明または製品ごとに異なることが、承認審査における不確実性を高めている。エクソソームが再生医療等製品に該当するか、医薬品扱いとなるか、あるいは化粧品・研究用試薬にとどまるかは、原料細胞の由来、製造目的、使用形態などによりケースバイケースで判断される。特にPMDAは「細胞由来成分である以上、製品の特性評価が不十分であれば医薬品としての一貫性が担保されない」との立場を取っており、事前相談段階から分析・CMCパートに関する詳細な議論が求められる。エクソソーム製品が臨床応用に至るには、このような規制不確実性への対応力と、初期からの品質設計(QbD)が不可欠である。

    一方で、臨床応用の可能性は非常に大きく、がん、神経疾患、自己免疫疾患、整形外科領域など、幅広い適応が探索されている。miRNAやタンパク質などの内包成分を利用した標的化、あるいは外部修飾によるDDS(ドラッグ・デリバリー・システム)としての展開も検討されており、製品の多様性と将来性は極めて高い。したがって、エクソソーム製品の社会実装に向けたブレークスルーは、単にバイオ活性の発見やアイデアではなく、「いかにしてその製品を定量的・再現的に規格化・証明できるか」という分析科学とCMC設計にあると言える。

    総じて、エクソソーム製品の開発は、規制上の柔軟性や科学的な可能性に注目が集まる一方で、実際の製品化にはGMP相当の製造管理、確立された分析法、比較可能性試験設計、製造一貫性の保証、PMDA対応能力といった極めて高い専門性が求められる。バイオベンチャーが参入するにあたっては、その現実的な難易度と必要な体制整備を十分に認識したうえで、**品質評価を中心とした「分析ドリブンな開発体制」**を構築することが、成功への鍵となるだろう。

  • Synology NAS : Multi Domain ~ 1つのNASの上に複数ドメイン名でサイトを構築する [2025/07/02追記]

    Synology NAS : Multi Domain ~ 1つのNASの上に複数ドメイン名でサイトを構築する [2025/07/02追記]

    はじめに

    WordPressは,PHP + MySQL (mariaDB)ベースの動的なCMSです.DSMに内蔵されたWeb Station (ApacheまたはNginx) + PHPがそれぞれ処理します.


    *CMS : content management system

    今回,一つのNASの上に2つ(以上)のサイトを構築する手順を解説します.

    以前にAI君にその方法を問うてみると「できる」と断言されました.その詳細な方法について色々と聞いてみると「それらしい答え」を出してきました.

    これまでは,ネット検索では思いついた時に,その都度調査していましたが,求めているサイト/方法/手順は見つけられませんでした.あきられて新しいIP Addressを取得(費用が必要)することも真剣に考えていところです.

    しかし,1カ月前,AI君は「できる」と断言しました.その後,1カ月くらい放置して自分の頭の中で熟成させていたこの案件ですが,この土日,及び+3日を使い,更にその詳細についてAI君と共に検討した結果,1台のSynology NASの上に2つのサイトを構築し安定稼働させることができました.2つ目以降のサイトの内容はこれから作っていこうと思ています.

    作業概要は,

    (1) DSM->File Stationで既存wordpressフォルダー複製

    (2)phpMyAdminによる既存のData Baseの移行と修正

    (3) Web Stationによるportal(仮想ドメイン?)の設定,

    (4) DMSでのText Editorによるwp-config.php, .htaccessの修正,

    等です.

    当初の検討では,Conatainer Managerを使用したwordpressのコンテナ化によるマルチドメインを検討しましたが,結局は,Web StationのVirtual Host(仮想ホスト)を使用することで一つのNASの上に複数のサイト構築が可能でした.

    以下に詳細を解説します.なお,Synology NASの解説は,日本語版では冗長なのでそれを避けて用語などは英語版の表記としています.

    構築後しばらくの間で稼働状況についてモニターリングし,追加の対策を実施している.具体的には,cache関係,portal severの設定関係で,トリッキーな挙動(ここに気づくのに時間かがかかった)と安定稼働には必須の設定を追加した.



    構築方法

    作業する前にバックアップを取ってから進めてるのが良いです.

    作業前のバックアップ

    hyper backupで現時点での/web以下(既存のwordpressファイルが格納されているfoler)をバックアップします.その他,以下の設定で実行しておきます.

    1. 設定
      • Folder : /volume1/web
      • Application : MariaDB 10
      • Web Station
    2. Backj up nowボタンを押す

    DDNSの取得

    以下の方法により構築する2つ目のDomain Nameを用意する.

    • Synology NASの場合,2台以上のNASを持っているのであれば,External Access->DDNSからSynologyからDomain NameをNASの1台に付き1つの名前を頂ける.
    • myDNS.jp様のサイトから複数個のDomain Nameを頂ける.

    Let’s Encription証明書

    証明書については,Synology NASを複数持っているので,それぞれについてSynologyからDomain Nameを取得している.

    表1. Let’s Encrypt の代表的なレート制限

    制限の種類内容
    同一FQDNでの再発行(同一証明書内容)1週間に5回まで
    同一登録ドメイン(例:example.com)に対する新規証明書発行1週間に50回まで
    失敗した認証試行数1時間に5回まで
    アカウントごとの登録レート制限あり(通常の使用で問題なし)

    Web Stationでの設定

    設定の前準備(Control Panelでの作業で示している)として以下のAccess Control Profileを作成しておく.

    Longin-> Porral->Advanedを開き以下の設定をつ以下する.

    表2. Access Control Profile

    Image

    web stationでは,以下の項目を設定することができる.web stationでの設定手順は,(3) Script language Settings →(2) Web Service →(1) Web Portalの順となる.

    1. Web Portal
    2. Web Service
    3. Script Language Settings
    4. Error Page Settings
    Image

    図1. Web Stationの設定画面 (Script Language Settingsを選択している状況)

    Script Language Settingsでprofileを作成:

    作業

    1. Creatボタンを押す
    2. Create Profile – Configre general settings画面が現れる
    3. 以下項目に入力する(後で修正は可能)
      • Profile name : <profile for 2nd site>
      • Description : <同上など,適当に>
      • PHP version : <インストールしているphpのバージョンがリストされるので,一つを選ぶ,ex: php8.2>
        • Enabe PHP cache : チェックする
        • Enable Xdebug : チェックする
        • Enable display_erros to display PHP error message :チェックする
        • (以上のチェックは,作成後に変更可能)
      • Customized PHP open_basedir : Default
      • Nextボタンをクリック
    4. Configure extensions画面が現れる
      • 全てを選択(理解できていないので全て選択,重複エラーでは重複項目のチェックを外す)
      • Nextボタンを押す
    5. Configure FPM settings画面が現れる(FastCGI Process Manager)
      • FPM mode : direcrt (PHP-FPMを使用せず,web serverがPHPを直接処理する)
      • Max processes: 102 (default)
      • Start servers : 2 (default)
      • Min spare servers : 2 (default)
      • Max spare servers : 4 (default)
      • Nextボタンを押す
    6. Configure core settings画面が現れる
      • mysqli.default_socket : /run/mysqld/mysqld10.sock (に修正, wp-config.phpの記載に合わせる)
      • pdo_mysql.default_socket : /runmysqld/mysqld10.sock (に修正, wp-config.phpの記載に合わせる)
      • 残りは規定値のまま
      • Nextボタンを押す
    7. Confirm settings画面が現れる
      • Createボタンを押す
    8. 以上

    Web Service の作成:

    Web Serviceでは,以下の項目が表示される.

    1. Default Service
    2. Native script language website
    3. Third-party Package website
    Image

    図2. Web Stationの設定画面 (Web Seviceを選択している状況)

    今回の作業では,Native script language websiteを作成する.

    Web Serviceは,site Aとsite Bで共用は可能だが,今回は,専用にそれぞれ作成した.

    作業:

    Image
    Image
    Image
    1. Createボタンを押す
    2. Select a service type画面が現れる
      • static websiteとContainerized script language websiteは選択しない.
      • Native script language websiteをチェック(選択)する
      • Service : リスト他されphpの中から「script language settings」にて作成した時に設定したphp version である「php 8.2」を選択する
      • 右隣のプルダウンメニューには,「script language settings」で作成したprofileがリストされてるのでそれを選択する.
      • Nextボタンを押す
    3. Configure geral setting画面が現れる
      • Name : <site B用であることが分かるような名前にする>
      • Descriptiion : <適当に>
      • Document root : /web/<site B>
      • HTTP back-end server : Apache HTTP Sever 2.4
      • 残りの項目は規定値(default)
      • Nextボタンを押す
    4. Confirm settings画面が現れる
      • Createボタンを押す
      • Virtual hostを作るには,http groupのread permissionが必要であり自動で作成するとのメッセージが出るので,「OK」ボタンを押す
      • Native script laguage website項目に,Service typeはPHP,Nameには作成した名前でリストされる.
      • 完了
    5. 以上

    Web Portalの作成 :

    web Portalでは,以下の項目が表示される.

    1. Customized Portal
    2. Default Portal
    Image

    図3. Web Portal 画面


    今回の作業では,Customized Portalを以下の手順で作成する.

    Image
    Image

    図4. Web Profile設定

    作業:

    1. Createボタンを押す
    2. Select a portal type画面が現れる
    3. Web service portalをマウスクリックする.
    4. Set up a web service portal画面が現れる
      • Service : <作成したweb serviceがリストされるので,それを選択する>
      • Status : Normal (選択したweb serviceが正常な場合にNormalと表示されている)
      • Portal type : <Name-based
      • Hostname : <domain name>, ex:????.myDNS.jp
      • Port : 80/443 (でもOKだと思う), 今回はHTTPS: 443とした
      • HTTPS settigs : HSTSをチェック
      • Access control profile : <Access Control Profileの作成で作成したプロファイル名をリストから選択する.
        指定しない場合はネットからフルアクセスされる
      • Error page profile : Default error page profile (defaultのまま)
      • Enambe access log : 今回はチェックなし
      • Applyボタンを押す
      • Customized portal項目に作ったPortalがリストされる
      • 完了
    5. 以上

    複数サーバー安定化に忘れてはいけない

    一番の不安定原因は,cache pluginのフンフリクトが考えられる.その他,portal serverの設定がある.

    redisと一般的なwordpressよのcache pluginはキャッシャ層がことなる.レスポンス速度を高めるために一般的なキャッシュ(表示系)とredisを導入しているので,以下の事項について注意して進める必要があった.

    一般的なキャッシュプラグイン

    サイト構築の設定過程では,個々のwordpressのcache pluginの挙動を意識して進める必要がある.また,作業中はcache pluginは無効にしておくか,そうでない場合は適時キャッシュをflushする.

    設定が完了してから無効化していたcache pluginを有効化する.

    redis関連 pluginの設定

    以下に解説しているweb stationでPortal Serverを同時にenableにする場合には注意が必要である.

    今回の場合,Redis Serverをwordpressの同じNAS内にcontainer managerでコンテナ構築(host)し,wordpressではredis object serverのpluginをインストールしていた.このpluginでの設定ではdefaultのredis 用のDBの番号は「0」となっており,これにより複数のportalをenableにした途端にredisのキャッシャでコンフリクトを起こす.

    対処:

    redis serverに関わる以下のコードをwp-config.phpに追記する.

    define( 'WP_HOME', 'https://harikiri.diskstation.me' );
    define( 'WP_SITEURL', 'https://harikiri.diskstation.me' );
    
    define( 'WP_CACHE', true );
    define( 'WP_REDIS_HOST', '127.0.0.1' );
    define( 'WP_REDIS_PORT', 6379 );
    define( 'WP_REDIS_DATABASE', <0,1,2・・・> );
    define( 'WP_CACHE_KEY_SALT', '<site name>_' );

    note :
    1. <0,1,2・・・15>には,複数サイトと重複しない数字.
    2. <site name>には,接頭語として分かるワードであれば良い(harikiri).


    更に必要な作業

    default serverの設定

    Web Protalで複数のweb serverを安定的に稼働させるために,default serverの設定をいじる必要がある.なぜなら,Multi Domain Web Serverを構築する前の状態はSingle Web Server (既存)が稼働するのみであり,それはdefault serverが担っていたため.

    今回の作業過程では,既存のweb serverを新しくportal server (以降で説明)として設定 (既存のurl:harikirii.diskstation.me)したため,既存のurlであったdefault server (url: 同じ)が起動すると,この同じurlに対して異なるservice (script languageを含む)が割り当てられることになるため,コンフリクトを生じる可能性が考えられた.

    そこで,以下の手順により,default serverに対して適切な設定が可能になるようservice設定をいじった.この設定を完了させてから,複数(現在3つ)あるportal(web server)がレスポンスを失う自体にはなっていない(2025/06/20).

    設定 :

    1. 先ず,Web Portal 設定の画面では,default serverをdisable/enableは,できな仕様となっている(図5).
    2. そこで,Service設定画面から設定を以下の手順でいじる(図6).
    3. 図6に示すように,user portalが使用しているHTTP back-end serverはapacheである.念のため,default serverにはそれとは異なる「Nginx」を選択する.
    4. Serverが起動しないようにすめにたに(結果的そうだった*),PHPには「Not configured」を選択する.おそらくこの設定が重要.
    5. * NASをrebootさせてlogを確認してみると,この設定前ではharikiri.diskstation.meの起動が2回記録されていた.設定してからは,1回の起動のみが記録されるようになった.
    6. Save
    7. 以上

    Image

    図5. Default serverのdisable/enableはできない(仕様)


    Image

    図6. Service設定画面

    Portal Serverに関する設定

    今回の作業では,既存のwebサイト(harikiri.diskstation.me)は,Default serverで管理されていた(そのはずな)ので,専用のportalはリスト(登録)されていなかった.

    そこで,harikiri.diskstation.me用に上記の作業でWeb Portalを作成した.その際,/web/<site A用のfolfer>のフォルダ構造と,harikiri.diskstation.me/<site A>というurl構造が不整合となりブラウザでの表示が出来なくなった(エラー500, 404).

    修正作業は,以降に述べているように「wp-config.php」の修正,DBの複製と修正,及び「.htaccess」の修正が必要.

    1. File Stationから,既存のwordpressディレクトリを複製して2つめwordpressディレクトリとし,wp-config.php,.htaccess,必要があればrobots.txtを修正する.

    以下詳細を示す.



    File Stationでの作業

    (1) DSM->File Stationで既存のwordpressフォルダーの複製

    1. /web/<site A>にwordpressがインストールされている前提とする(既存).
    2. /web/<site B>をcreate folderで作成する.
    3. <site A> foldeにあるfolder/fileの全てを<site B>に複製する.
      注意) 既存を消したりしないように!

    (2) .htaccessの修正

    以下のコードでにおいて “/” が,”/<site A/Bのfolder name>”になっているとブラウザ表示できないので,以下のコードに置き換える.

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    (3) wp-config.phpの修正

    MariaDB10のデータベース(DB)は,2つ目のuser2で別DBを作成し,exportしたuser1のDBをuser2のDBにimportされていることを前提にしている.

    define( 'DB_NAME', 'DB2' );
    define( 'DB_USER', 'user2' );
    define( 'DB_PASSWORD', '********' );
    define( 'DB_HOST', 'localhost:/run/mysqld/mysqld10.sock' );  // MariaDBパッケージならlocalhostでOK(未確認)
    
    define('DB_CHARSET', 'utf8mb4');
    define('DB_COLLATE', '');

    /volume1/web/<site A filder name>/wp-config.php に以下の2行を require_once より前 (強制)に追加:
    これらの環境変数は,DBのwp_optionsのsiteurlとhomeより優先する(by 4o).DBで設定しているなら必要ない.

    define( 'WP_HOME', 'https://harikiri.diskstation.me' );
    define( 'WP_SITEURL', 'https://harikiri.diskstation.me' );

    (4) robots.txtの修正

    robots.txt (小文字)についてもサイトに合わせて修正してください.


    Control Panelでの作業

    Login Portal -> Advanced -> Access Control Profileでprofile作成画面を開き当該profilelを作成する.

    Image

    access control profileは,web stationの設定で使用する.Web Stationの設定が完了後,後から当該profileを作成・設定も可能.

    機能:

    1. サイトの内容を編集している間やその他のIP Addressを拒否/許可することが可能.ネットからのアクセスを拒否する設定のprofileを作り,web station->web portal->”で,作成したportalのAccess control profile”に指定するとprofileに従ってアクセス制限される.
    2. サイトの投稿が整いサイトを公開したい場合,公開用のprofileを前述と同様のところに指定するか,何も指定しなければフルアクセスとなる.

    access control profileを作る

    1. Login Portal->Advancedを開き,Access Control Profileを開く
    2. Createボタンを押し,2つ目のサイト用にprofileを作成する

    MariaDB 10

    WordPressはMariaDB 10のデータベース(DB)にページを保存しており,2つ目のサイト構築にも専用のDBが必要である.

    今回は,既存のuser1が持っているデータベース(DB1)をphpMyAdminからexportしてDB1をダウンロード,新しいuser2で作成したDB2にimport して,これをSite-2用のデータベースとして修正し稼働できることを確認する.同時にphpMyAdminの使い方の習得を並行して行った.

    以下のphpMyAdminで行う操作は,慎重に行ってください.

    特に置換を実施する際,先に検索でヒットするテーブルやレコードを確認しておき,その後に,置換の作業をするようにすれば理解しながら進められます.

    既存DB1のexport

    1. phpMyAdminにuser1(root権限)でログイン
    2. site-2用のDB1をexport
    3. ログアウト

    新しいuserとDBの作成

    1. phpMyAdminに既存のuser1(root権限)でログイン
    2. 新しくuser2を作成
    3. 新しくDB2 (文字コードはutf8mb4_unicode_ci)を作成
    4. user2にDBのアクセス権限を与える
      • GRANT ALL PRIVILEGES ON DB2.* TO user2’@’localhost’;
      • FLUSH PRIVILEGES;
    5. DB2を選択
    6. メニューのimportを選択
    7. 先にexportしたDB1を選択
    8. 実行(DB2にDB1(の内容:全ての表)をimportする)

    siteurlとhomeのurlの修正

    1. site 2用のDB2をクリック
    2. wp_optionsテーブルをクリック
    3. option_nameカラムにsiteurlか,homeがあるレコードを探す.両方ともに以下の処理をする
    4. option_valueにあるurlを確認する
    5. もしもwordpressがインストールされているfolder名が含まれていれば,そのfolder名を削除する(web stationで明示しているのでここには必要ない)
    項目説明
    siteurlWordPress本体(wp-login.php, wp-admin, プラグインなど)が存在するインストール先URL
    homeサイト訪問者に表示されるホームURL(TOPページ)

    <wp_posts表の修正>

    web station -> web service -> document rootにwordpressがあるfolderを明示的に指定しているので,DB上では必要ない.wp_postsには投稿のguidカラムがあり,”https://harikiri.diskstation.me/myblog/?p=1″のように一意にidが設定されている.このままでもサイトは稼働するが,site 2の投稿なので,投稿数は多いため置換機能で正しい値に一括置き換えする.

    1. site 2で使用しているDB2をクリック
    2. DBの横にある「+」をクリック
    3. 全てのテーブルが表示される
    4. テーブルwp_postsをクリックしてレコードを表示させる
    5. 「検索」をクリック
    6. 表示された「検索と置換」ボタンをクリック
    7. 検索条件に,”/site 1のurl/<folder名>”を入力する
    8. 置換文字列に,”site 2のurl”を入力する
    9. (注: folder名は必要ない)
    10. カラムに,”guid”を選ぶ
    11. 実行
    12. 置換する投稿のリストが表示される
    13. 問題なければ,”置換”ボタンを押す
    14. 以上

    挿入内部リンクの修正

    page(固定ページ)およびpost(投稿)には内部画像のリンクがあるとむ思う.もしも,ベージの編集画面でリンクが外れてしまった場合は,リンクのアドレスの修正が必要になる.

    編集画面でpostを開いた時に張り付けていた画像が表示されない場合はリンクが切れている

    原因の一つは,旧サイトのsiteurl : aaa.bbb.ccc/ddd, 及びhome : aaa.bbb.ccc,新サイトのsiteurlとhomeを同一にした場合,投稿内で張り付けていた画像のリンクがきれてしまう.

    原因は,画像のあるurlにはdddを含んだリンクとなっているはずで,編集画面のコードエディターに切り替えて確認することができる.

    対処 :

    以下sqlコードをphpMyAdminにログインしサイトDBに対して実行する.実行前にはDBをexportしておく.その前に事前に対象となるレコードを確認しておく.

    事前確認: 旧サイトでの画像が保管されていたリンク存在検査(sqlコード)

    SELECT ID, post_title
    FROM wp_posts
    WHERE post_content LIKE '%/myblog/wp-content/uploads/%';

    置換 : sqlコードの実行により置換する

    1. 旧ディレクトリリンク(%https://aaa.bbb.ccc/ddd%)を含むコンテントを取り出し(where),
    2. https://aaa.bbb.ccc/dddを
    3. https://aaa.bbb.cccに置換する.
    UPDATE wp_posts
    SET post_content = REPLACE(post_content, 'https://aaa.bbb.ccc/ddd', 'https://aaa.bbb.ccc')
    WHERE post_content LIKE '%https://aaa.bbb.ccc/ddd%';
    
    #具体的なコード
    UPDATE wp_posts
    SET post_content = REPLACE(post_content, 'https://harikiri.diskstation.me/myblog/wp-content/uploads/', 'https://harikiri.diskstation.me/wp-content/uploads/')
    WHERE post_content LIKE '%/myblog/wp-content/uploads/%';

    note: "%" の意味(LIKE句におけるワイルドカード)

    書き方意味
    %文字列%文字列を含む(前後に任意の文字列があってもOK)
    文字列%文字列で始まる
    %文字列文字列で終わる

    その他の表

    その他の表にもwordpressに導入しているpluginなどによっては,前述の処理が必要な場合があると考えられる.

    必要に応じて確認して修正する.


    まとめ

    1. 前提1: 既存のWordPressはSynology PackageではなくWordPressからダウンロードして導入している.
    2. 前提2: MariaDB 10はSynology Packageから導入している.
    3. 前提3: phpMyAdminはSynology Packageから導入している.
    4. DBは既存からexportし異なるuser権限(user2)でDB2を作りimportした.
    5. ディレクトリ分離:
      /web以下のフォルダ構造は,/web/<site 1用のフォルダ>に既存のwordpressファイルが格納されており,そのファイル群を今回新しく複製(copy)して/web/<site 2用のフォルダ>に2つめのwordpress 用とした.それぞれは,独自にブラウザで表示と管理ができるMulti Domainにすることができた.
    6. harikir.diskstation.me(当サイト)用にportalを作りenable (又は作成直後)にすると,ブラウザは,コード500のエラー(internal sever error)や404エラー(ファイルがない)を吐いたが,wp-config.phpや.htaccessの修正で解決できた.
    7. wp-config.phpの修正
      • データベースに関する環境変数の修正
      • /web/<site ?用のフォルダ>と,urlでは<site A/B用のwordpressフォルダ名を使用しないので齟齬がある.この修正が必要だった.
    8. RT6600ax Routerでの設定でポート転送していても,web stationの設定により問題なく2つのサイト(一つのNAS上の2つのwordpress)に振り分けられる.ホスト名(ドメイン名)は,やり取りされるHTTPリクエストのヘッダーに含まれるためドメイン名で振り分けされている(ようだ).
    9. 検討の過程で,reverse proxyによるport設定も試したが,web stationでの設定しているため,二重の設定となるためreverse proxyの設定は必要でない.
    10. 既存のsite 1のみで稼働させていた時は,default serverが使用されていた(と考えられる).今回の検討では,明示的に管理したかったので,2つのサイトにそれぞれCustomized Portal (仮想host / server)を構築した.
    11. AI君が言うには,default severは,定義された任意のドメインに一致しないリクエストが来た場合に応答する「最後の受け皿」となる仮想hostとのこと.
    12. web stationにあるこのdefault serverは削除することはできない.

    今回構築したこの「複数サイト構成」の呼び方:(by 4o)

    呼び方対応解説
    マルチドメイン(Multi-Domain)✅ 適切異なるドメイン名(FQDN)で異なるWebサイトを運用する構成。
    今回のように harikiri.diskstation.meもう一つのurl がそれぞれ独立して動作していれば、これは正しくマルチドメイン構成です。
    マルチサイト(WordPress Multisite)❌ 非該当WordPressの1インスタンス内で複数のサイト(サブディレクトリやサブドメイン)を運用する機能。
    今回はWordPressインスタンスを2つ別々に構築しているため、マルチサイトではありません。
    シングルサイト ×2(独立サイト)✅ 技術的にはこちらも正しい単に2つのWordPressがNAS上に別個に存在している構成なので、2つの独立したWordPressサイトと呼んでも間違いではありません。

    ただし、「WordPressのマルチサイト構成」ではないことには注意が必要です。マルチサイトはひとつのWordPressの中で複数のサイトを管理する仕組みで、今回のように個別にWordPressをインストールし、それぞれのドメインで運用している場合は、それぞれが独立した「シングルサイト」です。

    FAQ:

    1. DBの修正を終えてWebブラウザで表示させたとき,表示はするが表示までの時間が長い場合,以下をチェックする.
      • DBの修正をミスしている.具体的には,site Aとsite Bのurlや/web/<folder A>と/web/<folder B>の置換のミス.以下のように設定を確認する.
      • テーブルのwp_optionsにあるsiteurlhomeを含むレコードが,サイトのurlであることを確認する.
      • テーブルのwp_postsのカラムのカラムのguidは,url+”?p=<数字>” (ex: harikir.diskstation.me/<wordpressがあるfoler名>/?p=1)となっているか.正しく置換できているか確認する.
      • どうしても正常にできない場合は,再度,DBをimportし直すところから始める.具体的には,当該DBを削除し,改めて当該DB名でDBを作成.その後,本編でも解説しているように,既存のDBのエクスポートファイルをimportして,修正作業をやり直す.
    2. 管理者でログインしてもログイン画面にならない場合の対処例
      • 基本的な作業は,再度,DBをimportし直すところから始める.
      • DBのwp-optionsのsiteurlとhomeを修正する.
      • ブラウザから当該サイトを表示させてみる.フロントページの表示ができら以下に進む.
      • wp_postsのguidには,オリジナル(site 1)のurlが記載されているので,当該サイト(site 2)のurlに置換する.
      • ブラウザで表示していみる.
      • 以上,ステップバイステップで確認していく.
    3. 環境変数(この記事中で説明しているwp-config.phpなど)をミスした場合,web server (portal)のレスポンスが失われることがある.その場合,MariaDB10の再起動,web stationのportalの再起動をしてやれば,レスポンスは回復する.NASのrebootは必要ない(はず).
      • MariaDB10のreboot : package centerからMariaDB10をクリック(openボタンではない)し,現れる「Open」ボタンの右横の矢印でStopを選択する.停止できたら,同じ要領でRunを選択する.
      • Portalのreboot: Web StationのWeb Portalをクリック.表示されるportalをクリックして選択.Actionボタンのリストからdisableをクリック.disableできたら,同じ要領でenableボタンをクリックする.

    HTTPエラーコード一覧(代表例)

    ステータスコード名前意味・原因の概要要確認
    404Not Found要求されたページが存在しない
    → URLの間違い、削除済み、リンク切れなど。
    portalがdisableに..htaccessが無い.
    403Forbiddenアクセスが禁止されている
    → パーミッションエラー、アクセス制限、IP制限など。
    Access control profileなどで外部からのアクセス制限など.
    500Internal Server Errorサーバー内部で予期せぬエラーが発生。
    → プログラムのバグ、設定ミス、.htaccessの誤りなど。
    別のserverの.htaccessを使用している..htaccess内のpath指定が不整合

    あとがき

    複数サイトの稼働様子を見ながら,2つ目のサイトの構築を進めてきた.生じた問題については以下に示しているので参考にしてほしい.


    2025/06/25, redis serverの確認(bridgeではなくhostになっていること)とwordpressのredis object cacheの設定(host設定とdatabase番号に関してwp-config.phpに設定する)がうまくいき,さらにapache 2.4がNASのreboot後に自動起動しないことについてtask schedulerで起動させることで数日の間,安定稼働している.

    2025/06/20, 3台のweb server (multi domain)の安定稼働には,default serverのservice設定を適切にすることでレスポンスを失う事態にはまだいたっていない.このまま稼働を継続する.

    2025/06/18, 結局,アクセスできなくなる現象(404)が生じた後に,MariaDB10をrebootすることで解消できることが分かった.その後,2~3時間すると,また,両サイトともに404エラーとなり,その後復旧しないというトラブルは引き続き変わらない.AI君と相談し原因・対策を検討した結果,2つ目のサイト用に別のuser2でのDB2を作成することで,当該トラブルは解消されている(12時間ほど2サイト構成で稼働).

    2025/06/17, 昨日に続き,サイドInternetからいずれのHome Pageにもアクセスできなくなる現象が起きた.更に,Google Analiticsの新規ユーザー数が低下したことからアクセスされていないようだった.
    対策として,Web Stationから,新たに構築した2つ目のPortal(virtual host)をDesableし,且つ,Routerはrebootせずに,Networkプロバイダーとの接続をやり直すことで,オリジナル(harikir)は復旧してブラウザで表示されるようになった.Multi Domainの設定に不具合が残っていると考えられる.夜中はアクセスが少なくなるので,夜中から早朝で追加のテストを実施し様子を見ることにする.

    2025/06/16, 1つ目(オリジナル)および2つ目もinternet(外部)からアクセスできなくなる現状が起きた.この日の対策は,Routerのrebootで解決したので,Routerが原因ではないかと考えてた.


    編集履歴

    2025/06/15, Mrはりきり
    2025/06/16, 追記(ブラウザ表示レスポンスが遅い場合の原因と対処)
    2025/06/17, 追記(ログインできるが管理者画面にならない時のWebStationの設定対処法,Let’s Encription関係, internetからアクセスできない現象が多発したがportalのdisableで測復旧することから,正しくない設定が残っていると考えられる)
    2025/06/18, internetからアクセスできない(404)問題は,MariaDB10に原因があることが分かり,別user2で別DB2を作ることで404を解決できた.Let’s Encriptionは,settingsでサイト用に証明書を設定することでセキュリティ問題を解決した.
    2025/06/19, 3つのサイトに増やして稼働テスト中,何度となくMariaDBをrebootして復旧.なにかミスしている.
    2025/06/20, default serverのsirviceの設定を修正することで3つのportalを安定稼働できるようになった.
    2025/06/25, 更に,Redis Serverに関する設定を追加した(これがもっとも重要だった)
    2025/07/02, 投稿に挿入していた画像保存ディレクトリの修正(sqlコード)の説明追記