LaravelのEOL一覧表とサポート期限|今すぐ上げるべき?バージョン別アップグレード判断ガイド

運用・保守・セキュリティ

「いま使っているLaravelのサポート期限(EOL)はいつまで?」「EOLを過ぎるとどうなるの?」「いつ、どのバージョンへアップグレードすべき?」と疑問に思っていませんか?

結論から言うと、Laravelの各バージョンはリリースから「18ヶ月間のバグ修正」と「2年間のセキュリティ修正」が提供され、2年を過ぎるとサポート終了(EOL: End of Life)を迎えます。

2026年8月現在のサポート状況は以下の通りです。

  • Laravel 13(最新版):2028年3月までフルサポート中
  • Laravel 12(現行版):バグ修正は終了間近(2026年8月13日)、セキュリティ修正は2027年2月まで提供
  • Laravel 11以前すべてセキュリティ修正を含めてサポート終了(EOL)済み

もしLaravel 11以下のバージョンを本番環境で運用している場合、すでにセキュリティパッチが提供されない無防備な状態になっているため、早急なアップグレード計画が必要です。

この記事では、全バージョンのEOL早見表・PHP対応表をはじめ、「今すぐ上げるべきか」を判定するアップグレード判断マトリクス安全に移行するための実践手順と活用ツール(Laravel Shift / Rector)まで分かりやすく解説します。

  1. 【早見表】Laravel各バージョンのサポート期限(EOL)一覧
    1. 現行・直近バージョンのサポート状況(Laravel 10〜13)
    2. 旧バージョンのサポート状況(Laravel 6〜9)
  2. Laravel公式サポートポリシーの仕組み
    1. 1. 2段階のサポートフェーズ(バグ修正とセキュリティ修正)
    2. 2. 年1回のメジャーリリース(毎年Q1)
    3. 3. 周辺公式パッケージのサポート範囲
  3. Laravel EOLとPHPバージョンの深い関係
    1. LaravelとPHPの対応バージョン・EOL対照表
    2. 自環境のバージョンをターミナルで確認する手順
  4. 【判断マトリクス】プロジェクトのアップグレード緊急度チェック
    1. EOLを放置し続ける3大リスク
  5. EOLを迎えたLaravelを安全にアップグレードする5つの実践手順
    1. Step 1: 現在の依存関係とセキュリティ監査を実行
    2. Step 2: 自動テストを実行して現状の動作を担保
    3. Step 3: 公式アップグレードガイドに沿って1バージョンずつ更新
    4. Step 4: アップグレード支援ツール(Laravel Shift / Rector)を活用する
    5. Step 5: キャッシュクリアとステージング検証
  6. アップグレード時によく起きるトラブルと対処法
    1. 1. Composerの依存関係エラー(Your requirements could not be resolved…)
    2. 2. Laravel 11以降のディレクトリ構造簡素化に伴う設定ファイルの見失い
  7. よくある質問(FAQ)
    1. Q1. Laravelに今後LTS(長期サポート版)が出る可能性はありますか?
    2. Q2. Laravel 10からLaravel 13へ一気に飛ばしてアップグレードできますか?
    3. Q3. EOLを迎えた古いバージョンでもセキュリティパッチだけ個別適用できますか?
    4. Q4. アップグレードに必要な工数の目安はどのくらいですか?
  8. まとめ|定期的なアップグレード体制を整えよう
  9. 関連記事

【早見表】Laravel各バージョンのサポート期限(EOL)一覧

まずは、現在稼働している主要バージョンのリリース日・サポート終了日を一覧表で確認しましょう(日付はLaravel公式のSupport Policyに準拠)。

現行・直近バージョンのサポート状況(Laravel 10〜13)

