このブログのWP構成について

このブログは Synology NAS DS725+ をサーバーに、WordPress + SWELLテーマ で構築したセルフホスト型ブログです。
カメラ7台の常時録画と同時稼働させながら、CPU負荷 7% / RAM使用量 30% で安定稼働中。

Synology DS725+
WordPress 6.x
SWELL
MariaDB 10.x
PHP 8.x
Apache 2.4
Let’s Encrypt SSL

サーバー構成

Hardware

Synology NAS DS725+

IronWolf 12TB × 2(SHR構成)

Web Server

Apache HTTP 2.4

Web Station 経由で配信

Database

MariaDB 10.x

WordPress と直接連携

Backup

Hyper Backup 毎日

UpdraftPlus(WP側)を併用

Security

セキュリティプラグイン導入済

DSM 側 Antivirus Essential 併用

UPS

OMRON BY50S

USB接続・停電時自動シャットダウン

DSM インストール済みアプリ

Web Station
MariaDB 10.x
WordPress
Apache HTTP 2.4
PHP 8.x
Hyper Backup
Synology Photos
Synology Drive
Surveillance Station
Antivirus Essential
Cloud Sync
Node.js 20
Log Center
Universal Search

WordPressテーマ

SWELL

日本製 WordPress テーマ / SEO・表示速度に最適化

高速表示
SEO対応
ブロックエディター対応
日本語サポート

WordPressプラグイン構成

プラグイン名 役割・用途 カテゴリ
SEO Simple Pack SWELL推奨 SEOプラグイン SEO
Contact Form 7 ブログページからの問い合わせフォーム UX
UpdraftPlus WordPress バックアップ・復元 Backup
セキュリティプラグイン セキュリティ強化・SSL 設定・不正アクセス対策 Security
WP Mail SMTP Contact Form 7 からの自分宛メール SMTP 設定 Mail
Regenerate Thumbnails メディアのサムネイル再生成 Media
Better Search Replace ドメイン変更時の DB 内 URL 一括置換・確認 DB

稼働パフォーマンス

カメラ7台・常時録画 同時稼働時の実測値

CPU 使用率

7%

余裕あり

RAM 使用量

30%

安定稼働中

※ Surveillance Station 経由でモニター確認

ネットワーク設定

NEC製ルーター の DHCP固定割り当て設定
ホーム > 詳細設定 > DHCP固定割当設定 で、NAS の MACアドレスと任意の IP アドレスを紐付け。
再起動後もアドレスが変わらず、SMB / Web Station が常に同じ IP で応答します。
DHCP固定割り当て
MACアドレス指定
NEC ルーター
QuickConnect

ドメイン移行の歩み

ブログ開設当初は ara-garage.synology.me という Synology 付属ドメインで運用していましたが、SEO評価や信頼性の観点から独自ドメイン ara-garage.com へ移行しました。移行に必要な全作業を自力で完了しています。

STEP 1 — ドメイン取得

お名前.com で ara-garage.com を取得

ネームサーバーを dnsv.jp(01〜04)に変更。CNAMEレコードで www → synology のホスト名に向ける。

STEP 2 — SSL証明書取得

DSM で Let’s Encrypt 証明書を新規発行

証明書のサービス割り当てを修正し、www.ara-garage.com:443 に正しく紐付け。

STEP 3 — Web Station 仮想ホスト変更

ポータル設定のホスト名を新ドメインに更新

Apache の仮想ホスト設定と SSL バインドを新ドメインに合わせて修正。

STEP 4 — WordPress DB の URL 一括置換

Better Search Replace でDBを全テーブル置換

wp_posts・wp_options など 86件以上のレコードを旧ドメインから新ドメインに一括置換。wp-config.php にも定数を追記して二重保護。

STEP 5 — 移行完了・Search Console 再設定

サイトマップを新ドメインで再送信・インデックス依頼

GA4 のデータストリーム URL も更新。旧プロパティのデータと切り離して新プロパティで管理開始。

POINT — お名前.com の CNAME 制約について

