人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

Laravelで一時的にメンテナンスモードに入る

● Laravel 8以降の メンテナンスモードの使い方

基本の有効化/解除

  • 有効化: php artisan down で全リクエストにメンテ画面を返します。
  • 解除: php artisan up で通常稼働に戻します。

表示ビューの指定

  • 事前レンダリング: php artisan down --render="errors::503" でテンプレートエンジン読込前に指定ビューを返せます。
  • カスタムビュー: resources/views/errors/503.blade.php を作成すればデフォルトのメンテ画面を置き換え可能です。

自分だけバイパス(シークレット)

  • 固定シークレット: php artisan down --secret="your-secret" を実行し、その後 /your-secret に一度アクセスすると以降はメンテをバイパスできます。
  • 自動生成: php artisan down --with-secret でシークレットURLを自動生成し、表示されたURLにアクセスしてバイパスします。

自動リロード/クローラ通知

  • Refreshヘッダ: php artisan down --refresh=15 でメンテ画面に Refresh: 15 を付与し、ブラウザに自動再読み込みを促します。
  • Retry-After: php artisan down --retry=60 で Retry-After を設定し、クローラ等に再試行時刻を伝えます(一般的なブラウザはほぼ無視)。

● Laravel 8より前の場合

● Laravelで一時的にメンテナンスモードに入る

127.0.0.1
123.123.123.0/24

からのアクセスのみ許す場合

php artisan down --allow=127.0.0.1 --allow=123.123.123.0/24  --message="現在メンテナンス中です"

● Laravelのメンテナンスモードから戻る

php artisan up

● Laravelのメンテナンスモードをカスタマイズする

vi resources/views/errors/503.blade.php

resources/views/errors/503.blade.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>メンテナンス中</title>
    <style>
        body {
            background: #f4f4f4;
            color: #333;
            font-family: sans-serif;
            text-align: center;
            padding: 100px;
        }
        h1 {
            font-size: 50px;
        }
    </style>
</head>
<body>
    <h1>現在メンテナンス中です</h1>
    <p>しばらくしてから再度アクセスしてください。</p>
</body>
</html>

No.1494
11/12 16:50

edit