【Laravel】メンテナンスモードが便利すぎるので広めたい!10分でマスターできます。

2021年10月19日

こんにちは。今回はLaravelのメンテナンスモードを説明したいと思います。この仕組みを使うと、運用中のシステムをメンテナンスする際に、一時的にユーザーをシステムにアクセスできないように制限することができます。場合によってはかなり便利に使うことができますので、知っておいて損は無い機能だと思います。それでは早速見ていきましょう。

メンテナンスモードとは

Laravelに標準で備わっている運用中のシステムの利用を制限する機能です。メンテナンスモードで運用中、システムはユーザーのリクエストをステータスコード503で返すことで、システムの利用を制限します。

また、メンテナンスモードで運用時は、開発者のみシステムを通常利用することができます。リリース後、運用環境での動作検証をする場合に利用できそうです。

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

では実際にメンテナンスモードに切り替えてみます。Laravelはインストール済の前提で解説します。

まずはビルドインサーバーを立ち上げて、システムにブラウザからアクセスできる状態にしておきます。

php artisan serve

http://localhost:8000にアクセスすると、Laravelの初期画面が表示されます。

ではLaravelをメンテナンスモードにしてみましょう。artisan downコマンドを実行すると、Laravelがメンテナンスモードに切り替わります。

php artisan down

Application is now in maintenance mode.

同じようにhttp://localhost:8000にアクセスし、以下の画面が表示されれば成功です。

メンテナンスモードを解除する場合は、artisan upコマンドを実行します。

php artisan up

Application is now live.

このように、コマンド一つで簡単に切り替えることができます。

メンテナンスページをカスタマイズする

初期状態では503エラーが表示されるのみなので、ユーザーにメンテナンス中であることを知らせることができません。Laravelではメンテナンスモード時に自作のページを表示することができますので作っていきます。

自作のメンテナンスページを表示する

Laravel公式ドキュメントによると以下のフォルダにメンテナンスページを作成するルールがあるようです。

  • resources/views/errors/

このフォルダに503.blade.phpを作成してみます。※errosフォルダ以下は初期状態で存在しないので作成する必要があります。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>メンテナンス中</title>
    </head>
    <body>
        <h1>只今メンテナンス中です。</h1>
    </body>
</html>

ごくごく簡単なメッセージを表示するだけのページを作ってみました。ページが作成できたらartisan downコマンドに–renderオプションをつけて、先程作成した503.blade.phpを指定します。blade.phpは省略しますので、パラメータの値はerrors::503とします。

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

成功すると、作成したページが表示されます。

これでユーザーにメンテナンス中であることを伝えることができますね。

メンテナンス中でも特定のユーザーはアクセスできるようにする

メンテナンス中に開発者はテスト目的でシステムにアクセスしたいケースがあります。特定のユーザーはシステムにアクセスできるようにする方法を説明します。

artisan downに–secretオプションをつけて実行します。パラメータには任意の文字列を指定します。ここで指定した文字列は後に必要になりますので控えておいてください。

php artisan down --secret="dongurikorokoro"

コマンドが正常に実行されると、Laravelはメンテナンスモードになり、通常アクセスの場合は503が返されます。

この状態でシステムを利用するためには先程、–secretオプションで指定した文字列をURLの末尾に付与してアクセスします。http://localhost:8000/dongurikorokoroのURLにブラウザからアクセスすると、システムを通常通り利用できます。

まとめ

いかがでしょうか。今回はLaravelのメンテナンスモードを解説しました。

  • artisan downでメンテナンスモードに切り替え
  • artisan upでメンテナンスモード解除
  • artisan downに–renderオプションで自作ページを表示
  • artisan downに–secretオプションでメンテナンス中もシステムを利用できる

シンプルな機能ですが覚えておくと、いざというときに活用できそうですね。これでLaravelのシステム運用が少しでも便利になれば幸いです。

Laravel

Posted by kobainmac