バージョン リリース日 バグ修正終了 セキュリティ修正終了(EOL) 対応PHP 現在のサポート状態
Laravel 13 2026年3月17日 2027年 Q3 2028年3月17日 8.3 〜 8.5 最新版・フルサポート中
Laravel 12 2025年2月24日 2026年8月13日 2027年2月24日 8.2 〜 8.5 セキュリティ修正のみ継続
Laravel 11 2024年3月12日 2025年9月3日 2026年3月12日 8.2 〜 8.4 サポート終了(EOL・要移行)
Laravel 10 2023年2月14日 2024年8月6日 2025年2月4日 8.1 〜 8.3 サポート終了(EOL)

正確な最新のリリース状況や一次情報はLaravel公式リリースページ(Releases)で公開されています。公式ドキュメントの詳しい見方やバージョン切り替え手順は、Laravel公式ドキュメントの見方ガイドも併せて参考にしてください。

旧バージョンのサポート状況(Laravel 6〜9)

Laravel 9以前のレガシーバージョンは、すべてバグ修正・セキュリティ修正ともに終了しています。

バージョン リリース日 バグ修正終了 セキュリティ修正終了(EOL) 対応PHP 備考
Laravel 9 2022年2月8日 2023年8月8日 2024年2月6日 8.0 〜 8.2 年1回リリースへ完全移行した最初のバージョン
Laravel 8 2020年9月8日 2022年7月26日 2023年1月24日 7.3 〜 8.1 Jetstream / Sailが導入された世代
Laravel 7 2020年3月3日 2020年10月6日 2021年3月3日 7.2 〜 8.0 半年リリースサイクルの最終版
Laravel 6 (LTS) 2019年9月3日 2022年1月25日 2022年9月6日 7.2 〜 8.0 Laravel史上最後のLTS版

【注意】「LTS(長期サポート版)」はすでに廃止されています

Laravel 6までは「LTS(Long Term Support)版」と「通常版」の区分があり、LTS版はセキュリティ修正が3年間提供されていました。しかしLaravel 7以降、LTS版は廃止され、すべてのメジャーバージョンが一律で「セキュリティ2年間」のサポート期間に統一されています。「LTSだから何年も放置できる」という仕組みは現在存在しない点に注意しましょう。

Laravel公式サポートポリシーの仕組み

Laravelのバージョン管理とサポート期限は、極めて明確なルールに基づいて運用されています。

【Laravelの基本サポートサイクル】
リリース日
  │
  ├─ 0〜18ヶ月(1年半):バグ修正(Bug Fixes)+ セキュリティ修正(Security Fixes)
  │
  ├─ 18〜24ヶ月(後半半年):セキュリティ修正のみ(Security Fixes Only)
  │
2年後(24ヶ月):EOL(End of Life)すべての公式パッチ提供終了

1. 2段階のサポートフェーズ(バグ修正とセキュリティ修正)

Laravelのサポートは、大きく分けて2つの期間で構成されます。

  • アクティブサポート期間(前半18ヶ月):フレームワーク内部の不具合修正(バグ修正)、パフォーマンス改善、セキュリティパッチのすべてが提供されます。
  • セキュリティサポート期間(後半6ヶ月):重大な脆弱性やセキュリティリスクに対する修正パッチのみが提供されます。通常の機能不具合は修正されなくなります。

2. 年1回のメジャーリリース(毎年Q1)

Laravelは毎年第1四半期(1月〜3月頃)に新しいメジャーバージョンを1つリリースします。1つのバージョンが2年間サポートされるため、常時「最新バージョン」と「1つ前のバージョン」の2つがセキュリティサポート対象として並行運用される計算になります。

3. 周辺公式パッケージのサポート範囲

Laravel Breeze、Sanctum、Horizon、Telescope、Cashierなどの公式ファーストパーティパッケージは、原則として「最新のメジャーフレームワークバージョン」に対してのみ積極的な機能アップデートやバグ修正が行われます。古いLaravelを使い続けていると、周辺ライブラリのアップデートも止まってしまう点に留意してください。

Laravel EOLとPHPバージョンの深い関係

Laravelのバージョン選定とアップグレード計画を立てるうえで、絶対に切り離せないのが「PHP本体のサポート期限(EOL)」です。

