VPSでWordPressを運営していると、Docker、nginx、PHP、MySQLという名前が出てきます。すべて「サーバー」と呼ばれることもありますが、役割は違います。
宿主さんがコマンドを覚える必要はありません。しかし、どの部品が何をしているか分かると、障害時に「サイト全体が止まった」「画像だけ見える」「データベース接続エラーが出た」と説明しやすくなります。
まず全体像です。
宿泊者のブラウザ → nginx → PHPでWordPressを実行 → MySQLから記事・設定を取得 → HTMLをブラウザへ返す
Dockerを使う構成では、この各部品を分けて動かし、まとめて管理します。
旅館に例えると
| 技術 | 旅館での例え | 主な役割 |
|---|---|---|
| Docker | 各担当を分けた業務区画と運営台帳 | ソフトを隔離された環境で再現可能に動かす |
| nginx | 玄関・フロント | URLの受付、振り分け、画像配信、HTTPS |
| PHP | 案内を組み立てる担当 | WordPressのプログラムを実行してページを作る |
| WordPress | 宿の案内業務 | 記事、テーマ、プラグインを使って内容を決める |
| MySQL | 宿帳・資料庫 | 記事、設定、ユーザーなどを保存・検索する |
例えは理解の入口です。実際の構成ではApache、MariaDB、CDN、キャッシュなど別の部品を使う場合もあります。
ページが表示されるまで
宿泊者が客室ページを開いたとき、一般的には次の流れになります。
- ブラウザがドメインのURLへアクセスする
- DNSが接続先サーバーを示す
- nginxがHTTPSの接続を受け付ける
- 画像などを直接返すか、WordPressの処理をPHPへ渡す
- PHPがWordPressを実行する
- WordPressがMySQLへ記事や設定を問い合わせる
- PHPがHTMLを組み立てる
- nginxが結果をブラウザへ返す
- ブラウザがページを表示する
一つの画面の裏で複数の部品が動くため、「WordPressは最新」でもOSやPHP、データベースに問題があれば表示できません。
Dockerの役割
Docker公式資料は、コンテナをホスト上で隔離して動くプロセスと説明しています。WordPress、nginx、PHP、データベースを別のコンテナに分ける構成があります。
Dockerで得られること
- ソフトと必要なファイルをまとまりとして扱える
- 開発・テスト・本番の構成差を減らしやすい
- 部品ごとに起動、停止、更新しやすい
- 構成をファイルへ記録し再現しやすい
Dockerが自動でしてくれないこと
- OSとDocker自体の更新
- 安全なイメージの選定と更新
- パスワード・秘密情報の保護
- データベースのバックアップ
- ディスク容量とログ管理
- 障害監視
- WordPress更新後の予約確認
コンテナを削除して作り直せても、データの保存先を誤ると記事や画像を失う可能性があります。Dockerがあるからバックアップ不要にはなりません。
nginxの役割
nginx公式の初心者向け資料では、静的ファイルの配信、プロキシ、FastCGIを使ったPHPなどへの振り分けを説明しています。
WordPress構成での主な仕事は次のとおりです。
- HTTP・HTTPSのアクセスを受ける
- ドメインごとに対象サイトを選ぶ
- 画像、CSS、JavaScriptなどを返す
- PHPで処理するアクセスをPHP-FPMへ渡す
- サイズや時間などの制限を設定する
- TLS証明書を使って通信を暗号化する
- アクセス・エラーログを記録する
nginxに問題があるときの例
- サイト全体へ接続できない
- 502・504などのエラー
- HTTPS警告や別サイトが表示される
- 大きな画像をアップロードできない
- 特定URLだけ404になる
- リダイレクトが繰り返される
設定変更前に文法確認とバックアップを行い、反映後にすべてのドメインを確認します。
PHPの役割
PHP公式マニュアルは、PHPがサーバー側で実行され、生成したHTMLをブラウザへ送る言語だと説明しています。WordPress本体と多くのテーマ・プラグインはPHPで動きます。
PHPが担当する例は次のとおりです。
- URLに応じたWordPress処理
- MySQLから記事や設定を取得
- テーマを使ってHTMLを生成
- フォーム入力の処理
- プラグイン機能の実行
- メール送信処理の呼び出し
PHPに問題があるときの例
- 「重大なエラー」が表示される
- 白い画面になる
- 502エラーになる
- 管理画面だけ動かない
- 特定プラグイン機能だけ失敗する
- メモリ不足や処理時間超過になる
PHPを更新すると、古いテーマ・プラグインが対応しない場合があります。WordPress更新とPHP変更を同時に重ねず、テスト環境で先に確認します。
WordPressの役割
WordPressはPHPで動くWebアプリケーションです。
- 記事・固定ページを管理する
- テーマで見た目を決める
- プラグインでSEO、フォーム、予約などを追加する
- 管理者と編集者の権限を管理する
- MySQLへ内容を保存する
WordPressのバックアップだけを考えるときも、ファイルとデータベースの両方が必要です。詳しくはWordPress更新前のバックアップと復元をご覧ください。
MySQLの役割
MySQL公式資料は、MySQLを複数利用者に対応するSQLデータベースサーバーとして説明しています。
WordPressでは、主に次を保存します。
- 記事、固定ページ、下書き、改訂履歴
- ユーザーと権限
- サイトURLや各種設定
- コメント
- メニューやウィジェット
- プラグインが作る表と設定
画像の実体は通常ファイルとして保存され、画像のタイトルやURLなどはデータベースにも保存されます。そのため、ファイルとデータベースの時点が合わないと不整合が起こります。
MySQLに問題があるときの例
- 「データベース接続確立エラー」
- 記事や設定を保存できない
- ページ表示が極端に遅い
- ディスク不足で書き込めない
- データベースだけ再起動を繰り返す
MySQLをインターネットへ直接公開せず、WordPressなど必要な接続元だけから利用できる構成にします。
コンテナとデータの保存場所
Docker構成で最も重要な点の一つは、コンテナと永続データを区別することです。
- コンテナ:作り直せる実行環境
- イメージ:コンテナを作る設計元
- ボリューム・マウント:記事画像やDBなど残すデータ
- Compose等の構成ファイル:どの部品をどう接続するか
コンテナ内だけにデータを置く設計では、再作成時に失う可能性があります。現在のWordPress画像、MySQLデータ、設定、証明書がどこへ保存されているか、管理者が説明できる状態にします。
更新は層を分ける
一度にすべて更新すると原因を特定できません。
- 現在の構成とバージョンを記録
- ファイル・DB・構成ファイルをバックアップ
- テスト環境で一つの層を更新
- ログと起動状態を確認
- WordPressの表示、管理画面を確認
- 予約・フォーム・メールを確認
- 本番で一つの層だけ更新
- 同じ確認を行う
OS、Docker、nginx、PHP、MySQL、WordPressの大きな更新を同日にまとめません。
障害時に見る順番
宿主さんは、コマンドではなく症状を記録します。
| 症状 | 確認する層の候補 |
|---|---|
| ドメイン全体へ接続できない | DNS、VPS、ネットワーク、nginx |
| 画像だけ見えて本文が出ない | PHP、WordPress、MySQL |
| 502エラー | nginxからPHP等への接続 |
| DB接続エラー | MySQL、資格情報、容量、ネットワーク |
| 管理画面だけ重大エラー | PHP、テーマ、プラグイン |
| 問い合わせだけ届かない | WordPress、PHP、メール経路 |
| 予約リンクだけ開かない | WordPress内容、外部予約サービス |
記録するのはURL、発生時刻、画面、直前の変更、全員に起きるかです。秘密情報や顧客データをスクリーンショットへ含めません。
最低限の監視
- VPSが起動している
- nginxへHTTPS接続できる
- PHPが応答する
- MySQLへ必要な接続ができる
- ディスク容量に余裕がある
- TLS証明書が期限内
- バックアップが成功している
- トップと予約導線が正常
- 問い合わせメールが届く
コンテナが「起動中」でも、アプリが正しく動くとは限りません。外部から実際のページも確認します。
管理者へ聞く質問
- Dockerを使っているか。構成ファイルはどこか
- nginx、PHP、MySQLの現在版と更新担当は誰か
- WordPress画像とDBはどこへ永続保存されるか
- 秘密情報はどこで安全に管理するか
- ログとディスク容量を誰が確認するか
- バックアップに構成ファイル、画像、DBが含まれるか
- 一つのコンテナが停止したら通知されるか
- 契約終了時に構成とデータをどう引き渡すか
答えに秘密値は不要です。所在、方式、担当者だけを記録します。
AIへ構成を説明させるプロンプト
宿のWordPressサーバー構成を、IT初心者向けに説明してください。
まだ接続、更新、再起動、設定変更はしないでください。
読み取り可能な構成資料から、次を整理してください。
- 宿泊者のアクセスがページ表示になるまでの流れ
- Docker、nginx、PHP、WordPress、MySQLの役割
- 各部品の永続データと設定の保存先の種類
- 各部品が止まったときに見える症状
- 更新、監視、バックアップの担当者
- 不明点と管理会社へ聞く質問
パスワード、秘密鍵、環境変数の値、顧客情報は表示しないでください。
推測は事実として書かず「未確認」としてください。
まとめ
- nginxはWebの入口と振り分け
- PHPはWordPressを実行してHTMLを作る
- MySQLは記事・設定などを保存する
- Dockerは部品を隔離・再現しやすくするが保守を代行しない
- WordPressの画像とDBは同じ時点でバックアップする
- コンテナの起動だけでなく公開ページと予約導線を監視する
- 更新は一層ずつ行い、人が営業動作を確認する
これらを誰が管理するかは、VPSでWordPressを運営する責任範囲で確認してください。
参考資料
※実際の構成はApache、MariaDB、CDN、キャッシュ、マネージドDBなどを使う場合があります。管理者の構成資料を確認してください。

