Docker・nginx・PHP・MySQLの役割|宿主向けWordPressサーバー入門

宿泊者のアクセスがnginx、PHPとWordPress、MySQLを通りWebページになりDockerが各サービスを整理する様子を人が管理するイラスト WordPress入門

VPSでWordPressを運営していると、Docker、nginx、PHP、MySQLという名前が出てきます。すべて「サーバー」と呼ばれることもありますが、役割は違います。

宿主さんがコマンドを覚える必要はありません。しかし、どの部品が何をしているか分かると、障害時に「サイト全体が止まった」「画像だけ見える」「データベース接続エラーが出た」と説明しやすくなります。

まず全体像です。

宿泊者のブラウザ → nginx → PHPでWordPressを実行 → MySQLから記事・設定を取得 → HTMLをブラウザへ返す

Dockerを使う構成では、この各部品を分けて動かし、まとめて管理します。

旅館に例えると

技術 旅館での例え 主な役割
Docker 各担当を分けた業務区画と運営台帳 ソフトを隔離された環境で再現可能に動かす
nginx 玄関・フロント URLの受付、振り分け、画像配信、HTTPS
PHP 案内を組み立てる担当 WordPressのプログラムを実行してページを作る
WordPress 宿の案内業務 記事、テーマ、プラグインを使って内容を決める
MySQL 宿帳・資料庫 記事、設定、ユーザーなどを保存・検索する

例えは理解の入口です。実際の構成ではApache、MariaDB、CDN、キャッシュなど別の部品を使う場合もあります。

ページが表示されるまで

宿泊者が客室ページを開いたとき、一般的には次の流れになります。

  1. ブラウザがドメインのURLへアクセスする
  2. DNSが接続先サーバーを示す
  3. nginxがHTTPSの接続を受け付ける
  4. 画像などを直接返すか、WordPressの処理をPHPへ渡す
  5. PHPがWordPressを実行する
  6. WordPressがMySQLへ記事や設定を問い合わせる
  7. PHPがHTMLを組み立てる
  8. nginxが結果をブラウザへ返す
  9. ブラウザがページを表示する

一つの画面の裏で複数の部品が動くため、「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データ、設定、証明書がどこへ保存されているか、管理者が説明できる状態にします。

更新は層を分ける

一度にすべて更新すると原因を特定できません。

  1. 現在の構成とバージョンを記録
  2. ファイル・DB・構成ファイルをバックアップ
  3. テスト環境で一つの層を更新
  4. ログと起動状態を確認
  5. WordPressの表示、管理画面を確認
  6. 予約・フォーム・メールを確認
  7. 本番で一つの層だけ更新
  8. 同じ確認を行う

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などを使う場合があります。管理者の構成資料を確認してください。

タイトルとURLをコピーしました