📃

Laravelでメンテナンスモードを試してみた

2022/07/21に公開

はじめに

Laravelではメンテナンスモードがあり、Artisanコマンドで簡単に切り替えることができます
ここでは、メンテナンスモードの切替についてまとめました

環境

Laravel 9で確認していますが、8でも同様にメンテナンスモードの切り替えができます

$  php -v
PHP 8.1.8 (cli) (built: Jul  8 2022 10:58:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies
$ composer -V
Composer version 2.3.10 2022-07-13 15:48:23
$ php artisan -V
Laravel Framework 9.21.3

メンテナンスモードに切り替える

以下のコマンドでメンテナンスモードに切り替わります

$ php artisan down

   INFO  Application is now in maintenance mode.  

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

以下のコマンドでメンテナンスモードを解除できます

$ php artisan up

   INFO  Application is now live.  

メンテナンスモード時に設定できるオプションと挙動

リフレッシュさせる

RefreshのHTTPヘッダーの指定ができます
以下のコマンドの場合、5秒間で表示しているブラウザがリフレッシュされます。

$ php artisan down --refresh=5

   INFO  Application is now in maintenance mode.  

バイパスさせる

メンテナンスモード中に通常のページを確認したい場合に利用できます
http://hogehoge.co.jp/testtest にアクセスすれば、Cookieにバイパスの設定が追加され、アクセス後はメンテナンス画面は表示されなくなります。
もとに戻したい場合は ブラウザに保存されている Cookieで name が laravel_maintenance を削除すればメンテナンスモードになります

$ php artisan down --secret="testtest"

   INFO  Application is now in maintenance mode.  

メンテナンス用のビューをレンダリングする

errorsを指定していますが、任意のビューの指定もできます

$ php artisan down --render="errors::503"

   INFO  Application is now in maintenance mode. 

メンテナンスページにリダイレクトする

--redirect でURLを指定すると、リダイレクトさせることができます

$ php artisan down --redirect=/maintenance

   INFO  Application is now in maintenance mode.  

参考

メンテナンスモード

Discussion