Laravelで開発を進めたり、既存プロジェクトの保守・運用を行ったりする際、「現在動作しているLaravelのバージョンが何か」を確認しなければならない場面は頻繁にあります。
例えば、新しいパッケージを導入する際に対応バージョンを調べたり、PHPのバージョンをアップグレードする際、あるいはサポート期限(EOL)を迎えていないかセキュリティ監査を行う際などです。
結論から言うと、ターミナルで以下のコマンドを実行するのが最も手軽で確実です。
php artisan --version
しかし、コマンドラインが使えない本番サーバー(FTP接続のみの環境)や、プログラムコード内で動的にバージョンを判定したい場合、Docker/Laravel Sail環境で開発している場合など、状況によって適切な確認方法は異なります。
この記事では、Laravelのバージョンを確認する代表的な4つの方法(Artisanコマンド、Composer・ファイル、PHPコード、開発ツール)に加え、Laravel Sail環境での手順、サポート期間ポリシーとPHP対応バージョン一覧、よくあるエラーの対処法まで徹底解説します。
Laravelのバージョン確認が必要になる3つの理由
Laravelのバージョンを正確に把握しておくことは、アプリケーションの安全性や開発効率を保つために非常に重要です。主な理由は以下の3点です。
1. セキュリティサポート期間(EOL)の把握
Laravelの各メジャーバージョンには、「バグ修正サポート期間(18ヶ月)」と「セキュリティ修正サポート期間(2年間)」が設定されています。サポート期間が終了したバージョン(EOL: End of Life)を放置すると、重大な脆弱性が発見されても公式修正パッチが提供されず、不正アクセスや情報漏洩のリスクが高まります。安全な運用を続けるためにも、現行バージョンのサポート状況を把握しておく必要があります。
2. 利用可能な機能と非推奨(Deprecated)の確認
Laravelはメジャーアップデートごとに多くの新機能が追加され、古い記法やヘルパーが非推奨・削除されます。Web上の技術記事や公式ドキュメントを参照する際、手元のLaravelバージョンとドキュメントの対象バージョンが一致していないと、「紹介されているメソッドが存在しない」「設定ファイルが見当たらない」といった混乱の原因になります。
3. PHPバージョンや外部パッケージとの互換性確保
Laravelアプリケーションが依存するサードパーティ製パッケージ(Composerパッケージ)には、「Laravel 10.x以上」「Laravel 11.x対応」といったバージョン制約が設定されています。また、動作可能なPHPのバージョン(PHP 8.2、8.3、8.4など)もLaravelのバージョンごとに厳密に決まっているため、事前に正確なバージョンを確認しておくことが不可欠です。
方法1:Artisanコマンドで確認する(最も推奨・簡単)
ローカル開発環境や、サーバーにSSH接続できる環境では、Artisanコマンドを利用するのが最速です。
基本コマンド:php artisan –version
プロジェクトのルートディレクトリ(artisanファイルが存在するディレクトリ)に移動し、以下のコマンドを実行します。
php artisan --version
短縮オプション -V(大文字)でも同様に実行できます。
php artisan -V
【実行結果の例】
Laravel Framework 11.15.0
このように、インストールされているLaravelフレームワークのメジャー・マイナー・パッチバージョンが瞬時に出力されます。
【おすすめ】php artisan about コマンドで環境情報を一括確認
Laravel 9以降では、php artisan about コマンドが利用可能です。Laravel本体のバージョンだけでなく、実行中のPHPバージョン、Composerバージョン、環境設定(APP_ENV)、キャッシュやデータベースのドライバー設定などを一覧表でまとめて確認できます。
php artisan about
【実行結果の例】
Environment ...................................................................
Application Name ..................................................... Laravel
Laravel Version ...................................................... 11.15.0
PHP Version ........................................................... 8.3.10
Composer Version ...................................................... 2.7.7
Environment ............................................................ local
Debug Mode ............................................................. ENABLED
URL ............................................................ localhost:8000
Maintenance Mode .......................................................... OFF
Cache .........................................................................
Config ................................................................. NOT CACHED
Routes ................................................................. NOT CACHED
Events ................................................................. NOT CACHED
Drivers .......................................................................
Database ............................................................... mysql
Log .................................................................... stack
Mail ................................................................... smtp
Queue .................................................................. database
Session ................................................................ file
特定の情報のみを確認したい場合は、--only オプションや --json オプションを付与することもできます。
# 環境情報セクションのみ表示
php artisan about --only=environment
# JSON形式で出力(スクリプトやCI/CDでの自動判定に便利)
php artisan about --json
現在の環境変数設定を確認したい場合は、env — 環境変数を表示するコマンドも併せて参考にしてください。
Laravel Sail・Docker環境での確認方法
Dockerベースの開発環境である Laravel Sail を使用している場合、ホストマシンで直接 php artisan を実行すると、ホスト側のPHP環境が使われてしまうか、コマンドが見つからないエラーになります。Sail環境ではコンテナ経由で実行します。
# Sailコマンドを使用する場合
./vendor/bin/sail artisan --version
# または about コマンド
./vendor/bin/sail artisan about
素のDocker Compose環境で構築している場合は、次のようにコンテナ内で実行します。
docker compose exec app php artisan --version
つまずきやすいエラー:「Could not open input file: artisan」
ターミナルで php artisan --version を実行した際に、次のようなエラーが発生することがあります。
Could not open input file: artisan
【原因】
現在ターミナルで開いているディレクトリ(カレントディレクトリ)が、Laravelプロジェクトのルートディレクトリではないことが原因です。
【対処法】
ls(Windowsでは dir)を実行し、artisan ファイルが存在するプロジェクト直下のディレクトリへ cd で移動してから再実行してください。
# プロジェクトディレクトリへ移動
cd /path/to/laravel-project
# artisanファイルが存在するか確認
ls -la artisan
# バージョン確認を再実行
php artisan --version
方法2:Composer(コマンド・ファイル)で確認する
LaravelはComposerでパッケージ管理されています。コマンドラインからComposerコマンドを実行する方法と、ファイルを直接開いて確認する方法があります。
コマンドで確認する場合:composer show laravel/framework
プロジェクトディレクトリで以下のComposerコマンドを実行します。
composer show laravel/framework
【実行結果の例】
name : laravel/framework
descrip. : The Laravel Framework.
keywords : framework, laravel
versions : * v11.15.0
type : library
...
versions の項目に、実際にインストールされている正確なバージョン(例:v11.15.0)が表示されます。ライセンス情報や依存関係ツリーも併せて確認できるのがメリットです。
ファイルで確認する場合:composer.lock と composer.json の違い
SSH接続権限がないサーバーや、FTP経由でファイルを閲覧できる環境では、設定ファイルを直接テキストエディタで開いてバージョンを確認できます。
| ファイル名 | 確認できる内容 | 注意点 |
|---|---|---|
| composer.lock | 実際にインストールされている正確なバージョン | 正確なバージョンを確認したい時はこちらを見る |
| composer.json | 許容されているバージョン制約(指定ルール) | 実バージョンそのものではない(^11.0 などと表記) |
composer.lock で確認する手順(推奨)
プロジェクト直下の composer.lock を開き、"name": "laravel/framework" を検索します。その直後にある "version" 行を確認します。
{
"name": "laravel/framework",
"version": "v11.15.0",
"source": { ... }
}
この "version": "v11.15.0" が、プロジェクトに適用されている実際のバージョンです。
composer.json を見る際の注意点
プロジェクト直下の composer.json の "require" セクションにも laravel/framework が記載されています。
"require": {
"php": "^8.2",
"laravel/framework": "^11.0",
"laravel/tinker": "^2.9"
}
ここで書かれている ^11.0 は「メジャーバージョン11系の最新互換バージョンを許可する」という意味の制約(バージョン指定記号)です。実際にインストールされているのが 11.0.0 なのか 11.15.0 なのかは判別できないため注意しましょう。Composerの詳しい仕様については、初心者向け:Laravelでcomposer installを成功させるための完全ガイドも参考にしてください。
方法3:PHPコード(プログラム内)で確認する
管理画面にバージョンを表示させたい場合や、バージョンごとに処理を分岐させたい場合は、PHPコード内からLaravelのバージョンを取得します。
app()->version() ヘルパー関数を使う
Laravelのサービスコンテナヘルパー app() から version() メソッドを呼び出します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SystemInfoController extends Controller
{
public function index()
{
// Laravelのバージョン文字列を取得
$laravelVersion = app()->version();
return view('admin.system', [
'version' => $laravelVersion,
]);
}
}
返り値として "11.15.0" のような文字列が取得できます。
Application::VERSION 定数を参照する
Illuminate\Foundation\Application クラスが保持する VERSION クラス定数を直接参照することもできます。
<?php
use Illuminate\Foundation\Application;
echo Application::VERSION; // 例: 11.15.0
app()->version() の内部実装も、この Application::VERSION 定数を返却する仕組みになっています。
Bladeテンプレートで画面に出力する
管理画面のフッターやダッシュボードにバージョンを表示したい場合は、Bladeテンプレート内に直接記述できます。
<footer class="admin-footer">
<p>Powered by Laravel v{{ app()->version() }} (PHP v{{ PHP_VERSION }})</p>
</footer>
php artisan tinker でサクッと確認する
対話型シェル tinker を使えば、コントローラー等を作成しなくてもターミナル上でコードの実行結果を確認できます。
php artisan tinker
> app()->version();
= "11.15.0"
> Illuminate\Foundation\Application::VERSION;
= "11.15.0"
> exit
方法4:ブラウザやデバッグツールで確認する(開発環境限定)
ローカル開発環境(APP_DEBUG=true)であれば、ブラウザ上の画面から確認することも可能です。
1. Laravel Debugbarのステータスバー
開発時によく導入される barryvdh/laravel-debugbar パッケージを有効にしている場合、画面下部に常駐するデバッグバーの右端にLaravelおよびPHPのバージョンアイコンが表示されます。
2. エラー画面(Ignition)のフッター
開発中に例外エラーや404画面が発生した際、Laravel標準のエラー画面(Ignition)の下部フッター部分に、現在のLaravelバージョンとPHPバージョンが表示されます。
【重要】本番環境ではバージョン情報を非表示にすること
本番環境(商用サーバー)で APP_DEBUG=true のまま運用すると、エラー画面にバージョン情報や環境変数、データベースパスワードなどが露出してしまいます。攻撃者にフレームワークの既知の脆弱性を突く手がかりを与えてしまうため、本番環境の .env では必ず APP_DEBUG=false に設定してください。
Laravelのサポート期間(EOL)とPHP対応バージョン一覧表
バージョンを確認したら、現在利用しているLaravelが公式サポート期間内であるかを確認しましょう。
Laravelのサポートポリシー
- メジャーリリース頻度:年1回(毎年第1四半期〜第2四半期頃)
- バグ修正(Bug Fixes):リリースから18ヶ月間
- セキュリティ修正(Security Fixes):リリースから2年間(24ヶ月間)
バージョン別サポート期限と対応PHPバージョン
| Laravelバージョン | 対応PHPバージョン | バグ修正期限 | セキュリティ修正期限(EOL) | ステータス |
|---|---|---|---|---|
| Laravel 12.x | PHP 8.2 〜 8.5 | 2026年8月 | 2027年2月 | 最新・サポート中 |
| Laravel 11.x | PHP 8.2 〜 8.4 | 2025年9月 | 2026年3月 | サポート中 |
| Laravel 10.x | PHP 8.1 〜 8.3 | 2024年8月 | 2025年2月 | サポート終了(EOL) |
| Laravel 9.x | PHP 8.0 〜 8.2 | 2023年8月 | 2024年2月 | サポート終了(EOL) |
| Laravel 8.x | PHP 7.3 〜 8.1 | 2022年7月 | 2023年1月 | サポート終了(EOL) |
もし確認したバージョンがすでにサポート終了(EOL)を迎えている場合は、安全な運用のために上位バージョン(Laravel 11や12)へのアップグレード計画を早めに立てることを強くおすすめします。
よくある質問(FAQ)
Q1. php artisan –version と composer.json に書かれたバージョンが一致しないのはなぜですか?
composer.json に記述されている "laravel/framework": "^11.0" は「許可するバージョンの範囲(制約)」を指定するものであり、実際にインストールされているバージョンではありません。実際にインストールされた正確なバージョンは php artisan --version または composer.lock に記録されています。
Q2. PHPのバージョンも同時に確認したいときはどうすればいいですか?
ターミナルで php -v を実行するか、Laravel 9以降であれば php artisan about を実行すると、PHPとLaravelのバージョンを一度に確認できます。
Q3. ローカル開発サーバーを起動して確認したい場合は?
バージョン確認後にローカル環境で動作を確かめたい場合は、php artisan serve コマンドで開発サーバーを起動します。詳細は serve — 開発サーバーを起動するコマンド をご覧ください。
まとめ|状況に応じた最適な確認方法の選び方
Laravelのバージョン確認方法を用途・環境別にまとめると以下のようになります。
| 確認したい状況・環境 | 最適な確認方法 | コマンド / ファイル / コード |
|---|---|---|
| ターミナルが使える環境(最速) | Artisanコマンド | php artisan --version または php artisan -V |
| PHPや環境情報も一括で見たい | Aboutコマンド | php artisan about |
| Sail / Docker環境 | コンテナ経由でArtisan実行 | ./vendor/bin/sail artisan --version |
| FTP・ファイル閲覧のみ(本番等) | 設定ファイルを開く | composer.lock の "name": "laravel/framework" |
| Composerコマンドが使える | Composerパッケージ情報 | composer show laravel/framework |
| PHPプログラム内で取得・判定 | ヘルパー / 定数 | app()->version() または Application::VERSION |
| Bladeテンプレートで画面表示 | Blade記法 | {{ app()->version() }} |
基本的には php artisan --version または php artisan about を使えば間違いありません。コマンドが実行できない環境では composer.lock を確認するなど、状況に応じて柔軟に使い分けてみてください。

コメント