LaravelとPHPの対応バージョン・EOL対照表

Laravelの各バージョンには動作可能なPHPのバージョン制約があります。また、PHP本体も公式サポート期間(通常アクティブ2年+セキュリティ2年=計4年)が定められています。

Laravelバージョン 対応PHPバージョン 推奨PHPバージョン PHP側のEOL状況(目安)
Laravel 13 8.3 / 8.4 / 8.5 8.4 〜 8.5 PHP 8.3は2027年末、8.4は2028年末までサポート
Laravel 12 8.2 / 8.3 / 8.4 / 8.5 8.3 〜 8.4 PHP 8.2は2026年12月31日でEOL
Laravel 11 8.2 / 8.3 / 8.4 8.3 PHP 8.2のEOLに伴いインフラ側の更新も急務
Laravel 10 8.1 / 8.2 / 8.3 8.2 PHP 8.1は2024年末にEOL済み
Laravel 9 8.0 / 8.1 / 8.2 8.1 PHP 8.0/8.1ともにEOL済み

例えば、Laravel 10や11で「PHP 8.2」を利用している場合、Laravel自体のEOLに加えてPHP 8.2本体も2026年12月末でセキュリティサポートが完全終了します。そのため、フレームワークだけでなくサーバー環境(PHP実行環境)も含めた計画的なバージョンアップが不可欠です。

自環境のバージョンをターミナルで確認する手順

手元のプロジェクトがどのLaravelおよびPHPバージョンで動作しているかは、ターミナルで以下のコマンドを実行すれば一発で把握できます。

# Laravel本体とPHPの環境情報を一括確認
php artisan about

【実行結果の例】

  Environment ...................................................................
  Application Name ..................................................... Laravel
  Laravel Version ...................................................... 12.18.0
  PHP Version ........................................................... 8.3.12
  Composer Version ...................................................... 2.8.1
  Environment ............................................................ local
  Debug Mode ............................................................. ENABLED

よりシンプルなコマンドや、本番環境・FTP環境・PHPプログラムコード内からの判定方法などは、Laravelのバージョン確認方法まとめで詳しく解説しています。

【判断マトリクス】プロジェクトのアップグレード緊急度チェック

「現在のバージョンが分かったけれど、いつアップグレード作業を行うべきか?」という判断基準をマトリクスで整理しました。

現在のバージョン 緊急度 推奨アクション 目標スケジュール
Laravel 10以下 【最優先】危険 すでに重大な脆弱性リスクあり。Laravel 12または13への多段階移行を即座に開始 今すぐ着手(1〜2ヶ月以内)
Laravel 11 【高】EOL済み 2026年3月にEOLを迎えたため、Laravel 12または13への移行計画を実行に移す 四半期以内(3ヶ月以内)
Laravel 12 【中】計画フェーズ 2027年2月のEOLに備え、PHP 8.3/8.4環境への移行とLaravel 13対応の検証を進める 半年以内(EOL半年前目安)
Laravel 13 【低】安定運用 現行最新版のため、パッチリリースの定期適用(composer update)を継続 次回Laravel 14リリース時

EOLを放置し続ける3大リスク

  1. 未修正のセキュリティ脆弱性(CVE)による情報漏洩
    EOL後はLaravelのコアコードに新たな脆弱性が発覚しても修正パッチが配布されません。攻撃者にシステムを侵害されるリスクが日々増大します。
  2. 周辺パッケージ・Composer依存関係の更新停止
    外部ライブラリ(決済SDK、AWS SDK、認証パッケージ等)が新しいLaravelバージョンしかサポートしなくなり、不具合修正や法改正対応ができなくなります。
  3. 将来のバージョンアップ難易度とコストの指数関数的増加
    1バージョンずつのアップデートであれば半日〜数日で完了する作業も、3〜4世代放置するとコードの書き換え量が膨大になり、数百万円規模のフルリプレイスが必要になるケースが多発します。

