▼ 目次
このブログは Synology NAS DS725+ をサーバーに、WordPress + SWELLテーマ で構築したセルフホスト型ブログです。
カメラ7台の常時録画と同時稼働させながら、CPU負荷 7% / RAM使用量 30% で安定稼働中。
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 インストール済みアプリ
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 設定 | |
| Regenerate Thumbnails | メディアのサムネイル再生成 | Media |
| Better Search Replace | ドメイン変更時の DB 内 URL 一括置換・確認 | DB |
稼働パフォーマンス
カメラ7台・常時録画 同時稼働時の実測値
CPU 使用率
7%
余裕あり
RAM 使用量
30%
安定稼働中
※ Surveillance Station 経由でモニター確認
ネットワーク設定
ホーム > 詳細設定 > DHCP固定割当設定 で、NAS の MACアドレスと任意の IP アドレスを紐付け。
再起動後もアドレスが変わらず、SMB / Web Station が常に同じ IP で応答します。
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 サイトマップ
インシデント記録
SEO・アクセス解析体制
SEO Plugin
SEO Simple Pack
SWELL 推奨プラグイン。タイトル・ディスクリプション・OGPを一括管理。
Search Console
Google Search Console
サイトマップ(sitemap.xml)を登録済み。インデックス状況を定期確認。
Analytics
Google Analytics 4
ドメイン移行後にデータストリーム URL を更新。独立したプロパティで管理中。
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 ✓ 正常稼働中 |
WordPress 内蔵 Cron を無効化し、外部 Cron のみで実行する構成としています。内部 Cron の無効化によりアクセス時の余計な処理を排除し、表示パフォーマンスの改善にも寄与しています。
