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

まとめ

  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指定が不整合

人気順