Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
はじめに
Laravelアプリケーションを本番環境にデプロイするときは、できるだけ効率よく動作するよう準備が必要です。 このガイドでは、本番デプロイを確実に行うための重要なポイントを解説します。デプロイフロー
サーバー要件
Laravelフレームワークには以下のシステム要件があります。 PHP 8.3 以上と、下記のPHP拡張モジュールが必要です。| 拡張モジュール | 説明 |
|---|---|
| Ctype | 文字型チェック |
| cURL | HTTP通信 |
| DOM | XML/HTMLのDOM操作 |
| Fileinfo | MIMEタイプ検出 |
| Filter | データのフィルタリング |
| Hash | ハッシュ関数 |
| Mbstring | マルチバイト文字列処理 |
| OpenSSL | 暗号化 |
| PCRE | 正規表現 |
| PDO | データベース接続 |
| Session | セッション管理 |
| Tokenizer | PHPトークン解析 |
| XML | XML処理 |
サーバー設定
Nginx
Nginxを使用している場合は、以下の設定ファイルをベースにしてください。 すべてのリクエストをpublic/index.php に転送することが重要です。
index.php をプロジェクトルートに移動しないでください。機密設定ファイルが外部に公開されてしまいます。
FrankenPHP
FrankenPHP はGoで書かれたモダンなPHPアプリケーションサーバーです。 以下のコマンドだけでLaravelアプリケーションを起動できます。ディレクトリ権限
Laravelはbootstrap/cache と storage ディレクトリへの書き込みが必要です。
Webサーバーのプロセスオーナーがこれらのディレクトリに書き込めるよう権限を設定してください。
最適化
本番環境へのデプロイ時には、設定・イベント・ルート・ビューをキャッシュしてパフォーマンスを向上させます。optimize コマンドで一括キャッシュできます。
optimize:clear を使います。
個別の最適化コマンド
optimize は以下のコマンドをまとめて実行します。必要に応じて個別に実行することも可能です。
| コマンド | 説明 |
|---|---|
php artisan config:cache | 設定ファイルを1ファイルにまとめてキャッシュする |
php artisan event:cache | イベント→リスナーのマッピングをキャッシュする |
php artisan route:cache | ルート定義をキャッシュしてルート登録を高速化する |
php artisan view:cache | Bladeビューをプリコンパイルしてリクエストを高速化する |
config:cache を実行した後は、設定ファイル内でのみ env() 関数を呼び出してください。
キャッシュ後は .env ファイルが読み込まれなくなるため、設定ファイル以外で env() を呼ぶと null が返ります。サービスのリロード
新しいバージョンをデプロイした後、キューワーカー・Laravel Reverb・Laravel Octane などの長時間動作するサービスは、新しいコードを使うために再起動が必要です。Laravel Cloudを使用している場合、すべてのサービスのグレースフルリロードは自動的に処理されるため、
reload コマンドは不要です。デバッグモード
config/app.php の debug オプションは、エラー情報をユーザーにどれだけ表示するかを制御します。
デフォルトでは .env ファイルの APP_DEBUG 環境変数の値が使われます。
ヘルスチェックルート
Laravelにはアプリケーションの状態を監視するためのヘルスチェックルートが組み込まれています。 アップタイムモニター・ロードバランサー・Kubernetesなどのオーケストレーションシステムと連携できます。 デフォルトでは/up エンドポイントが用意されており、アプリケーションが正常に起動していれば 200、起動時に例外が発生していれば 500 を返します。
bootstrap/app.php でURIをカスタマイズできます。
Illuminate\Foundation\Events\DiagnosingHealth イベントが発行されるため、
データベースやキャッシュの追加チェックをリスナーで実装できます。
Laravel CloudまたはForgeでデプロイする
Laravel Cloud
完全マネージドの自動スケールデプロイプラットフォームをお探しなら、Laravel Cloud がおすすめです。 マネージドコンピュート・データベース・キャッシュ・オブジェクトストレージを提供する、Laravelに最適化されたPaaSです。 Laravelの開発チームが直接チューニングしており、フレームワークとシームレスに連携します。Laravel Forge
自分でサーバーを管理したいけれど、NginxやMySQLなどの各種サービスのセットアップには手間をかけたくない場合は、Laravel Forge が便利です。 DigitalOcean・Linode・AWSなど主要なクラウドプロバイダーにサーバーを作成し、Nginx・MySQL・Redis・Memcached・Beanstalkなどのツールを自動的にインストール・管理します。次のステップ
デプロイメント — 公式ドキュメント
公式ドキュメントでは最新のデプロイ設定の詳細を確認できます。