EOLを迎えたLaravelを安全にアップグレードする5つの実践手順

ここからは、実際にEOLバージョンのLaravelを安全に最新版へ引き上げる標準的な手順を解説します。

Step 1: 現在の依存関係とセキュリティ監査を実行

まず、現在インストールされているパッケージの脆弱性と更新状況をチェックします。

# 既知の脆弱性を自動スキャン
composer audit

# アップデート可能なLaravel関連パッケージを一覧表示
composer outdated "laravel/*"

Composerの使い方やトラブル対処については、Laravelでcomposer installを成功させるための完全ガイドも参考にしてください。

Step 2: 自動テストを実行して現状の動作を担保

アップグレード作業で一番恐ろしいのは「どこが壊れたか分からない」状態です。変更前に既存のテストを実行し、すべてグリーン(成功)であることを確認します。

# テストスイートの実行
php artisan test

もしテストが1つもない場合は、主要なAPIエンドポイントやログイン処理だけでもフィーチャーテストを作成しておくと、アップグレード後の安心感が劇的に変わります。

Step 3: 公式アップグレードガイドに沿って1バージョンずつ更新

Laravelのバージョンアップは、「1メジャーバージョンずつ順番に上げる」のが大原則です(例:Laravel 10 → 11 → 12 → 13)。

composer.json のフレームワークバージョン指定を更新し、依存関係を解決します。

{
    "require": {
        "php": "^8.3",
        "laravel/framework": "^13.0"
    }
}
# 依存関係を含めてアップデートを実行
composer update "laravel/*" --with-all-dependencies

具体的なコード変更箇所や注意点は、Laravelバージョンアップデートの手順と注意点で詳しくステップ解説しています。

Step 4: アップグレード支援ツール(Laravel Shift / Rector)を活用する

手作業でのファイル差分適用を効率化するために、以下のツールの活用が非常に効果的です。

  • Laravel Shift(有償サービス・業界標準)
    GitHub/GitLabのリポジトリを連携するだけで、バージョンアップに必要なコード修正、設定ファイルの刷新、非推奨コードの置換を自動で行い、プルリクエストを作成してくれる自動移行サービスです。工数を80%以上削減できます。
  • Rector(オープンソース・無料)
    PHPコードのAST(抽象構文木)を解析し、新しいPHPバージョンやLaravelの記法に合わせて自動リファクタリングしてくれるCLIツールです。

【Rectorの設定例(rector.php)】

<?php

declare(strict_types=1);

use RectorConfigRectorConfig;
use RectorLaravelSetLaravelSetList;

return RectorConfig::configure()
    ->withPaths([
        __DIR__ . '/app',
        __DIR__ . '/bootstrap',
        __DIR__ . '/config',
        __DIR__ . '/routes',
        __DIR__ . '/tests',
    ])
    ->withSets([
        LaravelSetList::LARAVEL_120, // 移行先バージョンを指定
    ]);
# Rectorによるコード自動修正ドライラン
vendor/bin/rector process --dry-run

# 実際にコードへ反映
vendor/bin/rector process

Step 5: キャッシュクリアとステージング検証

アップデート完了後は、必ず各種キャッシュをクリアして挙動を確認します。

# 各種キャッシュを一括クリア
php artisan optimize:clear

設定やルーティングのキャッシュクリアの詳細については、optimize:clear — キャッシュをクリアするコマンドconfig:clear — 設定キャッシュをクリアするコマンドもご覧ください。

アップグレード時によく起きるトラブルと対処法

1. Composerの依存関係エラー(Your requirements could not be resolved…)

【原因】 プロジェクト内で利用しているサードパーティ製パッケージが、新しいLaravelバージョンやPHPバージョンに対応していないことが原因です。

【対処法】

  • composer outdated で対象パッケージの最新版リリースを確認し、composer.json のバージョン制約を上げる。
  • すでに開発が停止している古いパッケージは、公式推奨の代替パッケージへ乗り換える。
  • 一時的な検証であれば composer update --with-all-dependencies を試す。

