【第四弾】Laravel入門資料
- Windows環境構築
- Mac環境構築
- Laravelとは
- ルーティング
- ビュー
- コントローラ
- マイグレーション
- モデル
- ここまでの知識の実践
- 検索・フィルタ
- ソフトデリート
- ページネーション
- 画像アップロード
- 認証ライブラリ
- 認証実装
- ミドルウェア・ロール
- 総合実践
Windows環境構築
Laravel開発を始めるために、必要なツールをインストールしていきます。
ここでは、Windows環境を前提としています。
📦 インストールするツール
- ✅ VSCode - コードエディタ
- ✅ WSL2 - Windows Subsystem for Linux
- ✅ Node.js と npm - JavaScriptランタイムとパッケージマネージャ(Ubuntu内)
- ✅ Git - バージョン管理システム(Ubuntu内)
- ✅ Docker Desktop for Windows - コンテナ環境
- ✅ Claude Code - AI開発アシスタント
- ✅ VSCode WSL拡張機能 - VSCodeからWSL環境へのアクセス
- ✅ A5M2 - データベース管理ツール
VSCode のインストール
Visual Studio Code(VSCode)は、Microsoft が提供する無料のコードエディタです。
軽量ながら強力な機能を持ち、世界中の開発者に愛用されています。
インストール手順
- 公式サイトにアクセス: https://code.visualstudio.com/
- 「Download for Windows」ボタンをクリック
- ダウンロードした
.exeファイルを実行 - インストーラーの指示に従ってインストール
- インストール完了後、VSCode を起動
インストール確認
VSCode が正常に起動できれば OK です。
PHP Intelephense のインストール(推奨)
PHP Intelephense は、PHP 開発を強力にサポートする VSCode 拡張機能です。
Laravel 開発において、コード補完・エラー検出・型チェックなどを提供します。
- VSCode を起動
- 左側のアクティビティバーから「拡張機能」アイコンをクリック(またはショートカット:
Ctrl+Shift+X) - 検索バーに「PHP Intelephense」と入力
- bmewburn 作の「PHP Intelephense」を選択
- 「インストール」ボタンをクリック
✨ Intelephense でできること:
- • 高速なコード補完:クラス名・メソッド名・変数名の自動補完
- • 型推論:Laravel のファサードやヘルパー関数の型も正確に推論
- • エラー検出:構文エラーや型エラーをリアルタイムで検出
- • 定義ジャンプ:クラスやメソッドの定義元へ瞬時に移動
- • リファレンス検索:関数やクラスがどこで使われているか検索
- • リファクタリング:変数名やメソッド名の一括変更
💡 Intelephense をインストールすると、Laravel の開発効率が劇的に向上します。
💡 後ほど、WSL 拡張機能もインストールします。
⚠️ 既に他のエディタをインストール使用している場合は、そちらで進めても構いません
WSL2 のインストール
WSL2(Windows Subsystem for Linux 2)は、Windows 上で Linux 環境を実行できる機能です。
Laravel 開発では、Linux 環境を使用することが推奨されています。
なぜWSL2が必要なのか
Web開発、特にPHP/Laravel開発でWSL2を使う理由は以下の通りです:
🌐 本番環境はほぼLinux
実際のWebサービスは、ほとんどがLinux サーバーで動作しています。
主要なクラウドサービス(AWS、Google Cloud、Azureなど)でも、PHP/Laravelアプリケーションは通常Linuxで運用されます。
- 開発環境と本番環境の統一 - Windows で開発して Linux で本番運用すると、環境差異でトラブルが発生しやすい
- ファイルシステムの違い - Windows と Linux では改行コード、パーミッション、大文字小文字の扱いが異なる
- パスの違い - Windows は
C:\、Linux は/でパスが異なる
💡 WSL2を使えば、本番環境と同じLinux環境で開発できるため、「ローカルでは動くのに本番で動かない」という問題を防げます。
WSL2の仕組み - シンプルに理解する
WindowsもLinuxも、両方ともHyper-V経由で同じハードウェアにアクセス
🔑 ポイント
WSL2は、Windows と Linux をHyper-V(ハイパーバイザー)という仮想化レイヤーの上で動かします。
WindowsもLinuxも、対等な立場でHyper-V経由でハードウェアにアクセスします。
これにより、Linuxがほぼネイティブに近い速度で動作します。
🤯 驚きの事実:MicrosoftがLinuxカーネルを開発している!
WSL2で動作する「本物のLinuxカーネル」は、なんとMicrosoft自身がメンテナンスしています。
😱 歴史的転換
2001年: Steve Ballmer CEO「Linux is a cancer(Linuxはガンだ)」発言
2014年: Satya Nadella CEO就任「Microsoft ❤️ Linux」宣言
2019年: WSL2リリース、MicrosoftがLinuxカーネル開発開始
→ かつてLinuxを敵視していたMicrosoftが、今やLinuxカーネルを開発・配布している
💰 MicrosoftがWSL2を作った本当の理由
【昔の開発者の流れ】
「Web開発にはLinuxコマンド必須だなぁ...」
「WindowsじゃLinuxコマンド使えない...」
「MacならUnixベースだからターミナル使える!」
→ Mac購入 → Windowsから離脱 💸
【Microsoftの危機感】
- • 開発者 = 未来の意思決定者(会社でどの製品を使うか決める人)
- • 開発者がWindowsを使わない = 企業もWindowsを選ばなくなる
- • 自社クラウド(Azure)でもLinux利用が60%超え
【ビジネスモデルの転換】
昔のMS(〜2014年)
収益源 = Windowsライセンス販売
→ Linuxは敵!
今のMS(2014年〜)
収益源 = Azure、Office 365、GitHub
→ OSは何でもOK!
【Microsoftの計算】
① WSL2で開発者をWindowsに引き留める
↓
② 開発者「Windowsでも開発しやすい!」
↓
③ VS Code、Azure、GitHubも使う ← ここで儲かる!💰
↓
④ 会社でもMS製品を採用
↓
⑤ Microsoft大勝利 🎉
⚡ パフォーマンスの驚異
WSL2は、VirtualBoxと比較して:
- • ファイルI/O速度:最大20倍高速
- • 起動時間:2秒未満(VirtualBoxは30秒〜数分)
- • メモリ使用量:1/5以下
- • npm install、Git操作が爆速
🎯 つまり...
WSL2は、開発者を引き留めるためのMicrosoftの戦略的投資。
結果として、「Windows上で、ほぼネイティブLinux並みの速度で開発できる」という最高の開発環境が誕生しました。
PowerShell を管理者権限で起動
- スタートメニューで「PowerShell」と検索
- 「Windows PowerShell」を右クリック
- 「管理者として実行」を選択
WSL2 のインストール
PowerShell で以下のコマンドを実行します:
wsl --install
このコマンドで、WSL2 と Ubuntu ディストリビューションが自動的にインストールされます。
再起動
インストール完了後、パソコンを再起動してください。
Ubuntu の初期設定
再起動後、自動的に Ubuntu のターミナルが開きます(開かない場合はスタートメニューから「Ubuntu」を起動)。
初回起動時、以下の設定を求められます:
- ユーザー名:任意のユーザー名を入力(小文字の英数字のみ)
- パスワード:任意のパスワードを入力(入力中は画面に表示されません)
- パスワードの再入力
⚠️ このパスワードは重要です。必ず覚えておいてください。sudo コマンド実行時に必要になります。
Ubuntu のアップデート
Ubuntu ターミナルで以下のコマンドを実行して、システムを最新の状態にします:
sudo apt update && sudo apt upgrade -y
パスワードの入力を求められたら、先ほど設定したパスワードを入力してください。
インストール確認
PowerShell で以下のコマンドを実行:
wsl --list --verbose
Ubuntu が表示され、VERSION が 2 になっていれば成功です。
💡 今後、「Ubuntu ターミナル」または「WSL ターミナル」と記載がある場合は、スタートメニューから「Ubuntu」を起動してください。
Node.js と npm のインストール(Ubuntu内)
Node.js は JavaScript をブラウザ外で実行するためのランタイム環境です。
npm(Node Package Manager)は Node.js に付属するパッケージ管理ツールで、Laravel のフロントエンド開発で使用します。
WSL2 の Ubuntu 環境内にインストールします。
Ubuntu ターミナルで実行
スタートメニューから「Ubuntu」を起動し、以下のコマンドを実行:
sudo apt install nodejs npm -y
インストール確認
Ubuntu ターミナルで以下のコマンドを実行:
node -v
バージョン番号が表示されれば成功です(例: v12.22.9)
npm -v
npm のバージョン番号も表示されます(例: 8.5.1)
💡 より新しいバージョンが必要な場合は、nvm(Node Version Manager)を使用することもできます。
Git のインストール(Ubuntu内)
Git は、ソースコードのバージョン管理システムです。
コードの変更履歴を管理したり、チーム開発で必須のツールです。
WSL2 の Ubuntu 環境内にインストールします。
Ubuntu ターミナルで実行
sudo apt install git -y
インストール確認
git --version
バージョン番号が表示されれば成功です(例: git version 2.34.1)
初期設定
Git の初期設定を行います:
# ユーザー名を設定
git config --global user.name "あなたの名前"
# メールアドレスを設定
git config --global user.email "your.email@example.com"
# 設定確認
git config --list
Docker Desktop for Windows のインストール
Docker は、アプリケーションをコンテナという単位で実行する仮想化技術です。
Laravel の開発環境を簡単に構築・共有できます。
インストール手順
- 公式サイトにアクセス: https://www.docker.com/products/docker-desktop/
- 「Download for Windows」をクリック
- ダウンロードした
.exeファイルを実行 - インストーラーの指示に従ってインストール
- 「Use WSL 2 instead of Hyper-V」にチェックが入っていることを確認
- インストール完了後、パソコンを再起動
Docker Desktop の起動
スタートメニューから「Docker Desktop」を起動します。
💡 Docker Desktop for Windows は、初回起動時に自動的にWSL2との統合設定を行います。
インストール確認
Ubuntu ターミナルで確認します:
docker --version
バージョン番号が表示されれば OK です(例: Docker version 24.0.6)
docker compose version
Docker Compose のバージョンも確認できます(例: Docker Compose version v2.23.0)
💡 Docker Desktop は常に起動しておく必要があります。開発時は自動起動設定をオンにしておくと便利です。
Claude Code のインストール
Claude Code は、Anthropic が提供する AI 開発アシスタントです。
コード生成、リファクタリング、デバッグなどを AI がサポートしてくれます。
⚠️ 重要:プロプランより上のプランへの加入が必要です。従量課金の場合はサブスクリプションプランへの加入は不要です
Claude Code を使用するには、Claude.ai の Pro プラン(有料)より上のプランへの加入が必要です。
無料プランでは使用できませんのでご注意ください。
プランの詳細: https://claude.ai/upgrade
💡 API を使用する場合:
Claude API を直接使用する場合は、サブスクリプションプランへの加入は不要です。
API は従量課金制で利用できます(クレジットカード登録が必要)。
インストールスクリプトでインストール
Ubuntu ターミナルで以下のコマンドを実行します:
curl -fsSL https://claude.ai/install.sh | bash
💡 このスクリプトは、Claude Code を自動的にダウンロードしてインストールします。
インストール確認
インストールが完了したら、バージョンを確認してみましょう:
claude --version
バージョン番号が表示されれば、インストール成功です。
初回セットアップと起動
プロジェクトディレクトリ(またはホームディレクトリ)で以下のコマンドを実行:
claude
Claude.ai での認証が求められます。ブラウザで認証してください。
認証が完了すると、Claude Code のインタラクティブセッションが開始されます。
基本的な使い方
Claude Code では、以下のようなコマンドが使えます:
/help- 利用可能なコマンド一覧を表示/login- アカウントを切り替える- 質問やリクエストを直接入力 - 例:「このプロジェクトの構造を教えて」
💡 Claude Code でできること:
- コードの生成・修正
- バグの発見と修正
- コードの説明
- リファクタリングの提案
- ファイルの読み書き
- プロジェクト全体の分析
✅ 初回ログイン後は、認証情報が保存されるため、次回からは claude コマンドだけで起動できます。
VSCode WSL拡張機能のインストール
VSCode から WSL 環境に直接アクセスできる拡張機能をインストールします。
これにより、Windows の VSCode で WSL 内のファイルを編集できます。
インストール手順
- VSCode を起動
- 左側のアクティビティバーから「拡張機能」アイコンをクリック(または
Ctrl+Shift+X) - 検索ボックスに「WSL」と入力
- 「WSL」(Microsoft 公式)を見つけて「インストール」をクリック
WSL で VSCode を開く
Ubuntu ターミナルで、プロジェクトディレクトリに移動してから以下を実行:
# ホームディレクトリで VSCode を開く場合
code .
# 特定のディレクトリで開く場合
cd /path/to/project
code .
初回起動時、VSCode Server のインストールが自動的に行われます。
💡 VSCode の左下に「WSL: Ubuntu」と表示されていれば、WSL 環境に接続されています。
A5M2 のインストール
A5M2 は、Windows で使える無料のデータベース管理ツールです。
MySQL/MariaDB のテーブルの中身を確認したり、SQL を実行したりできます。
インストール手順
- 公式サイトにアクセス: https://a5m2.mmatsubara.com/
- 「ダウンロード」をクリック
- 最新版の
.zipファイルをダウンロード - ダウンロードした
.zipファイルを解凍 - 解凍したフォルダを任意の場所(例:
C:\Program Files\A5M2)に配置 A5M2.exeを実行
💡 インストーラー不要で、解凍してすぐに使えます。デスクトップにショートカットを作成しておくと便利です。
代替ツール
A5M2 以外にも、以下のようなツールがあります:
- TablePlus - 有料だが高機能(無料トライアルあり)
- DBeaver - 無料でオープンソース
- HeidiSQL - Windows 用の無料ツール
💡 データベース接続情報は、Laravel プロジェクトを作成した後に設定します。今はインストールだけで OK です。
環境構築の確認
すべてのツールが正しくインストールされたか、最終確認をしましょう。
Ubuntu ターミナルで確認
# Node.js
node -v
# npm
npm -v
# Git
git --version
# Docker
docker --version
# Docker Compose
docker compose version
すべてのコマンドでバージョン番号が表示されれば、環境構築は完了です!
✅ インストール完了チェックリスト
- □ VSCode が起動できる
- □ WSL2 の Ubuntu が起動できる
- □ Ubuntu ターミナルで
node -vでバージョンが表示される - □ Ubuntu ターミナルで
npm -vでバージョンが表示される - □ Ubuntu ターミナルで
git --versionでバージョンが表示される - □ Docker Desktop が起動している
- □ Ubuntu ターミナルで
docker --versionでバージョンが表示される - □ Claude Code にログインできる
- □ VSCode WSL拡張機能がインストールされている
- □ A5M2 が起動できる
Laravelプロジェクトの立ち上げ
環境構築ができたので、実際にLaravelプロジェクトを立ち上げてみましょう。
この講座では、講師が用意したプロジェクトテンプレートを使用します。
GitHubからプロジェクトを取得する(Ubuntu内)
講師のGitHubリポジトリ:
https://github.com/sbtest1218-oss/udemy-aws3-laravel-new
手順:
- 上記のGitHubリポジトリにアクセス
- 「Use this template」ボタンをクリック
- 自分のGitHubアカウントにリポジトリをコピー(リポジトリ名は任意)
- 必ず「Public」を選択してリポジトリを作成
- コピーしたリポジトリのURLをコピー
⚠️ Privateリポジトリにする場合
リポジトリをPrivate(非公開)にする場合は、以下が必要になります:
- • SSHキーの設定(GitHubアカウントに公開鍵を登録)
- • または、HTTPSクローン時に認証トークンの使用
- • チーム開発の場合は、メンバーへのアクセス権限の付与
💡 初心者の方は、まず「Public」で始めることをおすすめします。
Ubuntu ターミナルで、プロジェクトを配置したいディレクトリに移動して、以下を実行:
# ホームディレクトリに移動
cd ~
# リポジトリをクローン(URLは自分のリポジトリのURLに置き換える)
git clone https://github.com/あなたのユーザー名/リポジトリ名.git
# クローンしたディレクトリに移動
cd リポジトリ名
環境変数ファイルを準備する
.env.example をコピーして .env ファイルを作成します:
cp .env.example .env
💡 .env ファイルには、データベース接続情報などの設定が含まれます。
このファイルの値は docker-compose.yml で使用されます。
Dockerでプロジェクトを立ち上げる
Docker コンテナを起動します:
docker compose up -d
-d オプションで、バックグラウンドで実行されます。
コンテナが起動したら、appコンテナにroot権限で入ります:
docker compose exec -u root app bash
💡 -u root オプションで、root ユーザーとしてコンテナに入ります。これにより、ファイルのパーミッション問題を回避できます。
Laravelのインストール
コンテナ内でLaravelをインストールします:
composer create-project laravel/laravel:"^12.0" .
⚠️ 最後の .(ドット)を忘れずに!これは「現在のディレクトリにインストール」を意味します。
📌 バージョン指定について
動画では composer create-project laravel/laravel . でLaravel最新版を取得していましたが、
この資料では laravel/laravel:"^12.0" とバージョンを指定しています。
💡 理由: バージョンを指定しないと、将来Laravel 13、14などがリリースされた際に、
最新バージョンが自動的にインストールされ、動作が変わってしまう可能性があるためです。
"^12.0" と指定することで、Laravel 12系の最新版(12.0、12.1など)をインストールし、
メジャーバージョンアップ(13.0など)は自動的にインストールされないようにしています。
パーミッションの修正
Laravelのインストールが完了したら、データディレクトリの所有者を変更します:
chown -R 1000:1000 /data
💡 WSL 環境では、ファイルのパーミッション問題が発生することがあります。このコマンドで、適切な権限を設定します。
パーミッション修正後、コンテナから出ます:
exit
ホスト側でのパーミッション修正
コンテナから出た後、Ubuntu ターミナルで以下のコマンドを実行します:
chmod -R 755 src/
💡 コンテナ内で作成されたファイルは、ホスト側(WSL Ubuntu)から編集できない場合があります。このコマンドで、VSCodeなどから編集可能にします。
Laravelのデータベース設定を編集する
src/.env ファイルを開いて、データベース設定を編集します。
VSCodeでファイルを開く(WSL環境から):
code src/.env
以下の部分を探して、値を変更します:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=udemy123
DB_PASSWORD=pass123
💡 これらの値は、docker-compose.yml で定義されているデータベースコンテナの設定と一致している必要があります。
設定を反映させるため、Dockerコンテナを再起動します:
# コンテナを停止(データベースも削除)
docker compose down -v
# コンテナを再起動
docker compose up -d
データベースのマイグレーション
再度appコンテナに入ります(通常ユーザーで問題ありません):
docker compose exec app bash
データベースのテーブルを作成します:
php artisan migrate
マイグレーションが成功したら、ブラウザでアクセスしてみましょう:
http://localhost
✅ Laravelのウェルカムページが表示されれば成功です!
🎉 よく使うDockerコマンド
docker compose up -d- コンテナを起動docker compose down- コンテナを停止docker compose down -v- コンテナを停止してボリュームも削除docker compose exec app bash- appコンテナに入るdocker compose exec -u root app bash- root権限でappコンテナに入るdocker compose ps- 起動中のコンテナを確認docker compose logs- ログを確認exit- コンテナから出る
よくあるトラブル4選と対処法
プロジェクト立ち上げ時によく遭遇するトラブルと、その解決方法を紹介します。
❌ トラブル1:ポート番号が被っている
エラー例:
Error: bind: address already in use
Error: Ports are not available
Error: driver failed programming external connectivity: port is already allocated
原因:
既に他のアプリケーションが同じポート番号(80番や3306番)を使用している。
解決方法:
docker-compose.yml ファイルを開いて、ポート番号の左側を変更します:
# 変更前
ports:
- 80:80 # Webサーバー
- 3306:3306 # MySQL
# 変更後(例)
ports:
- 8080:80 # Webサーバーを8080番に変更
- 3307:3306 # MySQLを3307番に変更
変更後は http://localhost:8080 でアクセスします。
docker compose down してから docker compose up -d で再起動してください。
❌ トラブル2:Docker Desktopが起動していない
エラー例:
Cannot connect to the Docker daemon
Is the docker daemon running?
原因:
Docker Desktop が起動していない、またはDockerサービスが停止している。
解決方法:
- 1. スタートメニューから「Docker Desktop」を起動
- 2. システムトレイにDockerアイコンが表示されるまで待つ
- 3. アイコンをクリックして「Docker Desktop is running」と表示されることを確認
- 4. 再度 Ubuntu ターミナルで
docker compose up -dを実行
💡 開発時は、Docker Desktopを自動起動するように設定しておくと便利です。
❌ トラブル3:.envファイルの設定が間違っている
エラー例:
SQLSTATE[HY000] [2002] Connection refused
SQLSTATE[HY000] [1045] Access denied for user
原因:
src/.env のデータベース接続情報が、docker-compose.yml で定義した値と一致していない。
解決方法:
src/.env ファイルを開いて、以下の値を確認・修正します:
DB_CONNECTION=mysql
DB_HOST=db # コンテナ名と一致させる
DB_PORT=3306 # コンテナ内部のポート
DB_DATABASE=laravel
DB_USERNAME=udemy123
DB_PASSWORD=pass123
修正後は必ず docker compose down -v → docker compose up -d
で再起動してください。
❌ トラブル4:docker compose down -v を実行していない
症状:
設定を変更したのに反映されない、古いデータベースの状態が残っている。
原因:
Dockerのボリューム(データを保存する領域)に古い設定やデータが残っている。
docker compose down だけでは、ボリュームは削除されません。
解決方法:
-v オプションを付けてボリュームも削除します:
# ボリュームも含めて完全に削除
docker compose down -v
# 再起動
docker compose up -d
# appコンテナに入る
docker compose exec app bash
# マイグレーションを再実行
php artisan migrate
⚠️ -v オプションを使うとデータベースの内容も削除されます。本番環境では絶対に使用しないでください。
A5M2でMySQLに接続する
データベースクライアントツールを使って、MySQLに接続してみましょう。
ステップ8でインストールした A5M2 を使用します。
A5M2を起動
解凍したフォルダから A5M2.exe を実行します。
新規接続の作成
- メニューバーから「データベース」→「データベースの追加と削除」を選択
- 「追加」ボタンをクリック
- 「MySQL/MariaDB (直接接続)」を選択
- 以下の情報を入力:
| サーバ名: | 127.0.0.1 または localhost |
| ポート番号: | 3306 (変更した場合はその番号) |
| データベース: | laravel |
| ユーザーID: | udemy123 |
| パスワード: | pass123 |
💡 これらの値は、src/.env ファイルに記載されている内容と一致します。
接続テスト
「接続テスト」ボタンをクリックして、接続が成功することを確認します。
成功したら「OK」ボタンをクリックして接続情報を保存します。
データベースの確認
接続できたら、以下を確認してみましょう:
- 左側のツリービューで「laravel」データベースを展開
- マイグレーションで作成されたテーブル(users, migrations など)が表示される
- テーブルをダブルクリックすると、中身を確認・編集できる
✅ テーブルが表示されれば、データベース接続は成功です!
接続できない場合のチェックポイント:
- □ Docker Desktop が起動しているか
- □ Ubuntu ターミナルで
docker compose psでコンテナが起動しているか確認 - □ ポート番号を変更していないか(変更した場合はその番号を使用)
- □ ユーザー名・パスワードが正しいか
- □ ファイアウォールやセキュリティソフトがブロックしていないか
次のステップ
環境構築とプロジェクトの立ち上げが完了しました!
次の章では、Laravel について詳しく学んでいきます。