Laravel メンテ中にする

作成日:2019-03-26, 更新日:2019-03-26

基本

・「app\Http\Kernel.php」内にある「\App\Http\Middleware\CheckForMaintenanceMode::class」を確認
・コマンドラインで「php artisan down」でメンテ中
・コマンドラインで「php artisan up」でメンテ解除

これが出来る人たちって・・・環境を好き勝手できる人なんだろうなぁ・・・。

「php artisan 〇〇〇」がNGな人

・「storage\framework」に空のファイルを追加(※ファイル名は拡張子無しの「down」)
・メンテが終われば「storage\framework\down」を削除

特定のIPだけ許可 / 拒否

・「\App\Http\Middleware\CheckForMaintenanceMode::class」を元にゴニョゴニョすればいいらしい。
・・・未調査

ルーティングでメンテ中にする

▼routes/app.php

<?php
if ( 好きな条件 ) {
  abort(503);
}

以下、通常のルーティングの設定

503を自作したい

・「resources\views\errors」に「503.blade.php」で作成。

特定のページだけ「メンテ中」or その逆

例えば
・「http://localhost/laravel-test/」というサイトで
・「http://localhost/laravel-test/zebra/hello」のページだけメンテ中にしたい

▼routes/app.php

<?php
if ( 条件:対象時間内 ) {
  if ( \Request::path() == 'zebra/hello' ) {
    abort(503);
  }
}

以下、通常のルーティングの設定

※「zebra/hello」以外なら「==」を「!=」にすればいい。
※「strpos()」とかで条件を指定するのも良さそう。