🍍

Laravel11 downコマンド/upコマンド

2024/12/08に公開

この記事は Laravel11にあるartisanコマンドを全部調べる Advent Calendar 2024 8日目の記事です。

今回はdownコマンド/upコマンドについて調べました。

環境

  • PHP 8.4.1
  • laravel/laravel 11.3.3
  • laravel/framework 11.33.2

down

メンテナンスモードにする。

php artisan down

実行するとメンテナンスモードに切り替わります。
この状態でWebページにアクセスすると503エラーの画面が表示します。

オプション 説明
--redirect[=REDIRECT] リダイレクトするパスを指定
--render[=RENDER] メンテナンスモード中に表示するビューを指定
--retry[=RETRY] HTTPヘッダのRetry-Afterの秒数を指定
--refresh[=REFRESH] HTTPヘッダのRefreshの秒数を指定
--secret[=SECRET] メンテナンスモードをパイパスする秘密のフレーズを指定
--with-secret メンテナンスモードをパイパスする秘密のフレーズを生成
--status[=STATUS] メンテナンスモード中のステータスコードを指定
  • --redirectを使うと指定のURLにリダイレクトさせることができる
php artisan down --redirect=/hoge
  • リダイレクト先が同一サイト内であればメンテナンスモードの対象から除外しておく必要がある
bootstrap/app.php
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->preventRequestsDuringMaintenance(['/hoge']);
    })
  • --renderを使うと任意のビューを指定できる
php artisan down --render=errors::404
  • --retryを使うとHTTPヘッダのRetry-Afterに指定した値を設定できます
    • この設定はクローラーに再クロールするまでの時間を指定します
  • --refreshを使うと指定した秒数後にブラウザがリロードします
  • --secretを使うとメンテナンスモードをバイパスできるようにするための秘密のフレーズを指定できます
advent-calendar-2024 % php artisan down --secret=123abc

   INFO  Application is now in maintenance mode.  

   INFO  You may bypass maintenance mode via [http://localhost/123abc].
  • この秘密のフレーズをつけた状態でアクセスするとメンテナンスモードバイパスクッキーが発行し、/にリダイレクトします
    以降はメンテナンスモードではない状態でアクセスができます

  • --with-secret--secretとは違いLaravelが秘密のフレーズを生成します

advent-calendar-2024 % php artisan down --with-secret

   INFO  Application is now in maintenance mode.  

   INFO  You may bypass maintenance mode via [http://localhost/O8r42p7Ko6tJg0bB].  
  • --statusはメンテナンスモード時のHTTPステータスコードを指定できます(デフォルトは503)

up

メンテナンスモードを解除する。

php artisan up

実行するとメンテナンスモードを解除します。

GitHubで編集を提案

Discussion