MENU

ローカル開発環境の作り方|XAMPP・Dockerの違いと選び方

ローカル開発環境の作り方|XAMPP・Dockerの違いと選び方

ローカル開発環境をこれから作るなら、まず押さえたい結論はシンプルです。すぐに1台でPHPとMariaDBを動かしたいならXAMPP、複数案件を切り替えたりチームで同じ環境を配りたいならDockerが向いています。

特に初心者は「とにかく今日中に動かしたい」のか、「あとで環境差分に悩みたくない」のかで選ぶと失敗しにくくなります。XAMPPは導入が速く、Dockerは再現性が高い。この違いが、実務ではかなり大きいです。

  • XAMPPは、Apache・PHP・MariaDB・phpMyAdminをまとめて入れてすぐ試せる
  • Dockerは、compose.yaml で環境をコード化でき、PCを替えても同じ構成を再現しやすい
  • 2026年4月21日確認時点では、Docker DesktopはDocker Composeを同梱
  • 同日確認時点のXAMPP通常配布版は、Windows/LinuxでPHP 8.2.12、macOSでPHP 8.2.4が案内されている

ここがポイント: 速さを取るならXAMPP、再現性を取るならDocker。迷ったら、この1本で判断できます。

目次

まず結論を比較で見る

導入前に、違いを一度並べておくと選びやすくなります。

比較軸 XAMPP Docker
導入の速さ 非常に速い。インストーラー中心 初回はやや重い。Docker Desktopの準備が必要
環境の再現性 低め。各PCで設定差が出やすい 高い。設定ファイルを共有しやすい
複数案件の切り替え やや苦手。PHPやDBの版管理で詰まりやすい 得意。案件ごとに構成を分離しやすい
学習コスト 低い 中程度。コンテナ、イメージ、ボリュームの理解が必要
実務とのつながり 個人学習や小規模検証向き 本番・CI/CD・チーム開発に寄せやすい

最初の1本を選ぶだけなら、学習用はXAMPP、実務導入前提ならDockerで考えるのが分かりやすいです。

前提環境と確認時点

この記事は、PHP系のローカル開発を想定しています。WordPress、Laravel、素のPHPアプリを試す場面なら、そのまま考え方を流用できます。

確認時点は 2026年4月21日 です。バージョン差で判断が変わる部分だけ、先に押さえておきます。

  • Docker DesktopはMac、Windows、Linux向けに提供され、Docker Composeを含みます
  • Docker DesktopのWindows向け案内では、WSL 2またはHyper-Vが前提です
  • 同案内では、WSL 2.1.5以降と8GB RAMが要件として示されています
  • XAMPP公式FAQでは、XAMPPは本番運用向けではなく開発環境向けと明記されています
  • XAMPPの通常配布版はOSごとに収録PHPの版がそろっていないため、「PHP 8.3以上で合わせたい」ような案件ではDockerの方が選びやすくなります

ここは見落とされがちです。ローカル環境は「動けば何でも同じ」に見えますが、案件ごとのPHP版をそろえたいかどうかで後の手戻りが大きく変わります。

XAMPPで作る最小構成

XAMPPの強みは、ローカルのWebサーバーを最短で立ち上げられることです。Apache、MariaDB、phpMyAdminを一気に入れて、localhost ですぐ確認できます。

手順

  1. XAMPPをインストールする
  2. XAMPP Control Panelで ApacheMySQL を起動する
  3. htdocs 配下に確認用ディレクトリを作る
  4. PHPファイルを置いてブラウザで開く

Windowsなら、たとえば次のような配置です。

  • C:\xampp\htdocs\local-sample\index.php
<?php
echo "XAMPP local env OK";

ブラウザで次を開きます。

http://localhost/local-sample/

想定される表示は次のとおりです。

XAMPP local env OK

XAMPPが向く場面

  • PHPの文法確認をすぐ始めたい
  • WordPressテーマや簡単なPHP修正を1台で試したい
  • Dockerの概念より先に、HTTPとDB接続の流れを理解したい
  • GUI中心でApacheとMySQLを起動停止したい

XAMPPの弱いところ

  • PHPやMariaDBの版を案件ごとに切り替えにくい
  • PCのローカル環境に設定が直接乗る
  • 複数案件でポートや設定がぶつかりやすい
  • チームに「同じ環境」をそのまま渡しにくい

XAMPPは便利ですが、便利さの代わりに環境差分を吸収しにくいのが弱点です。個人学習には十分でも、案件が2本、3本と増えると苦しくなります。

Dockerで作る最小構成

Dockerの強みは、開発環境そのものをファイルとして管理できることです。Docker公式のComposeドキュメントでも、複数サービスを1つのYAMLで定義し、docker compose up でまとめて起動する流れが基本になっています。

最小の compose.yaml

作業ディレクトリに compose.yaml を置きます。

services:
  web:
    image: php:8.2-apache
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html

  db:
    image: mariadb:11
    environment:
      MARIADB_ROOT_PASSWORD: localroot
      MARIADB_DATABASE: appdb
      MARIADB_USER: appuser
      MARIADB_PASSWORD: apppass
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

