【Laravel】Laravelの開発環境を作ろう:Docker・MAMP/XAMPP・Laravel Sail、結局どれを選ぶべき?

laravelアイキャッチ Laravel

こんにちは、かつコーチです。

前回、Laravelの特徴と魅力について解説しました。

「じゃあ実際に触ってみよう」となったとき、最初にぶつかる壁が環境構築です。

調べてみると、Docker、MAMP、XAMPP、Laravel Sailと、いろいろな単語が出てきて「結局どれを使えばいいの?」と迷った方も多いと思います。

私自身も初学者だった頃、この選択肢の多さでかなり時間を溶かした経験があるので、今回はそこを重点的に整理していきます。

Laravel開発環境、選択肢が多くて迷う理由

そもそも何が必要なのか

Laravelを動かすには、最低限次の3つが必要です。

  • PHP:Laravel自体がPHPで書かれているため
  • Composer:LaravelのライブラリをインストールするためのPHPパッケージ管理ツール
  • データベース(MySQLなど):多くのアプリでデータ保存に使う

PHP編でXAMPPを使って環境構築した方は、この3つのうちPHPとMySQLはすでに用意できている状態です。

問題は「この上でLaravelをどう動かすか」で、ここに複数の選択肢が存在します。

主要な選択肢

代表的な選択肢は次の3つです。

  1. Laravel Sail:Laravel公式が用意している、Docker上で動くLaravel専用の開発環境
  2. XAMPP / MAMP:PHP編でも使った、パソコンに直接PHP・MySQLをインストールするタイプのツール
  3. Docker(Sailを使わず自分で構築):Dockerの知識があれば、独自の構成を組むことも可能

このうち、Laravel Sailは中身がDockerなので、実質「Docker系」と「XAMPP/MAMP系」の2択と考えるとシンプルです。

Docker(Laravel Sail)・MAMP/XAMPPを比較する

比較表

項目Laravel Sail(Docker)XAMPP / MAMP
公式の推奨度2026年現在、公式が推奨する標準的な方法非推奨ではないが「Dockerを使わない場合の選択肢」という位置づけ
導入の手軽さDockerさえ入っていればコマンド1つで環境が揃うインストーラーで導入済みなら追加設定は少なめ
環境差異OSが違っても同じ構成を再現できるOSやローカル環境によって微妙な差が出ることがある
複数プロジェクトの扱いプロジェクトごとにPHP/MySQLのバージョンを切り替えやすいバージョンの切り替えがやや面倒
学習コストDockerの概念を新たに覚える必要があるPHP編ですでに触っているため学習コストが低い
PCへの影響PHP・MySQLをPCに直接インストールしないPHP・MySQLがPCに直接インストールされる

なぜLaravel Sailが公式推奨なのか

Laravel Sailは、Laravelのインストール時に選択できる「Docker構成一式」です。

「自分のPCでは動くのに、別のPCでは動かない」という環境差異のトラブルが起きにくいのが最大のメリットです。

チーム開発では、全員が同じ設定ファイル(docker-compose.yml)を使うので、環境構築の手順を1つずつ説明する手間が減ります。

結局どれを選べばいいのか:判断軸

PHP編からそのままXAMPPを使うか、Sailに切り替えるか

PHP編でXAMPPを使ってきた方に向けて、判断軸を整理します。

  • とにかく早くLaravelに触ってみたい・学習目的で1人で進める → まずはXAMPP環境の上でComposerを使ってLaravelを動かしてOKです。慣れた環境の方が余計なつまずきが減ります
  • 将来的にチーム開発・案件に関わる可能性がある → 早い段階でLaravel Sail(Docker)に慣れておくのがおすすめです。実務では「Sailが動かせる」ことが前提になっている現場が多いです
  • すでにDockerに抵抗がない → 迷わずLaravel Sailを選んでください。公式推奨のメリットをそのまま享受できます

私が実際につまずいたポイント

私が初めてLaravel Sailを試したとき、./vendor/bin/sail up を実行したら次のようなエラーで止まりました。

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use

原因は、XAMPPのMySQLが裏で起動したままだったことでした。

同じ3306番ポートをXAMPPのMySQLとSailのMySQLコンテナが取り合って、エラーになっていたのです。

XAMPPのMySQLを停止してから sail up をやり直したところ、無事に起動しました。

XAMPPとLaravel Sailを併用する場合は、片方を停止してから使うか、ポート番号をどちらかで変更する必要がある、というのは覚えておいて損はないポイントです。

環境構築の実際の手順(ざっくり)

XAMPPを使う場合

XAMPPは既に導入済みという前提で、Composerでプロジェクトを作成します。

composer create-project laravel/laravel my-first-laravel
cd my-first-laravel
php artisan serve

php artisan serve を実行すると、http://127.0.0.1:8000 でLaravelの初期画面が表示されます。

Laravel Sailを使う場合

Dockerを導入済みという前提で、次のコマンドで環境ごと作成できます。

curl -s "https://laravel.build/my-first-laravel" | bash
cd my-first-laravel
./vendor/bin/sail up

初回はDockerイメージのダウンロードが走るため少し時間がかかりますが、完了すれば http://localhost でLaravelの初期画面が表示されます。

まとめ

この記事のポイント

  • Laravelの環境構築の主な選択肢は「Laravel Sail(Docker)」と「XAMPP/MAMP」
  • 2026年現在はLaravel Sailが公式推奨で、環境差異が出にくくチーム開発に向いている
  • XAMPP/MAMPはDockerを使わない場合の選択肢で、PHP編からの継続で馴染みやすい
  • 学習目的でまず動かしたいならXAMPP継続、チーム開発を見据えるならSailへの切り替えがおすすめ
  • XAMPPとSailを併用する際は、MySQLのポート競合に注意する

次に読むべき記事

環境が整ったら、次はLaravelのプロジェクトの中身を見ていきましょう。

「どのフォルダに何が入っているのか」を理解しておくと、この先の学習がぐっとスムーズになります。

→ 次の記事:Laravelのディレクトリ構造を理解する

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