本文へスキップ
サーバー・インフラ 入門 開発環境 WSL Docker

Web開発環境の全体像を理解しよう

更新日:2026-08-02

JavaScript応用までは、ブラウザで動くコードを中心に学びました。次に学ぶPHPは、ブラウザではなくサーバー側で動きます。

PHPを書き始める前に、どこでPHPを動かすのかを準備します。この入門シリーズでは、Windows上にWSL 2とDockerを用意し、PHPとMySQLを同じ手順で起動できる環境を作ります。

このシリーズでは、Windows 11環境を推奨します。記事内の画面表示や操作手順はWindows 11を基準に説明します。Windows 10などでも利用できる場合がありますが、WSL 2やDocker Desktopの導入条件、設定画面、表示内容が異なる可能性があります。

この記事を終えると、次のことができるようになります。

  • 開発環境が必要な理由を説明できる
  • Windows、WSL、Ubuntuの関係を説明できる
  • Dockerとコンテナの役割を説明できる
  • ホスト、WSL、コンテナのどこでコマンドを実行するか区別できる

開発環境とは

開発環境は、プログラムを書き、実行し、動作を確認するために必要なソフトウェアや設定の組み合わせです。

PHPを使ったWebシステムでは、主に次のものが必要です。

  • PHPを実行する仕組み
  • HTTPリクエストを受け取るWebサーバー
  • データを保存するデータベース
  • ソースコードを書くエディター
  • コマンドを実行するターミナル

一つずつWindowsへ直接インストールする方法もあります。しかし、バージョンや設定が端末ごとに異なると、「自分の環境では動くが、別の環境では動かない」という問題が起きやすくなります。

今回採用する環境構成

このシリーズでは、次の構成を使用します。

Windows
└── WSL 2
    └── Ubuntu
        ├── プロジェクトのファイル
        ├── Git
        ├── Dockerのコマンド
        └── Dockerコンテナ
            ├── php:ApacheとPHP
            ├── db:MySQL
            └── phpmyadmin:データベース管理画面

Windowsは普段操作するOSです。WSL 2の中ではLinuxを動かし、Dockerコンテナの中でPHPやMySQLを動かします。

WindowsとLinuxを区別する

WindowsはホストOS

DockerやWSLを動かしている元のWindowsを、ホストOSと呼びます。ブラウザ、Windows Terminal、VS Code、Docker DesktopなどはWindows側で起動します。

WSLはWindows上のLinux環境

WSLはWindows Subsystem for Linuxの略です。Windowsを使いながら、Linuxのファイルシステム、コマンド、開発ツールを利用できます。

このシリーズでは、WSL 2上でUbuntuを使用します。UbuntuはLinuxを利用しやすい形にまとめたLinuxディストリビューションの一つです。

  • Linux:OSの中核となる仕組み
  • Ubuntu:Linuxと各種コマンド、パッケージ管理などをまとめた環境
  • WSL 2:Windows上でLinux環境を動かす仕組み

Dockerとコンテナを区別する

Dockerは、アプリケーションの実行環境をコンテナとして作成・実行するための仕組みです。

コンテナごとに役割を分けられます。

  • phpコンテナ:Apacheでリクエストを受け、PHPを実行する
  • dbコンテナ:MySQLでデータを保存する
  • phpmyadminコンテナ:ブラウザからMySQLを確認する

PHPのバージョンや必要な設定をファイルへ記録できるため、別の端末でも同じ構成を再現しやすくなります。

三つの場所を意識する

環境構築では「今どこにいるか」が重要です。

場所 主に行うこと
Windows ブラウザ、Docker Desktop、Windows Terminalを起動する
WSLのUbuntu ファイル操作、Git、docker composeを実行する
Dockerコンテナ PHP、Apache、MySQLなどを実行する

たとえばPHPのバージョンを確認するときは、PHPコンテナ内で実行します。

docker compose exec php php -v

docker compose exec phpは、起動中のphpサービス内で後ろのコマンドを実行するという意味です。

開発環境と本番環境を区別する

自分のPC上で開発・確認する環境を開発環境、利用者へ公開する環境を本番環境と呼びます。

今回作るのは開発環境です。学習用の簡単なパスワードやデバッグ設定を、そのまま本番環境で使用してはいけません。

開発環境
├── 自分のPCで動かす
├── コードを頻繁に変更する
└── エラーの詳細を確認する

本番環境
├── 利用者がアクセスする
├── セキュリティと安定性を優先する
└── 秘密情報やエラー詳細を公開しない

このシリーズで到達する状態

9記事を終えると、Gitで変更履歴を記録し、次のDocker Compose操作ができる状態になります。

docker compose up -d
docker compose exec php php -v
docker compose ps
docker compose logs php
docker compose down

ブラウザでは次のURLを使用します。

  • PHPのWebページ:http://localhost:8000
  • phpMyAdmin:http://localhost:8080

まとめ

  • PHP学習にはPHP、Webサーバー、データベースなどの実行環境が必要になる
  • Windows上でWSL 2を使うとLinux環境を利用できる
  • DockerコンテナへPHP、MySQL、phpMyAdminの役割を分ける
  • Windows、WSL、コンテナのどこで操作しているかを意識する
  • 今回作るのは学習用の開発環境であり、本番環境とは設定目的が異なる

次の記事では、WindowsへWSL 2とUbuntuをインストールします。