裸ドメイン(wwwなし)はお名前.com の仕様上 CNAME が使えないため、正規 URL は https://www.ara-garage.com(www付き)としています。

PHPトラブルと復旧の教訓

WordPress のサイトヘルス警告をきっかけに PHP のバージョンアップを試みたところ、ブログが完全停止するトラブルが発生。原因特定から DSM バックアップでの復旧まで、すべて自力で対応しました。

原因

Web Station の Default Profile を変更

Synology の WordPress パッケージは独自のPHPプロファイルを使用しているため、Default Profile を変更するとブログへのリクエストが処理不能になった。

復旧方法

DSM 自動バックアップから設定を復元

「更新と復元」→「設定のバックアップ」から直近のスナップショットを適用。数分で完全復旧。Hyper Backup の重要性を身をもって体験。

この環境での PHP バージョン管理の正解

やってよい操作 PHP の新バージョンをパッケージセンターからインストール
やってはいけない操作 Web Station の Default Profile のPHPバージョン変更
現在の運用方針 Synology パッケージ管理の PHP バージョンに従い、安定稼働を最優先

バックアップ体制(多層防御)

セルフホスト WordPress はデータ消失リスクを自分で管理する必要があります。このブログでは4層のバックアップ体制を組んでいます。

LAYER 1

Hyper Backup

毎日 00:00
外付けHDDへ全データ保存

LAYER 2

UpdraftPlus

WordPress本体・DB
定期自動バックアップ

LAYER 3

DSM 設定 (.dss)

Web Station 仮想ホスト
SSL割り当て・ユーザー設定

LAYER 4

外部設定スクショ

お名前.com DNS
Search Console サイトマップ

運用ルール:約1ヶ月ごとに手動でバックアップを実施。①お名前.com DNS スクリーンショット → ②DSM .dss エクスポート → ③UpdraftPlus 手動実行 → ④Search Console 確認 の順で完了させています。

インシデント記録

RESOLVED
2026-03-23 — NAS フリーズ / DSM・Surveillance Station 応答不能
発生日時 2026年3月23日
症状 DSM 管理画面・Surveillance Station が完全に応答しなくなった
推定原因 Surveillance Station のカメラ録画保存期間を 7日→14日 に延長した直後から負荷が増加。深夜の Hyper Backup と重なりリソース不足に。
対処 手動再起動で復旧
恒久対策 Hyper Backup の実行時刻を 03:00 → 00:00 に変更し、他処理との競合を回避。Hyper Backup の整合性チェック自動スケジュールは無効化し手動管理に切り替え。

SEO・アクセス解析体制

SEO Plugin

SEO Simple Pack

SWELL 推奨プラグイン。タイトル・ディスクリプション・OGPを一括管理。

Search Console

Google Search Console

サイトマップ(sitemap.xml)を登録済み。インデックス状況を定期確認。

Analytics

Google Analytics 4

ドメイン移行後にデータストリーム URL を更新。独立したプロパティで管理中。

GA4 の落とし穴:日本語スラグを使った URL が URLエンコードされ、GA4 の「(unknown)」ページタイトル問題が発生。該当記事のスラグを英数字に変更することで解消しました。

WP Cron 外部化

WordPress 標準の WP Cron は「アクセスが来たときにタスクを実行する」擬似 Cron です。セルフホスト環境ではアクセスが少ない時間帯に Cron が動かないケースがあるため、外部サービスで定期実行する構成に変更しています。

変更前:標準 WP Cron

ページアクセスをトリガーに実行。アクセスがなければ動かない。UpdraftPlus の定期バックアップが遅延するリスクあり。

変更後:cron-job.org(外部Cron)

15分ごとに外部から WordPress の Cron エンドポイントを定期実行。200 OK を確認済みで安定稼働中。

設定内容

サービス cron-job.org(無料プラン)
実行間隔 15分ごと
ステータス 200 OK ✓ 正常稼働中
wp-config.php への追記:
WordPress 内蔵 Cron を無効化し、外部 Cron のみで実行する構成としています。内部 Cron の無効化によりアクセス時の余計な処理を排除し、表示パフォーマンスの改善にも寄与しています。