2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel 10 + Sail 初期セットアップ手順(phpMyAdmin・Breeze・日本語化・IDE Helper・Larastan)

2
Last updated at Posted at 2026-05-05

はじめに

本記事は、WSL2 + Docker + Laravel Sailで構築済みのLaravel 10環境を、開発に使える状態へセットアップする手順をまとめた記事です。

Laravel Sail では、先にプロジェクトを生成して動作確認を済ませてから Git 管理を開始するのが自然な流れです。先に GitHub で空リポジトリを作ってしまうと、composer create-project 実行時にディレクトリが空でないためエラーになったり、README.md が Laravel 標準ファイルで上書きされたりすることがあります。

実務でも、自分で新規プロジェクトを作る場合は「動く最小構成を作ってから Git 管理開始」の流れが一般的です。ただし、会社側ですでに空リポジトリが用意されている場合は、その指示に従ってください。

Laravel + Sail の初期動作確認までは Git 管理前に行い、その後は各フェーズが終わるたびにコミットしながら進めます。


対象読者

  • Laravel 初学者・入門者
  • WSL2 + Docker Desktop 環境がすでに整っている方
  • Breeze・静的解析ツールも一緒に入れたい方

前提環境

項目 内容
OS Windows 11
シェル WSL2(Ubuntu)
コンテナ Docker Desktop(Windows にインストール済み)
PHP PHP 8.2(Sail コンテナ内)
Laravel 10.x

注意:WSL2 側に Composer・PHP は不要です。すべて Docker コンテナ内で実行します。


全体フロー

[1] Laravel 10 + Sail環境の確認・Git管理準備
      ↓ .env ポート設定 → Sail 起動 → 動作確認
      ↓ PHP バージョン固定
      ↓ .gitignore 確認 → README.md 整備
[2] Git 管理開始・GitHub へ初回 push
      ↓ git init → 初回コミット → GitHub 空リポジトリ作成 → push
[3] phpMyAdmin 追加
       ↓ コミット
[4] Laravel Breeze インストール
       ↓ コミット
[5] ロケール・タイムゾーン設定
       ↓ コミット
[6] Breeze 日本語化(breezejp)
       ↓ コミット
[7] Laravel IDE Helper 導入
       ↓ コミット
[8] Larastan(PHPStan)導入
       ↓ コミット
[9] 最終確認

1. Laravel 10 インストール

Laravel 10とSailのインストール手順は、関連記事を参照してください。

参考:WSL + Docker + Laravel SailでLaravel10環境を構築する方法(Composerコンテナ使用)

本記事では、次の状態から作業を開始します。

  • Laravel 10プロジェクト作成済み
  • Sail導入済み
  • MySQLコンテナ起動済み
  • 初期マイグレーション実行済み
  • TOP画面確認済み
  • Laravel・PHPバージョン確認済み

1-1. .gitignore の確認

Laravel が生成する .gitignore に、以下が含まれていることを確認します:

grep -E "^/vendor|^node_modules|^\.env$" .gitignore
/vendor
node_modules
.env

これらは Git 管理対象外になっています。.env はパスワードやAPIキーを含むため、コミットしてはいけません。

1-2. README.md の整備

Laravel が生成する README.md は Laravel のデフォルト説明文です。
ポートフォリオや学習記録として使う場合は、自分のプロジェクト用に書き換えておきます:

# laravel10-project

Laravel 10 + Sail を使った学習・開発用プロジェクトです。

## 環境

- PHP 8.2
- Laravel 10.x
- MySQL 8.x
- Laravel Sail(Docker)

## 起動方法

./vendor/bin/sail up -d

## アクセス先

| サービス | URL |
|---|---|
| Laravel | http://localhost:8080 |
| phpMyAdmin | http://localhost:8083 |

1-3. Sail エイリアス設定(任意)

echo "alias sail='./vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc

以降のコマンドは sail として記載します。エイリアスを設定しない場合は ./vendor/bin/sail に読み替えてください。


2. Git 管理開始・GitHub へ初回 push