続いて src/index.php を作ります。

<?php
try {
    $pdo = new PDO(
        'mysql:host=db;dbname=appdb;charset=utf8mb4',
        'appuser',
        'apppass'
    );
    echo 'Docker local env OK';
} catch (PDOException $e) {
    echo 'DB connection failed: ' . $e->getMessage();
}

起動コマンドはこれです。

docker compose up -d

ブラウザで次を開きます。

http://localhost:8080

正常なら、次の表示になります。

Docker local env OK

この構成で分かること

  • webdb を分けて管理できる
  • db_data という名前付きボリュームでDBデータを保持できる
  • ほかのPCでも同じ compose.yaml を使って起動しやすい

Docker公式のQuickstartでも、名前付きボリュームを使うと compose downcompose up の間でデータを保持できると説明されています。DBを毎回まっさらにしたくないなら、ここは実務で重要です。

Dockerが向く場面

  • チーム全員で同じPHP版、同じDB版を使いたい
  • 本番に近い構成で動作確認したい
  • WordPress、Laravel、API、DBを案件ごとに分けたい
  • Gitリポジトリに環境定義を含めたい

Dockerの注意点

  • 初回導入はXAMPPより重い
  • WindowsではWSL 2や仮想化設定でつまずくことがある
  • コンテナを消す操作とボリューム削除の違いを理解しないと、DBを消してしまう

実務ではどちらを選ぶべきか

ここは「良し悪し」ではなく、「何を優先するか」で分けるのが正解です。

XAMPPを選ぶとよいケース

  • 学習開始までの速さを最優先したい
  • PHPとMySQLをまず1台で動かしたい
  • 配布や共有より、自分だけで試す時間が長い
  • ApacheやphpMyAdminをGUIで扱いたい

特に、HTMLとPHPのつながりを確認したい段階では、XAMPPはまだ強いです。ブラウザで localhost を開いてすぐ反応が返るので、最初の一歩が軽いからです。

Dockerを選ぶとよいケース

  • 案件ごとにPHP版を分けたい
  • 同じ設定を他メンバーにも配りたい
  • 今後CIや本番環境とのズレを減らしたい
  • DB、Redis、Mailhogなどをまとめて立ち上げたい

Dockerは、環境の説明を口頭でしなくてよくなるのが大きいです。READMEcompose.yaml があれば、再現の中心がファイルに移ります。ここがXAMPPとの決定的な差です。

迷ったときの実用的な選び方

  • 1週間以内に学習成果を出したい: XAMPP
  • 半年単位で案件や保守を続ける: Docker
  • 個人ブログや簡単なテーマ修正だけ: XAMPP寄り
  • チーム開発、複数案件、版固定が必要: Docker寄り

よくある失敗と対処

短時間で詰まりやすいポイントだけ先に見ておくと、導入がかなり楽になります。

XAMPPで多い失敗

  • Apache が起動しない
  • 80番や443番ポートを別のWebサーバーが使っていることがあります
  • そのまま外部公開前提で使ってしまう
  • 公式FAQでも、XAMPPは開発用で本番向けではないと案内されています
  • PHP版を後から変えたくなって詰まる
  • 複数案件があるなら、最初からDockerの方が整理しやすいです

Dockerで多い失敗

  • docker compose down -v を軽く実行してDBを消す
  • パスワードを compose.yaml に直書きしたままGitへ入れる
  • WindowsでWSL 2や仮想化が未設定のまま導入しようとする
  • localhost:8080 を開いても、コンテナ側のポート公開設定がずれている

認証情報の扱いも注意が必要です。上のサンプルはローカル確認用です。実務では次を守った方が安全です。

  • 本物のパスワードやAPIキーは .env などで分離する
  • .env をGitに含めるかどうかは運用ルールを決める
  • 本番とローカルで同じ秘密情報を使わない

代替手段も知っておく

XAMPPとDockerの二択で考えがちですが、用途によっては別の選択肢もあります。

  • ローカルでWordPressをすぐ試したいなら、専用ローカル環境ツールの方が早いことがあります
  • PHP以外も含めて開発環境を共通化したいなら、Dockerの方が拡張しやすいです
  • macOSでGUI中心に扱いたい場合でも、案件ごとの版固定が必要ならDockerの優位は残ります

つまり、XAMPPは「早い」、Dockerは「残る」と覚えると整理しやすいです。今日の作業だけを見るならXAMPP、来月の保守まで見るならDocker、という分け方が現実的です。

まとめ

ローカル開発環境の作り方で迷ったら、まずは次の3点で決めてください。

  • すぐ動かすことが最優先ならXAMPP
  • 環境差分を減らしたいならDocker
  • 複数案件やチーム共有を考えるなら最初からDocker

特に2026年4月21日時点では、XAMPPの通常配布版はOSごとに収録PHPの版差があります。「案件の指定バージョンに合わせる必要があるか」は、導入前に必ず確認したいポイントです。ここを曖昧にしたまま始めると、動いたあとで作り直しになります。

参照リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次