Laravel 8 のメンテナンスモード
メンテナンスページの表示で、AWSでは以前の記事のようにALBを使って比較的簡単に対応できますが、GCPではそれができないのでLaravel 8のメンテナンスのモードを使用して対応します。
1. メンテナンス中ページを用意する
resources/views/errors/配下にメンテナンス中ページを作成しておきます。
cat ./resources/views/errors/maintenance.blade.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>エラー</title> </head> <body> <div>503</div> <div> <h3>Service Unavailable</h3> <p>只今メンテナンス中です。</p> <p>申し訳ありませんが、時間をおいて再度アクセスしてください。</p> </div> </body> </html>
2. メンテナンスモードに切り替える
artisan downコマンドを実行します。
・オプション:––render
・パラメータ:errors::maintenance(ファイル名から.blade.phpを省く)
php artisan down --render="errors::maintenance" Application is now in maintenance mode.
実行すると、作成したメンテナンス中ページが表示されます。
冗長構成の場合は、すべてのウェブサーバーに対してコマンドを実行する必要があります。
3. メンテナンス中表示を解除する
artisan upコマンドを実行します。
php artisan up Application is now live.
メンテナンス中ページが解除され、通常の画面が表示されます。
4. パスワードを設定し、一時解除する
メンテナンス中に、開発側でテストや確認を行いたいときは、パスワードを設定しておくと便利です。
・オプション:–secret
・パラメータ:(パスワードを指定)
php artisan down --render="errors::maintenance" --secret="barbarbar" Application is now in maintenance mode.
設定したパスワードをURLの末尾に指定してアクセスします。
https://example.com/barbarbar
通常の画面が表示されます。