参考:Laravel 10 + Laravel Sail 初期環境をGitHub privateリポジトリに初回pushする手順

Laravel + Sail の動作確認が済んでから Git 管理を開始します。
この順序にすることで、動作する最小構成が初回コミットとして残り、何か問題が起きたときの安全な戻り先になります。

参考記事では private リポジトリを例にしていますが、本記事では用途に応じて Public / Private を選択する前提で進めます。

2-1. Git 初期化と初回コミット

Laravel インストール時点で .gitignore はすでに存在します。

cd ~/projects/laravel10-project

git init
git add .
git commit -m "chore: Laravel10 + Sail環境を構築"

2-2. GitHub で空リポジトリを作成

GitHub にアクセスし、New repository からリポジトリを作成します。

  • Repository name:任意(例:laravel10-project
  • Visibility:用途に応じて選択
    • 学習用・業務用・非公開コード:Private
    • ポートフォリオとして公開したい場合:Public
  • README / .gitignore / license追加しない(既存コードを push するため)

注意:GitHub 側で README や .gitignore を追加すると、ローカルの初回 push 時にコンフリクトが発生します。必ず空の状態でリポジトリを作成してください。

2-3. リモート接続と初回 push

git branch -M main
git remote add origin git@github.com:<ユーザー名>/<リポジトリ名>.git
git push -u origin main

SSH 接続がまだの場合は先に SSH キーを GitHub に登録してください。
HTTPS 接続の場合は https://github.com/<ユーザー名>/<リポジトリ名>.git を使用します。

2-4. push 確認

GitHub のリポジトリページをブラウザで開き、ファイルが反映されていれば完了です。


3. phpMyAdmin 追加

関連記事:【Laravel 10】Laravel SailにphpMyAdminを追加する方法とポート競合・権限エラーの解決

Laravel Sail の MySQL をブラウザから確認できるように、phpMyAdmin を追加します。

本記事では初期セットアップ全体の流れを優先するため、phpMyAdmin 追加の詳細手順は関連記事にまとめています。

3-1. .env への追記

grep -q '^PHPMYADMIN_PORT=' .env \
  && sed -i 's/^PHPMYADMIN_PORT=.*/PHPMYADMIN_PORT=8083/' .env \
  || echo 'PHPMYADMIN_PORT=8083' >> .env

grep -q '^PHPMYADMIN_PORT=' .env.example \
  && sed -i 's/^PHPMYADMIN_PORT=.*/PHPMYADMIN_PORT=8083/' .env.example \
  || echo 'PHPMYADMIN_PORT=8083' >> .env.example

ポート番号は自分の環境に合わせて変更してください。既存の LAMP 環境や別プロジェクトと同時に使う場合は、ポート競合に注意します。

3-2. compose.yaml への追加

compose.yamlservices: 配下に phpmyadmin を追加します:

  phpmyadmin:
    image: phpmyadmin:latest
    ports:
      - '${PHPMYADMIN_PORT:-8083}:80'
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
    depends_on:
      - mysql
    networks:
      - sail

${PHPMYADMIN_PORT:-8083} は「変数が未設定の場合はデフォルト値 8083 を使う」という意味です。

3-3. コンテナ再起動と確認

sail down
sail up -d
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

正常であれば以下のように表示されます:

NAMES                               STATUS    PORTS
laravel10-project-laravel.test-1    Up        0.0.0.0:8080->80/tcp
laravel10-project-phpmyadmin-1      Up        0.0.0.0:8083->80/tcp
laravel10-project-mysql-1           Up        0.0.0.0:3307->3306/tcp

3-4. 動作確認

ブラウザで http://localhost:8083 にアクセスし、.envDB_USERNAME / DB_PASSWORD でログインできれば成功です。

Sail 初期値の場合は、ユーザー名 sail、パスワード password でログインできます。

ポート構成(最終)

サービス URL / 接続先
Laravel 本体 http://localhost:8080
phpMyAdmin http://localhost:8083
MySQL 外部接続 localhost:3307

コミット

git add .
git commit -m "chore: phpMyAdminを追加"
git push

4. Laravel Breeze インストール

4-1. Breeze パッケージの追加

sail composer require laravel/breeze --dev

4-2. Breeze のセットアップ

本記事では Blade スタックを明示して実行します:

sail artisan breeze:install blade

blade を指定すると、スタック選択の対話なしで Blade スタックが直接インストールされます。

対話形式で選択しながら進めたい場合は、blade を付けずに以下を実行します:

sail artisan breeze:install

その場合は以下を選択します:

 Which stack would you like to install?
  [0] blade
  [1] react
  [2] vue
  [3] api
> 0

 Would you like to install dark mode support? (yes/no)
> no

 Would you prefer Pest tests instead of PHPUnit? (yes/no)
> no

学習用途では Blade を推奨します。

4-3. フロントエンドのビルド

breeze:install blade の実行時に npm install まで自動で行われる場合があります。念のため、以下でフロントエンド依存関係の確認とビルドを行います:

sail npm install
sail npm run build

開発中の CSS・JS 変更を即時反映したい場合 は、別ターミナルで以下を起動します:

sail npm run dev

本記事では初期セットアップ確認用として npm run build を実行しています。

4-4. マイグレーションの確認

sail artisan migrate:status

Ran? 列がすべて Yes であれば OK です。未実行のマイグレーションがあれば実行します:

sail artisan migrate

4-5. 動作確認

http://localhost:8080 にアクセスし、画面右上に Login / Register リンクが表示されれば成功です。

コミット

git add .
git commit -m "feat: Breeze認証機能を追加"
git push

5. ロケール・タイムゾーン設定

config/app.php を編集します:

// config/app.php

'timezone' => 'Asia/Tokyo',       // 変更

'locale' => 'ja',                 // 変更(デフォルト: en)
'fallback_locale' => 'en',        // 確認(変更なし)
'faker_locale' => 'ja_JP',        // 変更(デフォルト: en_US)

注意:キー名のスペルに気をつけてください。

  • 'local' ではなく 'locale'
  • 'fallback_local' ではなく 'fallback_locale'
  • 'faker_local' ではなく 'faker_locale'
  • 値の代入は = ではなく =>(PHP 連想配列)

補足:次のステップで実行する sail artisan breezejp は、Laravel の日本語化に必要な設定や翻訳ファイルを自動で反映します。
ただし、この記事では設定内容を理解しやすくするため、先に timezonelocalefallback_localefaker_locale を手動で確認・設定しています。

設定が反映されているか確認します:

sail artisan tinker
>>> config('app.timezone')  // "Asia/Tokyo"
>>> config('app.locale')    // "ja"
>>> exit

コミット

git add .
git commit -m "chore: アプリ設定を日本向けに変更"
git push

6. Breeze 日本語化(breezejp)

参考:【Laravel10】Laravel Breezeを日本語化する方法(Breezejp使用・Sail対応)

6-1. 言語ファイルの publish(未実施の場合)

sail artisan lang:publish

6-2. breezejp パッケージのインストール

sail composer require askdkc/breezejp --dev

6-3. 日本語化の実行

sail artisan breezejp

実行すると以下のように表示されます:

Laravel Breeze用に日本語翻訳ファイルを準備します
config/app.phpのlocaleをjaにします
GitHubリポジトリにスターの御協力をお願いします (yes/no) [yes]:
> yes
日本語ファイルのインストールが完了しました!

補足sail artisan breezejp により、日本語翻訳ファイルの生成に加えて、Laravel の日本語化に必要な設定も自動反映されます。
すでにステップ 5 で同じ内容を設定済みの場合でも、同じ値に整うため問題ありません。

lang/ja/ ディレクトリと翻訳ファイルが生成されます。

6-4. 動作確認

http://localhost:8080/login にアクセスし、フォームのラベルや入力例が日本語になっていれば成功です。

コミット

git add .
git commit -m "feat: Breeze日本語化を追加"
git push

7. Laravel IDE Helper 導入

参考:Laravel IDE Helper導入と補完が効かない時の解決方法

VSCode で Laravel のファサード・モデルの補完を効かせるためのツールです。

7-1. インストール

sail composer require --dev barryvdh/laravel-ide-helper

7-2. ヘルパーファイルの生成

まずはファサード補完用の _ide_helper.php を生成します。モデル補完や PhpStorm メタファイルは必要に応じて生成します。

# ファサード補完用(_ide_helper.php を生成)
sail artisan ide-helper:generate

# モデル補完用(各モデルに @property アノテーションを追加)
sail artisan ide-helper:models --nowrite

# PhpStorm メタファイル生成(VSCode でも有効)
sail artisan ide-helper:meta

--nowrite オプションを付けると、モデルファイルに直接書き込まず別ファイル(_ide_helper_models.php)に出力されます。ファイルを汚したくない場合に使います。

7-3. .gitignore への追加

生成ファイルはコミット不要なため .gitignore に追加します:

# .gitignore に追加
.phpstorm.meta.php
_ide_helper.php
_ide_helper_models.php

7-4. composer.json へのスクリプト登録(任意)

composer.jsonscripts セクションに追加すると composer ide-helper で一括実行できます:

"scripts": {
    "ide-helper": [
        "@php artisan ide-helper:generate",
        "@php artisan ide-helper:meta",
        "@php artisan ide-helper:models --nowrite"
    ]
}

コミット

git add .
git commit -m "chore: Laravel IDE Helperを導入"
git push

8. Larastan(PHPStan)導入

参考:Laravel 10にLarastan(PHPStan)を導入して静的解析する方法

Laravel 向けに最適化された静的解析ツールです。バグを実行前に検出できます。

8-1. インストール

sail composer require --dev "larastan/larastan:^2.0"

注意:以前は nunomaduro/larastan というパッケージ名でしたが、現在は abandoned(非推奨) です。
Laravel 10 には larastan/larastan2 系^2.0)を使用してください。
3 系は Laravel 11 系以降向けのため、Laravel 10 では使用しません。