2. Laravel 11以降のディレクトリ構造簡素化に伴う設定ファイルの見失い

【原因】 Laravel 11以降、デフォルトの骨格(Skeleton)が大幅に軽量化され、app/Http/Kernel.php や多数の config/*.php が標準では存在せず、bootstrap/app.php に集約されました。

【対処法】 アップグレード時に古い構成のまま運用を続けることも可能ですが、新しい構成に合わせたい場合は php artisan config:publish コマンドで必要な設定ファイルを個別に生成するか、bootstrap/app.php の Fluent 設定へ移行します。

よくある質問(FAQ)

Q1. Laravelに今後LTS(長期サポート版)が出る可能性はありますか?

公式の開発方針として、現在の「年1回メジャーリリース・2年間セキュリティサポート」のサイクルが定着しており、従来のLTSモデルに戻る予定はありません。1〜2年に一度、定期的にアップデートする運用フローを体制化することが推奨されます。

Q2. Laravel 10からLaravel 13へ一気に飛ばしてアップグレードできますか?

手作業で行う場合、メジャーバージョンをスキップすると破壊的変更(Breaking Changes)の切り分けが非常に困難になるため推奨されません。必ず「10 → 11 → 12 → 13」と1段階ずつテストをパスさせながら進めるか、Laravel Shift等の自動化ツールを利用してください。

Q3. EOLを迎えた古いバージョンでもセキュリティパッチだけ個別適用できますか?

Laravel公式からはEOLバージョンのパッチはリリースされません。有志によるフォークやサードパーティの有償延長サポート(HeroDevs等のEOLサポートサービス)を利用する手段もありますが、根本解決にはならないため、正規バージョンへのアップグレードが最も健全で低コストです。

Q4. アップグレードに必要な工数の目安はどのくらいですか?

プロジェクトの規模やテストコードの充実度、パッケージの数によって異なりますが、目安は以下の通りです。

  • 1世代の更新(例: 12 → 13):数時間 〜 2日程度
  • 2世代の更新(例: 11 → 13):3日 〜 1週間程度
  • 3世代以上のレガシー更新(例: 8/9 → 13):2週間 〜 1ヶ月以上(PHPバージョン変更・パッケージ置換含む)

まとめ|定期的なアップグレード体制を整えよう

Laravelのサポート期限(EOL)とアップグレードの要点をまとめます。

  • サポート期間:リリースから18ヶ月のバグ修正+2年間のセキュリティ修正
  • 現在のステータス:Laravel 13がフルサポート、Laravel 12はセキュリティのみ、Laravel 11以前はすべてEOL
  • PHPとの連動:Laravelだけでなく、PHP本体のEOL(PHP 8.2は2026年末終了)も併せて確認する
  • アップグレード戦略:1バージョンずつ段階的に実施し、Laravel ShiftやRectorなどの支援ツールをフル活用する

EOLを迎えたLaravelを使い続けることは、セキュリティ・保守性の両面で大きなリスクを伴います。最新バージョンの詳細や主要な新機能、安全なアップグレード手順については、Laravel最新バージョンとPHP要件まとめ|主要な新機能と安全なアップデート手順でも詳しく解説しています。本記事の早見表と判断マトリクスを活用し、余裕を持ったアップグレード計画を進めていきましょう。

💡 本番環境としておすすめのVPS・サーバーの選び方はこちら

Laravelアプリケーションを安全かつ快適に本番運用するには、共用レンタルサーバーの制約(.env露出リスクやキューワーカー常駐不可など)を回避できるVPSの選定が必須です。ConoHa VPS、Xserver VPS、さくらのVPS、AWS Lightsailの徹底比較や失敗しないスペック基準については、Laravelおすすめサーバー・VPS徹底比較|レンタルサーバーとの違いと選び方ガイド をご覧ください。

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする

コメント