コンニチハ!SiiD AI講師兼・エンジニアのシンディと申しマス。
Laravel Sailは、Dockerを利用してLaravelの開発環境を驚くほどシンプルにしてくれるツールです。
この記事では、Sailを日常的に使う上で欠かせない必須コマンドを「チートシート」としてまとめます。
さらに、なぜローカルPCにPHPがなくてもコマンドが実行できるのか、その仕組みについても解説します!
なぜsail
コマンドでPHPが動くのか?
まずこの点がLaravel Sailを理解する上で最も重要なポイントです。
通常php ...
のようなコマンドを実行するには、お使いのPC(ローカル環境)にPHPがインストールされている必要があります。また、 php artisan ...
であればPHPに加えてLaravel、 npm ...
であればNode.jsのインストールが必要です。
しかし、Laravel Sailを使う場合、実際のコマンドはあなたのPC上ではなく、全部乗せのDockerコンテナ内で実行されています。 sail
コマンドを冒頭につけることで、Laravel Sail経由で各コマンドが実行されます。
ゆえに、Laravel SailとDockerだけのインストールで済んでしまいます。

【コマンド実行の仕組み】
- ターミナルで
sail artisan migrate
と入力します。 sail
スクリプトがその命令を受け取ります。sail
は、バックグラウンドで起動しているLaravelアプリケーション用のDockerコンテナ(内部にPHPやComposer、Artisanコマンドが全て揃っている)を探します。artisan migrate
という命令を、そのコンテナの中に送り込みます。- コマンドがコンテナ内部で実行されます。
- 実行結果があなたのターミナルに返ってきます。
この仕組みのおかげで、私たちのローカルPCに必要なのはDockerとプロジェクトファイルだけで、PHPやデータベースソフトを直接インストールする必要が一切ありません。これにより、PC環境を汚さずに、クリーンな状態で開発を進めることができます。
もっと便利に!sail
コマンドのエイリアス設定
毎回 ./vendor/bin/sail
と入力するのは少し長いですよね。ターミナルの設定(エイリアス)を使えば、これを sail
だけで実行できるようになります。
Mac / Linux (WSL) の場合
お使いのシェル設定ファイル(.zshrc
または.bashrc
)に、以下の1行を追記します。
ターミナルを開き、このコマンドを入力するだけでOKです。
# Zshをお使いの場合
echo "alias sail='bash vendor/bin/sail'" >> ~/.zshrc
# Bashをお使いの場合
echo "alias sail='bash vendor/bin/sail'" >> ~/.bashrc
設定を反映させるために、ターミナルを再起動するか、source ~/.zshrc
(またはsource ~/.bashrc
)を実行してください。
これで以降は sail
とだけ入力するだけよくなります!
Windows (PowerShell) の場合
まずホームディレクトリへ移動し、設定ファイル(.bashrc)があるか確認します。
cd ~
ls -a
CLI上のエディタvimで.bashrcを開きます。(nanoでもいい)
vim ~/.bashrc
インサートモードでこの行をどこかに追記します。(迷ったら最後尾にでも)
alias sail="./vendor/bin/sail"
esc->:wq
で変更を保存します。また次のコマンドを入力するとずぐに変更を反映できます。
source ~/.bashrc
これで以降は sail
とだけ入力するだけよくなります!
Laravel Sail 必須コマンドチートシート
以下に、開発で頻繁に使用するコマンドをまとめました。このページをブックマークしておくと便利です。
(エイリアス設定後の sail コマンドを前提としています)
コマンド | 説明 |
| コンテナを起動します。開発を始めるときの最初のコマンドです。(ログを常にCLIに出力させる場合有効) |
| コンテナをバックグラウンドで起動します。Sailを起動したまま、同じタブ内でほかのコマンドが実行できます。ただしログは出力されなくなるので、何かエラーが出たときに気づきにくい点が注意。 |
| 全てのコンテナを停止し、関連するネットワークも削除します。作業を終えるときに実行します。 |
| コンテナを停止しますが、ネットワークは維持します。次に |
| 全てのコンテナを再起動します。 |
| 現在起動しているコンテナの状態(ID、ポートなど)を確認します。 |
| LaravelのArtisanコマンドを実行します。 |
| PHPのパッケージ管理ツールComposerのコマンドを実行します。 |
| Node.jsのパッケージ管理ツール(npm)のコマンドを実行します。 |
| Laravelアプリケーションのコンテナのシェル(操作画面)に入ります。コンテナ内で直接コマンドを実行したい場合に使います。 |
| コンテナのログをリアルタイムで表示します。エラーの原因調査に役立ちます。 |
ぜひこれらの内容も含めて開発を楽しんでください!
...ところで、ワタシタチはオンラインのプログラミングスクールSiiDを運営していマス。
登録者数12万人を超えるYouTube CHのセイト先生から学べてしまいマス。
もし、
「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」
などと感じられたら、ぜひ検討してみてください。
まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する