🌐 言語: 🇻🇳 Tiếng Việt · 🇬🇧 English · 🇯🇵 日本語(現在)
メンテナンスのコマンド:アカウント、暗号鍵、バックアップ、整理
はじめに
このページでは、サイトの運用中に使うコマンドをまとめています。失った管理者パスワードの再設定、機密情報の暗号鍵の変更、 バックアップと復元、期限切れカートの削除です。対象は、サーバーにアクセスできるサイトオーナーです。各セクションでは、 コマンドの内容と入力方法を説明し、作業が長い場合は詳しいガイドへ案内します。読み終えると、よくあるメンテナンスの場面に 管理画面なしで対応できます。
ひと目でわかる
| 場面 | コマンド | 安全度 |
|---|---|---|
| 管理者パスワードを失い、「パスワードをお忘れの方」も使えない | gp247:admin-password |
⚠️ |
| 暗号鍵が漏れたので、鍵を変える必要がある | gp247:encryption-key-rotate |
⚠️ |
| 大きな変更の前にバックアップする | gp247:backup-run |
✅ |
| サイトが壊れたので、データを取り戻したい | gp247:backup-restore |
🛑 |
| カートのテーブルが大きくなり続ける | gp247:shop-clear-cart |
✅ |
- 機密情報(バックアップのパスワード)が必要なコマンドは、実行時に必ず尋ねます。引数では受け取りません — コマンド履歴に 残らないようにするためです。
- 削除や上書きをするコマンドは、実行前にバックアップの ID をもう一度入力させます。
- 定期的な作業(スケジュールバックアップ、メールのキュー)に必要な cron は 1 行だけです — 定期実行のジョブ を参照してください。
管理者パスワードの再設定
gp247:admin-password は、パスワードを失い(例:インストール時に一度だけ表示されたパスワードを控え忘れた)、
「パスワードをお忘れの方」でも解決できない場合 — アカウントのメールがインストール時の admin@gp247.local のまま、または
サイトがまだメールを送れない場合 — に、管理者アカウントへ新しいパスワードを設定します。実行できるのはサーバーにアクセスできる人だけです。
ℹ️ 対応バージョン: gp247/core 3.11.0
| 引数/オプション | 値 | 意味 |
|---|---|---|
username |
必須 | アカウントのユーザー名(通常は admin) |
--password |
任意 | 新しいパスワード — 現在の管理者のパスワードポリシーを満たす必要があります。省略すると、コマンドがランダムに生成します |
--force |
0(既定)または 1 |
1:確認しない — スクリプトや --json では必須 |
-
次のように入力します。
php artisan gp247:admin-password admin -
コマンドが確認を求めます(既定はいいえ)。
yesと入力します。 -
最後のブロックに、ユーザー名と**新しいパスワード(一度だけ表示されます)**が表示されます。すぐに控えてログインし、次回から 「パスワードをお忘れの方」を使えるよう、アカウントのメールアドレスを実在するものに変更してください。
再設定の後:
- REST API を使うすべてのアプリケーションと、アカウントのすべての MCP トークンが無効になります。「ログインしたままにする」を 選んだブラウザーは、ログインし直す必要があります。開いているセッション(ログイン保持なし)は、セッションの期限で終了します。
- ロックされたアカウントのロックは解除されません — 「ユーザー」画面で解除します。
- サイトのログに 1 行記録されます(アカウント名のみで、パスワードは含みません)。
--json では、生成されたパスワードは data.password にだけ入ります。自分で指定したパスワードが表示されることはありません。
アカウントと権限 も参照してください。
機密情報の暗号鍵を変更
GP247 は、設定に保存した機密情報(SMTP のパスワード、決済ゲートウェイの鍵など)を GP247_ENCRYPTION_KEY で暗号化しています。
gp247:encryption-key-rotate は、各機密情報を古い鍵で読み、新しい鍵で書き直します。データを失わずに鍵を変える唯一の方法です。
| オプション | 意味 |
|---|---|
--dry-run |
変換する行数を数えるだけで、書き込まない |
必ず次の順序で行います(8 つの手順の詳細は 機密データの暗号化 にあります)。
-
.envとデータベースをバックアップします。 -
現在の鍵を
GP247_ENCRYPTION_PREVIOUS_KEYSに入れ、新しい鍵をGP247_ENCRYPTION_KEYに設定します。 -
設定のキャッシュを消します:
php artisan config:clear。 -
暗号化し直します。
php artisan gp247:encryption-key-rotate成功すると、列ごとに
admin_config.value: 5 converted, 0 already current, 0 undecryptableのような行が表示されます。 -
確認:
php artisan gp247:doctor—secret_decryptableのチェックが PASS になっている必要があります。
再実行しても安全です。すでに新しい鍵の行は飛ばされ、復号できない行は上書きされません。
バックアップと復元
gp247:backup-* 系のコマンドは、「バックアップと復元」画面でできることをすべて行え、管理画面に入れないときでも動きます。
<id> はバックアップの ID に置き換えてください(gp247:backup-list で確認できます)。
| コマンド | 内容 | 安全度 |
|---|---|---|
gp247:backup-run |
暗号化したバックアップを作成し、検証。--kind=snapshot|selective|full(既定 full)、--group=、--files=、--exclude-logs |
✅ |
gp247:backup-run --scheduled |
スケジュールバックアップ。内容は「バックアップ設定」に従い、スケジュールがオフなら何もしない | ✅ |
gp247:backup-list |
バックアップを一覧表示(バックアップフォルダーで見つかったものも含む) | ✅ |
gp247:backup-verify <id> |
バックアップの完全性を再検証 | ✅ |
gp247:backup-pin <id> |
自動整理で消されないよう固定。--unpin で固定解除 |
✅ |
gp247:backup-import <ファイル> |
.gp247bak ファイルを確認して一覧に追加 |
✅ |
gp247:backup-offsite test|list|push|fetch |
外部の保存先:接続確認、一覧、バックアップのコピー、取り戻し | ✅ |
gp247:backup-export-sql <id> |
データを暗号化されていない .sql ファイルに書き出す(--output=) |
⚠️ |
gp247:backup-restore <id> |
データ・ファイルを復元:--level=、--files=、--preview、--undo、--post-incident |
🛑 |
gp247:backup-delete <id> |
バックアップを削除 | 🛑 |
例:全体バックアップを作成し、一覧を表示する:
php artisan gp247:backup-run
php artisan gp247:backup-list
実際に復元する前にプレビューする:
php artisan gp247:backup-restore <id> --level=full --preview
- バックアップのパスワードは実行時に尋ねられます。スクリプトでは
--secret-stdinを付け、標準入力の 1 行で渡します (渡すものがリカバリーキーなら--recovery-key)。 - 削除/復元/
.sqlの書き出しは、バックアップの ID をもう一度入力させます。対話できない場合は--confirm=<id>を渡します。 - 書き出した
.sqlファイルは暗号化されていません — データベースそのものと同じように守り、使い終わったら削除してください。
詳しいガイド:バックアップと復元 · 状況別の復元ガイド · 外部の保存先。
期限切れカートの削除
gp247:shop-clear-cart は、保存期間を過ぎたカート、お気に入り、比較リストを削除し、カートのテーブルが大きくなり続けるのを
防ぎます。日数は設定 gp247-config.shop.cart_expire(cart、wishlist、compare)で決まります。このコマンドは、サイトに
gp247/shop があるときに使えます。
php artisan gp247:shop-clear-cart
cron で毎日実行します。例えば午前 2 時:
0 2 * * * cd /path-to-site && php artisan gp247:shop-clear-cart >> /dev/null 2>&1
定期実行のジョブ
GP247 は、自分の定期ジョブ(メールキューの処理、「決まった時刻」モードのスケジュールバックアップ)を Laravel のスケジューラーに 自動で登録します。サーバーに必要なのは、毎分スケジューラーを呼び出す cron の 1 行だけです。
* * * * * cd /path-to-site && php artisan schedule:run >> /dev/null 2>&1
cron のないホスティング、VPS、Docker の場合は スケジュールとキュー を参照してください。
条件と制約(操作の前に確認)
パスワードを再設定するとき
- 自分で指定するパスワードは、管理者のパスワードポリシーを満たす必要があります — 満たさないと
invalid_passwordを報告し (メッセージにパスワードは含まれません)、何も変えません。 - 存在しないユーザー名 →
user_not_found。 - スクリプト/
--jsonには--force=1が必要です → ないとconfirmation_requiredになり、何も変わりません。
暗号鍵を変更するとき
- コマンドの実行中は、古い鍵を
GP247_ENCRYPTION_PREVIOUS_KEYSに残しておく必要があります — ないと機密情報を読めず、 暗号化し直せません(「undecryptable」と表示されます)。 - 先に
config:clearを実行します — キャッシュされた設定には古い鍵が残っているためです。
バックアップと復元
- バックアップのパスワードが未設定 →
not_set_upを報告します。初回の設定は「バックアップと復元」画面で行います。 - バックアップのパスワードが違う →
wrong_secret。バックアップには何も起きません。 - 出どころを確認できないバックアップ(別のサイトで作ったもの)は、
--accept-unverifiedを付けたときだけ復元できます。
よくある質問(Q&A)
Q1: コマンドラインのないホスティングで、管理者パスワードを失いました。
→ ログインページの「パスワードをお忘れの方」を使います。アカウントのメールが実在するアドレスで、サイトがメールを送れる 必要があります。だからこそ、インストール直後に管理者のメールアドレスを変更してください。
Q2: パスワードを再設定したら、API を使うアプリケーションが止まりました。
→ 仕様どおりです。古いパスワードを手に入れた人が使えないよう、アカウントの API と MCP のトークンは無効になります。管理画面で 新しいトークンを作成してください。
Q3: GP247_ENCRYPTION_KEY を変えたのに、鍵の変更コマンドを実行し忘れました。
→ 古い鍵を GP247_ENCRYPTION_PREVIOUS_KEYS に入れ、php artisan config:clear の後に gp247:encryption-key-rotate を
実行します。直ったかどうかは gp247:doctor の secret_decryptable で分かります。
Q4: コマンドラインのバックアップは、画面のボタンと何が違いますか?
→ 同じ仕組み、同じファイル形式です。コマンドラインは Web リクエストの時間制限を受けないので、大きなサイトではより安全です。
Q5: スクリプトで backup-restore を実行すると confirmation_required になります。
→ --confirm=<id>(バックアップの ID をそのまま)を付け、バックアップのパスワードは --secret-stdin で渡してください。
Q6: shop-clear-cart は、買い物中のお客様のカートも削除しますか?
→ いいえ。cart_expire で決めた日数を過ぎたカートだけを削除します。
Q7: backup-run --scheduled 用に別の cron の行が必要ですか?
→ いいえ。共通の schedule:run の行で十分です。GP247 が「バックアップ設定」に従ってバックアップの時刻を自動で登録します。
📅 最終更新: 2026-11-08 · ✍️ 作成者 (Author): GP247