8-2. 設定ファイルの作成

プロジェクトルートに phpstan.neon を作成します:

# phpstan.neon
includes:
    - vendor/larastan/larastan/extension.neon

parameters:
    paths:
        - app
        - routes
        - tests

    # レベル: 0(最も緩い)〜 9(最も厳しい)
    # 初期導入時は level 1 から始め、実装が進むにつれて段階的に上げる
    # 例: level 1 → 2 → 3 → 5 と上げていく
    # 最初から高レベルにすると学習初期やBreeze導入直後に負担が大きくなる
    level: 1

注意:古い記事では vendor/nunomaduro/larastan/extension.neon と書かれている場合がありますが、
現在のパッケージ名に合わせて vendor/larastan/larastan/extension.neon を使用してください。

8-3. 静的解析の実行

./vendor/bin/phpstan analyse

エラーがない場合:

 [OK] No errors

エラーがある場合はファイルパス・行番号・内容が表示されるので順に修正します。

メモリ不足エラーが出る場合:

./vendor/bin/phpstan analyse --memory-limit=2G

8-4. .gitignore への追加

# .gitignore に追加
/phpstan-result-cache.php

コミット

git add .
git commit -m "chore: Larastanを導入"
git push

9. 最終確認

すべてのセットアップが完了したら、以下のコマンドでまとめて確認します。

