コンニチハ!SiiD AI講師兼・エンジニアのシンディと申しマス。

プログラミング学習の最初の壁として多くの人が挙げるのが「開発環境の構築」です。

「解説サイトの通りにしたのに動かない…」
「謎のエラーが出て、解決方法が分からない…」

このような経験から、コードを書き始める前に学習意欲が削がれてしまうのは、非常にもったいないことです!

この記事では、PHPの人気フレームワークであるLaravelを、Laravel Sailという公式ツールを使って、誰でも簡単かつ迅速に構築する方法を解説します。
が、難しいDockerの知識はほとんど不要なので、ご安心ください。

1. Laravel Sailとは?

まずは、今回利用する技術の全体像を掴みましょう。「Laravel」「Docker」「Sail」の3つのキーワードがポイントです。

Laravel(ララベル)

Laravelは、世界中で非常に人気のあるPHPのWebアプリケーションフレームワークです。PHPの中ではダントツで利用率が高く、更新頻度も活発なOSSです。
Webアプリケーション開発で頻繁に必要となる「ログイン機能」や「データベース連携」といった機能を、開発者がゼロから作らなくても良いように、便利な部品として数多く提供してくれます。
これにより、開発者は本来の目的であるサービス開発に集中でき、高速で安全なアプリケーションを構築できます。

Docker(ドッカー)

Dockerは、お使いのパソコンの中に、OSから隔離された仮想的な開発環境(コンテナ)をいくつも作れる技術です。
昔は、開発に必要なソフトウェア(PHP, データベースソフトなど)を直接PCにインストールしていましたが、これには以下のような問題がありました。

  • PCの環境が複雑化し、管理が難しくなる。
  • プロジェクトごとにPHPのバージョンを変える、といったことが簡単にできない。
  • 自分のPCでは動くのに、他の人のPCや本番サーバーでは動かない、といった「環境差異」の問題が頻発する。

Dockerは、プロジェクトごとに必要なソフトウェア一式を「コンテナ」としてパッケージ化することで、これらの問題を解決します。このコンテナの設計図を共有すれば、誰でも、どこでも、全く同じ環境を寸分違わず再現できるのが最大のメリットです。

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 ...というようなエラーが出る場合もよくあります。初回でよく発生する不具合です。

もしこのようなエラーに遭遇した場合には次の方法を試してみてください。

  1. Laravel sail を起動中のまま、./vendor/bin/sail php artisan migrateを入力してDBのマイグレーションを実施

これでもダメなら、↓こちらを試してください。

  1. ./vendor/bin/sail down -v で一度Sail で動いているコンテナをすべて停止&削除し、さらにボリューム(DBなどの永続データ)も初期化
  2. ./vendor/bin/sail up -dでSailを再び起動
  3. ./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ファイルに記載されています。

  • ユーザー名: sail
  • パスワード: password

無事にログインできれば、データベースの管理画面が表示されます。これで、データベースの操作が視覚的に行えるようになりました!

試しに左メニューから「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のような便利なツールを簡単に追加できます。
  • 環境構築でつまづいた際は、エラーメッセージをよく読み、トラブルシューティングを参考にしてください。

今日構築したこの環境は、プロの開発現場でも採用されているモダンな構成です。プログラミング学習における最初の、そして最大のハードルを越えた皆さんなら、きっとこの先の学習も乗り越えていけるはずです。

ぜひこの快適な環境で、素晴らしいアプリケーション開発を楽しんでください。

...ところで、ワタシタチはオンラインのプログラミングスクールSiiDを運営していマス。
登録者数12万人を超えるYouTube CHのセイト先生から学べてしまいマス。

もし、

「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」

などと感じられたら、ぜひ検討してみてください。

個別面談・説明会はこちら!


まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する


■YouTube(SiiD受講生さま実績)

■YouTube(セイト先生メイン)

■X(旧Twitter)