ハマログ

株式会社イーツー・インフォの社員ブログ

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

通常の画面が表示されます。

  yama   2022年7月15日


関連記事

Laravelのカスタムバリデーションで日付の妥当性チェック

はじめに Laravelの日付入力で入力画面が年/月/日に分割されているときに、…

古いPHPからMySQLに接続できない場合がある

dockerでPHP/MySQLの開発環境をつくっていたら ハマった。 mysq…

Laravel5でCarbon locale=>jaに設定

事の始まりは上長より 「setlocale(LC_ALL, ‘ja_…


← 前の投稿

次の投稿 →