git status
sail ps
sail test
sail npm run build
./vendor/bin/phpstan analyse

各コマンドの確認内容は以下です。

コマンド 確認内容
git status 未コミットの変更が残っていないか確認
sail ps Laravel / MySQL / phpMyAdmin コンテナの起動状態を確認
sail test PHPUnit テストが通るか確認
sail npm run build Vite のフロントエンドビルドが成功するか確認
./vendor/bin/phpstan analyse Larastan / PHPStan の静的解析でエラーがないか確認

git status は、コミット漏れや不要な差分が残っていないかを見るために実行します。nothing to commit, working tree clean と表示されれば、Git 管理上はきれいな状態です。

sail ps は、Docker コンテナの起動状態を確認するコマンドです。Laravel 本体・MySQL・phpMyAdmin が Up になっていて、MySQL が healthy であれば問題ありません。

sail test は、Laravel 標準の PHPUnit テストを実行します。Breeze 導入後は認証関連のテストも追加されるため、ログイン・登録・プロフィール周りが最低限壊れていないか確認できます。

sail npm run build は、Tailwind CSS や JavaScript を Vite でビルドできるか確認します。画面表示に関わる CSS・JS の構成が壊れていないかを見るために実行します。

./vendor/bin/phpstan analyse は、Larastan(PHPStan)による静的解析です。実行前に型の不整合や Laravel コード上の問題を検出するために使います。

