ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
メンテナンスモードとは
Laravel のメンテナンスモードは、デプロイ作業や DB マイグレーション中にユーザーアクセスを一時遮断して 503 Service Unavailable を返す機能です。
基本コマンド
# メンテナンス開始
php artisan down
# メンテナンス解除
php artisan up
# 状態確認 (Laravel 11+)
php artisan about | grep -i maintenance
主要オプション
| オプション | 意味 | 例 |
|---|---|---|
--message="..." | 表示メッセージ (デフォルトビュー用) | --message="ただいまメンテナンス中です" |
--retry=N | Retry-After ヘッダ (秒) | --retry=60 |
--refresh=N | HTML meta refresh (秒) | --refresh=15 |
--allow=IP | 許可 IP (複数可) | --allow=192.168.1.1 --allow=10.0.0.0/8 |
--secret=TOKEN | バイパストークン (URL パス) | --secret=abc123 |
--render="view" | レンダリング済ビューを返す | --render="errors::503" |
--status=N | HTTP ステータスコード | --status=503 |
例: フル装備のメンテナンス開始
php artisan down \
--message="システムメンテナンスのため一時停止しています" \
--retry=300 \
--refresh=60 \
--secret="bypass-token-2024" \
--render="errors::503" \
--status=503
これで:
- 503 ステータスを返す
- 5 分後にリトライを推奨 (
Retry-After: 300) - 60 秒ごとに自動リロード
https://your-app.com/bypass-token-2024にアクセスすると Cookie が付き本人だけ閲覧可能にerrors/503.blade.phpをレンダリング
secret によるバイパス
運用者だけがサイトを確認したい場合、--secret が最も便利:
php artisan down --secret="abc123xyz"
# ブラウザで以下にアクセス
# https://example.com/abc123xyz
# → Cookie が発行され、以後メンテ画面をバイパスして本物の画面が見える
# 解除
php artisan up
カスタム 503 ビュー
resources/views/errors/503.blade.php を配置すれば自動で使われます:
メンテナンス中 | MyApp
メンテナンス中です
サービス改善のため一時停止しています。
しばらく経ってから再度お試しください。
復旧予定: 2024年4月1日 12:00 (JST)
--render を使うとメンテナンス時に動的処理を行わずに済みます。
--render と Pre-rendered の違い
Laravel 8+ では、メンテナンスモード中にアプリ全体がブートできない致命的エラーが起きると、デフォルトビューすら表示できません。これを防ぐため --render はメンテ開始時にビューを事前レンダリングし、その HTML を直接返します:
# 推奨: 事前レンダリングして安全に
php artisan down --render="errors::503"
実体ファイル
メンテナンスモードの状態は storage/framework/down ファイルで管理されます:
# down 後に確認
cat storage/framework/down
# {"except":[],"redirect":null,"retry":300,"refresh":60,"secret":"abc","status":503,"template":"..."}
# 手動で削除しても up と同じ
rm storage/framework/down
ゼロダウンタイムデプロイとの組合せ
本番では down → migrate → up がベーシック:
#!/bin/bash
set -e
cd /var/www/myapp
# メンテナンス開始 (運用者は IP でバイパス)
php artisan down --secret="deploy-2024" --retry=60
# コード更新
git pull origin main
composer install --no-dev --optimize-autoloader
npm ci && npm run build
# キャッシュクリア&構築
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
# メンテナンス解除
php artisan up
Envoyer / Deployer / Laravel Forge / Vapor などは内部的にこの流れを自動化しています。
キューワーカーへの影響
メンテナンス中も queue:work はジョブを処理し続けます。デプロイ時はワーカーも止めるのが安全:
# ワーカーに graceful 停止シグナル
php artisan queue:restart
# Supervisor / systemd 経由なら再起動
sudo systemctl restart laravel-worker
FAQ
Q: メンテナンス中に Artisan コマンドは動く?
A: 動きます。storage/framework/down は HTTP リクエストのみ遮断するので、CLI には影響しません。
Q: 特定ルートだけ通したい (Health check 等)
A: Laravel 8+ は app/Http/Middleware/PreventRequestsDuringMaintenance.php の $except に URI を追加。
Q: メンテ中も画像 / CSS は配信したい
A: 静的ファイルは Nginx / Apache が直接配信するので、Laravel を経由しません。デフォルトで配信され続けます。
Q: php artisan up しても 503 のまま
A: OPcache / Nginx の FastCGI キャッシュが原因の可能性。sudo systemctl reload php8.x-fpm + ブラウザ強制リロード。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストールと設定
- クイックスタート & チュートリアル(初心者向け)
- クイックスタート & チュートリアル(中級者向け)
- ルーティング
- Bladeテンプレート(ビュー/レイアウト)
- コントローラー
- マイグレーションとテーブル定義
- データベースの設定
- Eloquentモデル (ORM)
- SQLとクエリビルダー
- バリデーション
- .envファイルの設定値へのアクセス
- 動作環境による分岐処理
- configフォルダ配下の設定値へのアクセス
- assetヘルパーを利用したpublicフォルダへのアクセス
- storageフォルダへのアクセス
- アプリケーション名の変更
- メンテナンス
- ログイン画面(認証システム)の作成
- ログインの必須化
- ログインユーザー情報の取得
- ルートの認証化
- 本番サーバーへのデプロイ方法
- 多言語化
- csrf_field
- ファイルのダウンロード
- CSVのアップロードおよび読み込み(maatwebsite/excel)
- ページタイトルの設定
- コマンド一覧
- エラー一覧
- SQLの実行ログ出力方法
- キャッシュのクリア
- Selectの結果の最初もしくは最後に任意の値を追加する方法
- ajaxでPOST通信する際の注意点
- ソーシャルログインの実装
- セッション情報の確認
- ログイン、ユーザー登録、パスワードリセット後のリダイレクト先の変更方法
- redirectやreturn viewにメッセージを付与する方法
- クッキー(cookie)の設定と取得
- クラスの再読み込み
- csrfの有効時間を変更する方法
- ViewComposerを用いてviewに共通の値を付与する方法
- View::shareを用いて共通の値を各ビューに渡す方法
- ミドルウェアを用いた処理の共通化
- Middleware内でAuth::check()などを使用する方法
- Controller以外でリダイレクトする方法
- セッションの値の取得/保存/更新/削除
- $requestの値を変更する方法
- 常時SSL化
- ページング(ページネーション)をする方法
- vue.jsとの連携
- Vue.jsと連携するSPA実行環境構築
- .envの値をvue.jsで参照する方法
- vue.jsを本番環境にリリースする方法
- could not find driver(Windows, MySQL編)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?