Laravelのメンテナンスモードを使用する方法

シェアする

アプリケーションのデプロイは、あらゆるWebデプロイメントにおいて重要な部分です。

サーバーやデータベースに大きな変更を加える必要のないシンプルなデプロイメントでは、可能な限りスムーズなデプロイメントを行いたいものです。

Laravelは、メンテナンスに頭を悩ませることなく、処理することができます。アプリケーションがメンテナンスモードにあるとき、アプリケーションへのすべてのリクエストに対して、カスタムビューが表示されます。
これにより、アプリケーションの更新中やメンテナンス時に、簡単にアプリケーションを「無効化」することができます。メンテナンスモードを有効にするために、メンテナンスモードに関連する便利なlaravelのコマンドを以下に紹介します。

# メンテナンスモードを有効にする
php artisan down

# メンテナンスモードを無効にする
php artisan up

# クライアントにリフレッシュさせたい場合は
# 指定された特定の秒数の後にページを表示
php artisan down --retry=60

laravelでアプリケーションのメンテナンス中にアプリケーションをテストする方法?

laravelのメンテナンスモードをオンにすると、書き込み操作ができなくなることはご存知の通りですが、新しい変更を加えたウェブアプリをテストする際に、データベースへの書き込みが必要な場合は、メンテナンスモードをバイパスすることができます。
メンテナンスモードでも、secretオプションでメンテナンスモードバイパストークンを指定することができます。

php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"

引数にsecretを指定してdownコマンドを実行すると、以下のURLからブラウザのメンテナンスモードを回避するためのcookieを設定することができます。

https://<your-site-name>/1630542a-246b-4b66-afa1-dd72a4c43515​

この隠しルートにアクセスすると、アプリケーションの/ルートにリダイレクトされます。メンテナンスモードでないかのように、通常通りアプリケーションを閲覧することができます。

laravelでメンテナンスモードにカスタムビューを使用する方法は?

メンテナンスモード実行時に、特定のビューをレンダリングするようにlaravelで指定することができます。以下のコマンドを実行してみてください。

# view path: resources/views/maintenance.blade.php
php artisan down --render="maintenance"

laravelのメンテナンスモードですべてのリクエストをトップページにリダイレクトする方法?

メンテナンスモード中は、トップページ以外のページにアクセスさせないようにしたい場合があります。そのような場合、次のコマンドを使用して、すべてのWebリクエストを指定されたURLにリダイレクトすることができます。

php artisan down --redirect=/

メンテナンスモードは、ジョブキューは機能しません。いい解決方法をご存知の方はコメントなどにコメントを🙏

シェアする

フォローする