Laravel Sail(セイル)
Laravel Sailは、このDockerを利用したLaravel専用の開発環境です。本来Dockerを扱うには、docker-compose.ymlという設定ファイルを自分で書く必要がありますが、Sailはこの面倒な設定を全て自動で行ってくれます!
私たちはいくつかの簡単なsailコマンドを覚えるだけで、Dockerの恩恵を受けることができます。
OSの違いを吸収し、誰でも同じ手順で開発を始められる、まさに初学者のための救世主とも言えるツールです。
PHPやLaravelの環境構築方法は複数の方法がありますが、Laravel Sailでは「とにかく早く簡単に完了できる」「Dockerが使える」「アプリを完成させた後のホスティングも楽」など、ほかにない恩恵があります。
2. Laravel Sailの環境構築の手順
ここからは、実際に手を動かして環境を構築していきます。一つずつ丁寧に進めていきましょう!
なお、本記事ではDockerおよびDocker Desktopはすでにインストールされているものとして解説していきます。
ターミナル(Macの場合)またはPowerShell(Windowsの場合)を開き、プロジェクトを作成したいディレクトリに移動します。
ここでは例としてデスクトップに作成します。
cd Desktop
次に、以下のコマンドを実行します。これが最も基本的なコマンドで、example-appの部分は、ご自身の好きなプロジェクト名に変更可能です。
Macの場合
curl -s "https://laravel.build/example-app" | bash
Windowsの場合
curl -s https://laravel.build/example-app | bash
このコマンドを実行すると、Laravelプロジェクトの作成と、Sail(Docker)環境のセットアップが全自動で行われます。初回は必要なファイルのダウンロードなどで5分〜15分ほど時間がかかりますが、気長に待ちましょう。
Please provide your password so we can make some final adjustments to your application's permissions.
Password:
このときパスワードを求められる場合があります。
そのときは管理者パスワードを入力ください。管理者パスワードとは、 ”PCを起動して各々のユーザーにログインするときに使用するパスワード”です。
Thank you! We hope you build something incredible. Sail on! というメッセージが表示されたら成功です。
3. Sailの起動と初期画面の確認
プロジェクトが作成できたら、そのディレクトリに移動します。
cd example-app
そして、以下のコマンドでSailを起動しましょう。-dオプションを付けると、コンテナがバックグラウンドで起動し、ターミナルを続けて使用できるので便利です。
./vendor/bin/sail up -d
コンテナの起動が完了したら、Webブラウザを開き、アドレスバーに http://localhost と入力してください。
Laravelのウェルカムページが表示されましたか?次のような画面が表示されればOKです。

もしこの画面が表示されていたら、おめでとうございます!これで、あなたのPCにLaravel Sailでの開発環境が構築されました。
が、 SQLSTATE[xxxx] [xxxx] Access denied for user ...というようなエラーが出る場合もよくあります。初回でよく発生する不具合です。

もしこのようなエラーに遭遇した場合には次の方法を試してみてください。
- Laravel sail を起動中のまま、
./vendor/bin/sail php artisan migrateを入力してDBのマイグレーションを実施
これでもダメなら、↓こちらを試してください。
./vendor/bin/sail down -v で一度Sail で動いているコンテナをすべて停止&削除し、さらにボリューム(DBなどの永続データ)も初期化./vendor/bin/sail up -dでSailを再び起動./vendor/bin/sail php artisan migrateを入力してDBのマイグレーションを実施
いずれかで修正されるはずです。
アカウント作成
この状態ですでにアカウント認証(アカウント作成・ログイン)もできるようになっています。
試しに画面右上の「Register」からアカウント登録を行ってみましょう。

4. データベース管理ツール(PhpMyAdmin)の導入
ここでは、MySQLを選択した場合のデータベース管理ツール「PhpMyAdmin」の導入方法を解説します。
コマンドを打たずに、GUIで視覚的にDBの情報を閲覧・編集できるため、開発効率が格段に上がります。
また、Laravel SailはデフォルトでMySQLが設定されているので、既存の設定にいくつかのコードを追記するだけで利用可能になります!
Step 1. docker-compose.ymlの編集
プロジェクトのフォルダ直下にあるdocker-compose.ymlというファイルをテキストエディタで開きます。
mysqlセクションの下あたりに、ファイルの中にphpmyadminというセクションを追記してください。
# docker-compose.yml (変更後)
...
mysql:
...(中略)...
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:mysql
ports:
- 8080:80
environment:
MYSQL_USERNAME: '${DB_USERNAME}'
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
PMA_HOST: mysql
networks:
- sail
...
Step 2. Sailの再起動
設定を反映させるため、Sailを再起動します。まずは以下のコマンドでコンテナを完全に停止させます。
./vendor/bin/sail down
停止したら、再度起動コマンドを実行します。
./vendor/bin/sail up -d
今度はPhpMyAdminのコンテナも一緒に起動されます。
Step 3. PhpMyAdminへのアクセス
Webブラウザで http://localhost:8080 にアクセスしてください。

ログイン画面が表示されたら、以下の情報を入力します。これらの情報は、プロジェクト直下の.envファイルに記載されています。
無事にログインできれば、データベースの管理画面が表示されます。これで、データベースの操作が視覚的に行えるようになりました!
試しに左メニューから「laravel(DB名) -> users(テーブル名)」をクリックしてみてください。
先ほど登録したユーザー情報が表示されているはずです。
DB内のデータはこの画面から確認・編集・削除も可能です。

5. よくあるエラーと対処法(トラブルシューティング)
環境構築にはエラーがつきものです。ここでは、初心者が遭遇しがちなエラーとその対処法をまとめます。
エラーメッセージ例 | 原因と対処法 |
Cannot connect to the Docker daemon...
| Docker Desktopが起動していません。Docker Desktopアプリケーションを起動してから、再度コマンドを実行してください。 |
Error response from daemon: Ports are not available...
| ポートが既に使用されています。.envファイルのAPP_PORT=80の値を、8000など別の数値に変更し、sail downしてからsail up -dで再起動してください。 |
bash: ./vendor/bin/sail: No such file or directory
| コマンドを実行しているディレクトリが間違っています。cdコマンドで、作成したLaravelプロジェクトのルートディレクトリに移動しているか確認してください。 |
まとめ
この記事では、Laravel Sailを使って、簡単かつ迅速にLaravelの開発環境を構築する方法を解説しました。
- Laravel Sailは、Dockerの複雑な設定を隠蔽し、簡単なコマンドで開発環境を操作できるツールです。
curlコマンド一発で、Windows/Mac問わず同じ手順でプロジェクトを作成でき、データベースの種類も選択可能です。docker-compose.ymlを少し編集するだけで、PhpMyAdminのような便利なツールを簡単に追加できます。- 環境構築でつまづいた際は、エラーメッセージをよく読み、トラブルシューティングを参考にしてください。
今日構築したこの環境は、プロの開発現場でも採用されているモダンな構成です。プログラミング学習における最初の、そして最大のハードルを越えた皆さんなら、きっとこの先の学習も乗り越えていけるはずです。
ぜひこの快適な環境で、素晴らしいアプリケーション開発を楽しんでください。