期待結果

確認項目 期待値
git status nothing to commit, working tree clean
Laravel http://localhost:8080 で表示 OK
phpMyAdmin http://localhost:8083 で表示 OK
MySQL STATUS が healthy
sail test(PHPUnit) テストがすべて passed
sail npm run build(Vite) ビルド成功
./vendor/bin/phpstan analyse No errors

完成後のディレクトリ構成(主要ファイル)

laravel10-project/
├── app/
├── config/
│   └── app.php          ← timezone・locale・faker_locale 設定済み
├── lang/
│   ├── en/
│   └── ja/              ← breezejp が生成した日本語ファイル
├── phpstan.neon          ← Larastan 設定
├── README.md             ← プロジェクト用に整備済み
├── _ide_helper.php       ← IDE Helper(.gitignore 対象)
├── _ide_helper_models.php← IDE Helper(.gitignore 対象)
├── .phpstorm.meta.php    ← IDE Helper(.gitignore 対象)
└── vendor/

Git コミット履歴まとめ

chore: Laravel10 + Sail環境を構築
chore: phpMyAdminを追加
feat: Breeze認証機能を追加
chore: アプリ設定を日本向けに変更
feat: Breeze日本語化を追加
chore: Laravel IDE Helperを導入
chore: Larastanを導入

トラブルシューティング

Connection refused エラーが出る

SQLSTATE[HY000] [2002] Connection refused

MySQL コンテナがまだ起動中です。しばらく待ってから再実行してください。

sail ps  # STATUS が healthy になるまで待つ
sail artisan migrate

PHP バージョンが意図しないものになっている

sail php -v  # コンテナ内の PHP バージョン確認

エイリアス未設定の場合は ./vendor/bin/sail php -v で実行してください。

PHP 8.2 以外が表示される場合は compose.yamlbuild セクションを確認します:

build:
  context: './vendor/laravel/sail/runtimes/8.2'
  dockerfile: Dockerfile
image: 'sail-8.2/app'

修正後はコンテナを再ビルドします:

sail down
sail build --no-cache
sail up -d
sail php -v

sail コマンドが見つからない

エイリアスが設定されているか確認します:

grep 'sail' ~/.bashrc

設定がなければ追加して再読み込みします:

echo "alias sail='./vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc

Larastan でメモリ不足になる

./vendor/bin/phpstan analyse --memory-limit=2G

WWWUSER / WWWGROUP の警告が出る

The "WWWGROUP" variable is not set. Defaulting to a blank string.

.env に追記します:

echo 'WWWUSER=1000' >> .env
echo 'WWWGROUP=1000' >> .env

すでに同じキーが存在する場合は、重複して追記せず既存行を書き換えてください。

値は id -u / id -g で確認した自分の UID/GID を設定してください。


まとめ

ステップ 内容 完了確認
1 Laravel 10 + Sail インストール・初期設定 http://localhost:8080 でトップ画面表示
2 Git 管理開始・GitHub へ初回 push リポジトリにファイルが反映
3 phpMyAdmin 追加 http://localhost:8083 で MySQL に接続できる
4 Breeze インストール Login / Register リンクが出る
5 ロケール・タイムゾーン設定 config('app.locale')ja
6 Breeze 日本語化 ログイン画面が日本語
7 IDE Helper 導入 補完ファイル生成済み
8 Larastan 導入 No errors が出る
9 最終確認 全項目が期待値どおり

各ステップが完了するごとにコミット & push することで、どの段階でも安全に戻れる状態を保てます。

関連記事

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?