← 一覧に戻る

common-php-my-admin

GitHub ↗ PHP 最終push: 2026/4/25 11:06

WIP(現在進行中)

Work In Progress

このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。

現在の状況

  • 状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com、SSL 済み)
  • 完了済み: 多目的サーバーへのデプロイ、blowfish_secret 同期、README/CLAUDE.md 整備、両リポジトリの commit & push
  • 進行中: なし(一段落)
  • 詰まっていること: なし
  • 次の候補タスク:
    • fail2ban / Basic 認証 / IP 制限の追加(phpMyAdmin へのブルートフォース対策)
    • config.inc.phpAllowNoPassword = true(kizuna)の見直し
    • new-project-setup スキル側での .devnotes/ 作成組み込み(ユーザー側で対応判断、今セッションでは実施しない)

過去のWIPアーカイブ

(このセクションには、今後「現在の状況」を書き換える際に古いものが追記されていく。最新が上)

ROADMAP(計画)

ロードマップ

今週

(今週中にやりたいこと)

今月

(今月中にやりたいこと)

今四半期

(今四半期の目標)

いつか

  • fail2ban 導入(phpMyAdmin へのブルートフォース対策)
  • Basic 認証 または IP 制限の追加検討
  • config.inc.phpAllowNoPassword = true(kizuna 接続)設定の見直し
  • 多目的サーバーのメモリ逼迫が顕在化したときの対応(Lightsail プランアップ等)

DECISIONS(意思決定)

意思決定記録

このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。


2026-04-25: phpMyAdmin のサーバー転送は Claude が担当する

背景: ローカルとサーバーで blowfish_secret を同期させた結果、今後 rsync するときの上書き挙動が論点になった。

決定: デプロイ作業はユーザー自身では行わず、Claude に依頼する運用とする。

理由: ユーザーが rsync を走らせないなら、secret 差分やデプロイ手順の細かい管理を Claude に集約できる。毎回手順を思い出す必要もない。


2026-04-25: blowfish_secret はローカル・サーバー同値でコミットする

背景: サーバー側は 48 文字ランダム値、ローカルは 'hoge' のまま。rsync で上書きされる問題と、'hoge' は短すぎて phpMyAdmin が警告を出す問題があった。

決定: ローカルも同じ 48 文字値に揃えてコミットする(config.inc.php ごと git 管理)。

理由: blowfish_secret は Cookie 認証の暗号化鍵で、単体が漏れても直ちに悪用はできない(Cookie 本体とセットで初めて意味を持つ)。private リポジトリでもありリスク限定的。ユーザーが「漏れても大丈夫」と明示。これにより 'hoge' の起動時警告も解消され、rsync 上書き問題も消える。


2026-04-25: phpMyAdmin のアクセス制限は HTTPS のみ

背景: phpMyAdmin はブルートフォースの標的になりやすく、HTTPS + Basic 認証 + IP 制限の3点セットが定石。

決定: HTTPS のみ必須、Basic 認証・IP 制限はとりあえず入れない。

理由: まずは動かしたい、必要になってからでよい、という判断。固定 IP の要件もなし。ただし後追いで fail2ban 等の追加を検討する余地は残す(ROADMAP「いつか」)。


2026-04-25: 管理対象 DB は既存 RDS 群のみ、サーバーに MySQL を置かない

背景: 当初「多目的サーバーに phpMyAdmin を入れる」を「サーバーに新規 MySQL + phpMyAdmin」と誤解して MySQL Server をインストールしたが、実は config.inc.php に既存 RDS 4 件(絆 / FootballNEXT / BaseballNEXT / 怖い話)が登録済みだった。

決定: 多目的サーバー上に MySQL は立てず、phpMyAdmin は既存 RDS を管理する用途に特化する。インストール済み MySQL Server は purge する。

理由: Lightsail Nano(512MB RAM)で MySQL + PHP-FPM + 既存 Python アプリ 2 つを同居させるのは負荷が厳しい。RDS で十分、サーバー側に DB は不要。


DEVLOG(作業ログ)

開発日誌

このプロジェクトでの作業を時系列で記録する。 最新のエントリが上に来る。


2026-04-25

11:04 - phpMyAdmin を多目的サーバーに導入

やったこと:

  • 多目的サーバー(Lightsail、13.230.63.19)の状態調査(PHP/MySQL 未インストールを確認)
  • 2GB スワップファイル作成・永続化(/swapfile/etc/fstab に登録)
  • PHP 8.1 + php-fpm + 必要拡張(mysqli / mbstring / zip / gd / curl / xml / intl)インストール
  • 誤ってインストールした MySQL Server を purge(メモリ逼迫回避・不要判明のため)
  • Route53 の mydb.ikapps.com A レコードを 13.230.63.19 に変更(ユーザーが実施、旧値 52.68.231.6)
  • ローカル phpMyAdmin/ 一式を /var/www/phpmyadmin/ に rsync 転送、所有者を www-data
  • config.inc.phpblowfish_secret を 48 文字ランダム値に差し替え(サーバー側)
  • Nginx vhost 作成(/etc/nginx/sites-available/mydb.ikapps.com
  • certbot で Let's Encrypt SSL 証明書取得、HTTP → HTTPS リダイレクト設定
  • HTTPS で phpMyAdmin ログイン画面を確認(<title>phpMyAdmin</title> 返却)
  • ローカル config.inc.phpblowfish_secret もサーバーと同値に揃えてコミット
  • common-php-my-admin の README/CLAUDE.md を「(記入予定)」から実体に整備
  • multi-purpose-lightsail-server1 の README サービス一覧に mydb.ikapps.com を追記
  • 両リポジトリを commit & push(7bdb6be41d4e44
  • new-project-setup スキルが .devnotes/ 作成を手順に含んでいなかった件が発覚(ユーザー側のスキル description は更新、実対応はいったん見送り)

決めたこと:(詳細は DECISIONS.md)

  • 管理対象 DB は既存 RDS 群のみ、サーバー側に MySQL を置かない
  • phpMyAdmin のアクセス制限は HTTPS のみ(Basic 認証・IP 制限なし)
  • blowfish_secret は漏洩 OK 前提でローカル・サーバー同値をコミット
  • phpMyAdmin のサーバー転送は Claude が担当、ユーザーは自分で rsync しない

気づき:

  • Lightsail Nano(416Mi RAM)は MySQL + PHP-FPM + 既存アプリ併用で厳しい。スワップ必須
  • ローカルの config.inc.php に既に 4 RDS の接続先定義が入っており、「サーバーに新規 MySQL 立てる」は当初誤解だった。config.inc.php を先に読んでいれば早く気付けた

次回やること:

  • fail2ban / Basic 認証 / IP 制限の追加検討
  • config.inc.phpAllowNoPassword = true(kizuna 接続)設定の妥当性見直し

最近のコミット

README

common-php-my-admin

phpMyAdmin 5.2.3 で複数の RDS を一元管理するためのリポジトリ。多目的サーバー(https://mydb.ikapps.com)にデプロイされる。

接続先

  • 絆(7ちゃんねる&パチスロ攻略まとめ)
  • FootballNEXT
  • BaseballNEXT
  • 怖い話&間違えないで

すべて AWS RDS(東京)。詳細は phpMyAdmin/config.inc.php

デプロイ

ローカルの phpMyAdmin/ を多目的サーバーの /var/www/phpmyadmin/ に rsync で同期する。