【第四弾】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 が提供する無料のコードエディタです。
軽量ながら強力な機能を持ち、世界中の開発者に愛用されています。

インストール手順

  1. 公式サイトにアクセス: https://code.visualstudio.com/
  2. 「Download for Windows」ボタンをクリック
  3. ダウンロードした .exe ファイルを実行
  4. インストーラーの指示に従ってインストール
  5. インストール完了後、VSCode を起動

インストール確認

VSCode が正常に起動できれば OK です。

PHP Intelephense のインストール(推奨)

PHP Intelephense は、PHP 開発を強力にサポートする VSCode 拡張機能です。
Laravel 開発において、コード補完・エラー検出・型チェックなどを提供します。

  1. VSCode を起動
  2. 左側のアクティビティバーから「拡張機能」アイコンをクリック(またはショートカット: Ctrl+Shift+X
  3. 検索バーに「PHP Intelephense」と入力
  4. bmewburn 作の「PHP Intelephense」を選択
  5. 「インストール」ボタンをクリック

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の仕組み - シンプルに理解する

💻 物理ハードウェア
CPU / メモリ / SSD / ネットワーク
↑ Hyper-V(仮想化レイヤー)が仲介 ↑
Windows 11
Ubuntu (Linux)

WindowsもLinuxも、両方ともHyper-V経由で同じハードウェアにアクセス

🔑 ポイント

WSL2は、Windows と Linux をHyper-V(ハイパーバイザー)という仮想化レイヤーの上で動かします。

WindowsもLinuxも、対等な立場でHyper-V経由でハードウェアにアクセスします。
これにより、Linuxがほぼネイティブに近い速度で動作します。

🤯 驚きの事実:MicrosoftがLinuxカーネルを開発している!

WSL2で動作する「本物のLinuxカーネル」は、なんとMicrosoft自身がメンテナンスしています。

📦 GitHubで公開されているソースコード:

https://github.com/microsoft/WSL2-Linux-Kernel

※ Microsoft公式のLinuxカーネルリポジトリ

😱 歴史的転換

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 を管理者権限で起動

  1. スタートメニューで「PowerShell」と検索
  2. 「Windows PowerShell」を右クリック
  3. 「管理者として実行」を選択

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 の開発環境を簡単に構築・共有できます。

インストール手順

  1. 公式サイトにアクセス: https://www.docker.com/products/docker-desktop/
  2. 「Download for Windows」をクリック
  3. ダウンロードした .exe ファイルを実行
  4. インストーラーの指示に従ってインストール
  5. 「Use WSL 2 instead of Hyper-V」にチェックが入っていることを確認
  6. インストール完了後、パソコンを再起動

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 内のファイルを編集できます。

インストール手順

  1. VSCode を起動
  2. 左側のアクティビティバーから「拡張機能」アイコンをクリック(または Ctrl+Shift+X
  3. 検索ボックスに「WSL」と入力
  4. 「WSL」(Microsoft 公式)を見つけて「インストール」をクリック

WSL で VSCode を開く

Ubuntu ターミナルで、プロジェクトディレクトリに移動してから以下を実行:

# ホームディレクトリで VSCode を開く場合
code .

# 特定のディレクトリで開く場合
cd /path/to/project
code .

初回起動時、VSCode Server のインストールが自動的に行われます。

💡 VSCode の左下に「WSL: Ubuntu」と表示されていれば、WSL 環境に接続されています。

A5M2 のインストール

A5M2 は、Windows で使える無料のデータベース管理ツールです。
MySQL/MariaDB のテーブルの中身を確認したり、SQL を実行したりできます。

インストール手順

  1. 公式サイトにアクセス: https://a5m2.mmatsubara.com/
  2. 「ダウンロード」をクリック
  3. 最新版の .zip ファイルをダウンロード
  4. ダウンロードした .zip ファイルを解凍
  5. 解凍したフォルダを任意の場所(例: C:\Program Files\A5M2)に配置
  6. 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

手順:

  1. 上記のGitHubリポジトリにアクセス
  2. 「Use this template」ボタンをクリック
  3. 自分のGitHubアカウントにリポジトリをコピー(リポジトリ名は任意)
  4. 必ず「Public」を選択してリポジトリを作成
  5. コピーしたリポジトリの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. 1. スタートメニューから「Docker Desktop」を起動
  2. 2. システムトレイにDockerアイコンが表示されるまで待つ
  3. 3. アイコンをクリックして「Docker Desktop is running」と表示されることを確認
  4. 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 -vdocker 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 を実行します。

新規接続の作成

  1. メニューバーから「データベース」→「データベースの追加と削除」を選択
  2. 「追加」ボタンをクリック
  3. 「MySQL/MariaDB (直接接続)」を選択
  4. 以下の情報を入力:
サーバ名: 127.0.0.1 または localhost
ポート番号: 3306 (変更した場合はその番号)
データベース: laravel
ユーザーID: udemy123
パスワード: pass123

💡 これらの値は、src/.env ファイルに記載されている内容と一致します。

接続テスト

「接続テスト」ボタンをクリックして、接続が成功することを確認します。

成功したら「OK」ボタンをクリックして接続情報を保存します。

データベースの確認

接続できたら、以下を確認してみましょう:

  • 左側のツリービューで「laravel」データベースを展開
  • マイグレーションで作成されたテーブル(users, migrations など)が表示される
  • テーブルをダブルクリックすると、中身を確認・編集できる

✅ テーブルが表示されれば、データベース接続は成功です!

接続できない場合のチェックポイント:

  • □ Docker Desktop が起動しているか
  • □ Ubuntu ターミナルで docker compose ps でコンテナが起動しているか確認
  • □ ポート番号を変更していないか(変更した場合はその番号を使用)
  • □ ユーザー名・パスワードが正しいか
  • □ ファイアウォールやセキュリティソフトがブロックしていないか

次のステップ

環境構築とプロジェクトの立ち上げが完了しました!
次の章では、Laravel について詳しく学んでいきます。