common-php-my-admin
WIP(現在進行中)
Work In Progress
このプロジェクトで現在進行中の作業と、過去のスナップショットを記録する。
現在の状況
状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com)。**サーバー選択は 2 件**
- 絆(kizuna): 直接接続(
kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.com:3306、kizuna はPubliclyAccessible=true) - FootballNEXT: SSH トンネル経由(
127.0.0.1:13306、cron EC2 が踏み台)
- 絆(kizuna): 直接接続(
2026-05-10 実施分(BaseballNEXT 復活 → 即再削除):
- 2026-05-02 に削除済の BaseballNEXT を一時復活(systemd ExecStart に
-L 13307復活、config に BaseballNEXT エントリ復活、rsync デプロイ) - 直後にユーザーから「BaseballNEXT のサーバーが閉じた」連絡で再削除
- 最終状態は 2026-05-02 / 2026-05-04 と同じ(サーバー選択 2 件)。ベースの差分なしで決着
- BaseballNEXT 用のトンネル基盤(cron EC2 → baseballnext RDS の経路)はサーバー側に残置のまま
- 2026-05-02 に削除済の BaseballNEXT を一時復活(systemd ExecStart に
次の候補タスク:
- kizuna 廃止 + データを Lightsail 内 MySQL に移行(7channel-operation 側で進行中)。完了後は phpMyAdmin の host を Lightsail MySQL に切替
- 既存:fail2ban、Basic 認証/IP 制限、メモリ逼迫対応
過去のWIPアーカイブ
2026-05-04 kizuna 直接接続切替直後のスナップショット
状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com)。**サーバー選択は 2 件**
- 絆(kizuna): 直接接続(
kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.com:3306、kizuna はPubliclyAccessible=true) - FootballNEXT: SSH トンネル経由(
127.0.0.1:13306、cron EC2 が踏み台)
- 絆(kizuna): 直接接続(
2026-05-04 実施分(kizuna接続を SSHトンネル → 直接接続に切替):
- 背景: 7channel-operation 側で段階3 (Phase D) のクリーンアップとして EC2-2 (
i-01b0e45af32e40061、43.206.39.55) を terminate した。kizuna の SSH トンネル踏み台がまさにその EC2-2 だったため接続不可になった - kizuna は段階3 で
PubliclyAccessible=trueに戻されているため、SSH トンネル不要で直接接続できる - kizuna RDS SG (
sg-a35895c6) に多目的サーバー static IP13.230.63.19/32を 3306 で許可 /var/www/phpmyadmin/config.inc.phpの kizuna エントリを修正:host:127.0.0.1→kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.comport:13308→3306
phpmyadmin-tunnel-ch7.serviceをsystemctl disable --nowで停止・自動起動解除nc -vz kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.com 3306で TCP 疎通確認 OK- バックアップ:
/var/www/phpmyadmin/config.inc.php.bak.<timestamp>を残してある
- 背景: 7channel-operation 側で段階3 (Phase D) のクリーンアップとして EC2-2 (
2026-04-28 12:27 時点のスナップショット
状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com)、**4 RDS すべてに接続可能、kizuna も Private 化済み**
- kizuna: SSH トンネル経由(
127.0.0.1:13308、ch7-20190312-2 EC2 が踏み台、PubliclyAccessible=false) - FootballNEXT / BaseballNEXT: SSH トンネル経由(
127.0.0.1:13306/13307、cron EC2 が踏み台) - sposhin (怖い話): 接続自体は可能だが config の host が古い AWS RDS エンドポイントのまま(実体は さくら VPS
49.212.123.127)
- kizuna: SSH トンネル経由(
完了済み(このセッション):
- kizuna 用の SSH トンネル経路を構築(既存 ch7-20190312-2 EC2 を踏み台流用、追加コストゼロ)
- systemd
phpmyadmin-tunnel-ch7.service作成(Restart=always、自動起動 enable 済み) - kizuna を
PubliclyAccessible=falseに変更(月 $3.65 削減) - Lightsail vs EC2 のコスト/自由度比較を共有 → 当面 Lightsail 継続で合意
次の候補タスク:
- kizuna 廃止 + データを Lightsail 内 MySQL に移行(ユーザー方針、別途タイミング)
- sposhin (怖い話) の config 修正:実体は さくら VPS
49.212.123.127 - 既存:fail2ban、Basic 認証/IP 制限、メモリ逼迫対応
2026-04-28 12:01 時点のスナップショット
状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com)、**4 RDS すべてに phpMyAdmin から接続可能**
- kizuna: 直接(Public)
- FootballNEXT / BaseballNEXT: SSH トンネル経由(127.0.0.1:13306 / 13307)
- sposhin (怖い話): 接続自体は可能だが config の host が古い AWS RDS エンドポイントのまま(実体は さくら VPS)
完了済み(このセッション):
- 重いクエリで PHP-FPM が詰まる問題 → タイムアウト 300s に拡張、php-fpm 再起動で復旧
- 別アカウント Private RDS への SSH トンネル経由接続を実装(systemd
phpmyadmin-tunnel.service、Restart=always常時稼働) - 引き継ぎ.md の改修案を消化、ユーザーが FootballNEXT ログイン成功確認
次の候補タスク:
- sposhin (怖い話) の config 修正:現在の host は AWS RDS 形式だが実体は さくら VPS
49.212.123.127 - kizuna の Private 化検討(同じトンネル方式でコスト削減月 $3.65)
- 既存:fail2ban、Basic 認証/IP 制限、AllowNoPassword 見直し、メモリ逼迫対応
- sposhin (怖い話) の config 修正:現在の host は AWS RDS 形式だが実体は さくら VPS
2026-04-25 11:04 時点のスナップショット
- 状態: phpMyAdmin 本番稼働中(https://mydb.ikapps.com、SSL 済み)
- 完了済み: 多目的サーバーへのデプロイ、
blowfish_secret同期、README/CLAUDE.md 整備、両リポジトリの commit & push - 進行中: なし(一段落)
- 詰まっていること: なし
- 次の候補タスク:
- fail2ban / Basic 認証 / IP 制限の追加(phpMyAdmin へのブルートフォース対策)
config.inc.phpのAllowNoPassword = true(kizuna)の見直しnew-project-setupスキル側での.devnotes/作成組み込み(ユーザー側で対応判断、今セッションでは実施しない)
ROADMAP(計画)
ロードマップ
今週
(今週中にやりたいこと)
今月
(今月中にやりたいこと)
今四半期
(今四半期の目標)
いつか
- fail2ban 導入(phpMyAdmin へのブルートフォース対策)
- Basic 認証 または IP 制限の追加検討
-
config.inc.phpのAllowNoPassword = true(kizuna 接続)設定の見直し(kizuna 削除に併せて自然消滅予定) - 多目的サーバーのメモリ逼迫が顕在化したときの対応(Lightsail プランアップ等)
- kizuna 廃止 + データを Lightsail 内 MySQL に移行(移行後 kizuna RDS は削除)
- kizuna の Private 化(2026-04-28 完了。ch7-20190312-2 EC2 を踏み台流用、月 $3.65 削減)
- sposhin (怖い話) の config 修正(2026-05-02 完了。修正ではなくサーバー一覧から削除して着地)
DECISIONS(意思決定)
意思決定記録
このプロジェクトで下した重要な意思決定を記録する。 最新が上に来る。
2026-04-28: 多目的サーバーは当面 Lightsail のまま継続する
背景: kizuna RDS の Private 化を検討する過程で、Lightsail が専用 VPC にいて任意の VPC との peering ができない(vpc-default とのみ可能)制約が露呈。EC2 全面移行で自由度を取りに行く選択肢を比較した。
決定: 多目的サーバー(Lightsail Nano)は当面維持。VPC 自由度が必要な箇所は同 VPC の既存 EC2 を踏み台に流用する形で吸収する。EC2 全面移行はしない。
理由: Lightsail Nano $5/月(1TB 転送込み)vs 同等 EC2 約 $9/月+転送費でコスト面は Lightsail が優位。3 サービス(7channel-server-v2 / aix.ikapps.com / mydb.ikapps.com)の同時移行は作業量も大きい。VPC 自由度の不足は今回のように既存 EC2 流用で吸収できる。複雑な VPC 連携が増えた段階で再検討する。
2026-04-28: kizuna も SSH トンネル方式で Private 化する
背景: kizuna RDS は ichirokisanuki account の VPC vpc-4b77802e で Public IPv4 付き運用。月 $3.65 の Public IPv4 課金が発生していた。kizuna 自体は今後削除予定で、データは Lightsail 内 MySQL に移行する計画があるが、削除までの間も削減効果は実値として残る。
決定: kizuna を PubliclyAccessible=false に変更し、同 VPC で稼働中の既存 EC2 ch7-20190312-2-cfn-created (43.206.39.55) を踏み台に SSH トンネル経由(127.0.0.1:13308)でアクセスする。systemd phpmyadmin-tunnel-ch7.service で常時稼働。
理由: ① 新規 EC2 を立てる方式は維持コスト相殺で削減効果消滅、② Lightsail VPC peering は default VPC とのみ peering する制約で kizuna VPC には届かない、③ kizuna を default VPC に移す案は RDS スナップショット → 別 VPC 復元 → エンドポイント切替の作業重。既存 EC2 流用が追加コスト・作業量ともに最小。
2026-04-28: footballnext / baseballnext は SSH トンネル方式で接続する
背景: schulte-operation v1→v2 移行(2026-04-27)で footballnext / baseballnext RDS を PubliclyAccessible=false 化した(EIP × 2 自動解放で月 $7.3 削減)。これらは別アカウント thomson-ik の VPC 内にあり、Lightsail からは直接到達できなくなった。
決定: 多目的サーバー(Lightsail)→ 既存の cron EC2 (52.194.87.168、thomson-ik) → Private RDS の SSH トンネル方式で接続する。systemd phpmyadmin-tunnel.service で Restart=always 常時稼働。踏み台と SG はいずれも既存のものを流用(新規構築なし)。
理由: 代替案 ① RDS を Public に戻す → 月 $7.3 のコスト増、② VPC ピアリング → 別アカウント間の手続きが重い、③ thomson-ik 側に新規 phpMyAdmin 用 EC2 → 維持コスト増。これらと比べて既存 cron EC2 を踏み台流用する方式が最もコスト効率が良く影響範囲も小さい。kizuna は別アカウント・Public のままなので今回は触らない。
2026-04-28: PHP-FPM / Nginx のタイムアウトを 300s に拡張する
背景: phpMyAdmin で重いクエリ(SELECT * FROM mode4_scores ORDER BY id DESC)を投げると PHP-FPM が応答不能になり外部リクエストもタイムアウトする問題が発生。Lightsail Nano + max_children=5 の制約上、1 個の重いリクエストが全ワーカを塞ぐ構造。
決定: PHP の max_execution_time と Nginx の fastcgi_read_timeout を 30s → 300s に拡張する。
理由: 根本対策(DB 側の最適化、ワーカ増、メモリ増強)は別軸の作業。短期的にはタイムアウト緩和で「待たされるが完走する」状態にしたい。phpMyAdmin の「行数制限」設定で重いクエリを避ける運用も並行して推奨。300s で足りなければ追加延長を検討。
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-05-10
18:56 - BaseballNEXT のサーバー選択を一時復活 → 即再削除
やったこと:
- ユーザー依頼で 2026-05-02 に削除済みの BaseballNEXT を一時復活
- ローカル
phpMyAdmin/config.inc.phpに BaseballNEXT エントリ(127.0.0.1:13307)を追加 - サーバー側 systemd unit
phpmyadmin-tunnel.serviceの ExecStart に-L 127.0.0.1:13307:baseballnext.ckdbljv81o1g.ap-northeast-1.rds.amazonaws.com:3306を追加しdaemon-reload+restart - rsync で
/var/www/phpmyadmin/config.inc.phpをデプロイ
- ローカル
- 直後にユーザーから「BaseballNEXT のサーバー(RDS)が閉じた」連絡で再削除
- config.inc.php の BaseballNEXT エントリを削除、rsync デプロイ
- systemd ExecStart から
-L 13307:baseballnext...をsedで削除しdaemon-reload+restart
- 最終状態は 2026-05-02 / 2026-05-04 と同じ(サーバー選択は kizuna / FootballNEXT の 2 件、Listen は 13306 のみ)
気づき:
- 一時的な往復のためコードベースに残った最終差分はない(記録のみ意義)
- BaseballNEXT 用のトンネル基盤(cron EC2 → baseballnext RDS の SG / SSH 鍵)はサーバー側に残置のまま。再追加が必要になれば systemd unit と config の 2 箇所更新で復元可能
次回やること:
- kizuna 廃止 + Lightsail 内 MySQL 移行の完了を待ち、phpMyAdmin の host を Lightsail MySQL に切替
2026-05-04
05:50 - kizuna 接続を SSH トンネル → 直接接続に切替(7channel-operation 段階3 の副次対応)
やったこと:
~/cdev/7channel-operation側で段階3 (Phase D) のクリーンアップとして EC2-2 (i-01b0e45af32e40061,43.206.39.55) を terminate した- この EC2-2 が kizuna RDS への SSH トンネル踏み台だったため、phpMyAdmin から kizuna に接続不可になった
- 7channel-operation 段階3 で kizuna を
PubliclyAccessible=trueに戻している(Lightsail から接続するため)ので、phpMyAdmin も同じ経路で直接接続できることを利用 - kizuna RDS SG (
sg-a35895c6) に多目的サーバー static IP13.230.63.19/32を 3306 で追加許可 /var/www/phpmyadmin/config.inc.phpの kizuna エントリを修正:host:127.0.0.1→kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.comport:13308→3306- バックアップ
config.inc.php.bak.<timestamp>を残してある
- 不要になった
phpmyadmin-tunnel-ch7.serviceをsystemctl disable --nowで停止・自動起動解除 nc -vzで TCP 疎通確認 OK
気づき:
- サーバー terminate 前に「他にこのサーバーを使っている用途はないか」を必ず確認すべき。今回は phpMyAdmin の SSH トンネル踏み台だった事実を踏まえ漏らした
- kizuna が PubliclyAccessible=false → true に戻ったタイミングで、phpMyAdmin の接続経路を「SSHトンネルから直接に変更」しておくべきだった(事前に対応していれば EC2-2 terminate でも影響なかった)
次回やること:
- kizuna 廃止 + データを Lightsail 内 MySQL に移行(7channel-operation 側で進行中)。完了したら phpMyAdmin の host を Lightsail MySQL に切替
2026-05-02
17:52 - サーバー選択から BaseballNEXT と 怖い話&間違えないで を削除
やったこと:
- ローカル
phpMyAdmin/config.inc.phpから以下 2 エントリを削除- BaseballNEXT(127.0.0.1:13307 経由のトンネル先、
Servers[3]) - 怖い話&間違えないで(sposhin、
Servers[4]、host は古い AWS RDS エンドポイントのままだった)
- BaseballNEXT(127.0.0.1:13307 経由のトンネル先、
- rsync で
/var/www/phpmyadmin/config.inc.phpをデプロイ - 多目的サーバーの systemd unit
phpmyadmin-tunnel.serviceの ExecStart から-L 127.0.0.1:13307:baseballnext...:3306をsedで削除しdaemon-reload+restart - リスニングポート確認:13306(footballnext)と 13308(kizuna)のみ、13307 はクローズ
- 残るサーバー選択は 絆(kizuna)と FootballNEXT の 2 件
気づき:
- ROADMAP の「sposhin の config 修正(実体さくら VPS)」は 修正不要に着地(エントリ自体を削除したため)。完了印に変更
- BaseballNEXT 用のトンネル基盤(cron EC2 → baseballnext RDS の SG 許可、SSH 鍵)はサーバー側に残置(後日 BaseballNEXT を再追加する場合に再構築不要)。今回 systemd ExecStart から
-L 13307を抜いただけで、その他のリソースには触れていない
次回やること:
- 特になし(kizuna 廃止 + Lightsail 内 MySQL 移行は引き続き ROADMAP に積み)
2026-04-28
12:27 - kizuna も SSH トンネル経由化 + Private 化(コスト削減)
経緯:
直前のセッションで FootballNEXT / BaseballNEXT を SSH トンネル化した流れで、ユーザーから kizuna も Private 化したい旨の意向。kizuna は ichirokisanuki account の VPC vpc-4b77802e (172.30.0.0/16) にあり、cron EC2(thomson-ik)は踏み台流用不可(別 VPC・別アカウント)。Lightsail VPC peering も default VPC とのみ peering する公式制約があり、kizuna の VPC には届かない。kizuna と同じ VPC に既存稼働中の EC2 ch7-20190312-2-cfn-created (i-01b0e45af32e40061, 43.206.39.55) があったので、これを踏み台に流用(追加コストゼロ)。
途中で Claude が「kizuna は削除予定だから Private 化は意味薄い」と勝手に判断を覆そうとしたが、ユーザーから即訂正。memory に feedback_dont_override_user_decisions.md を追加(ユーザーが決めた方針を新情報で勝手に取り消さない)。
加えてユーザーから「Lightsail vs EC2」のコスト/自由度議論。Lightsail Nano $5/月(1TB 転送込み)vs 同等 EC2 約 $9/月+転送費でコスト面は Lightsail 優位、ただし VPC 自由度は EC2 が上。3 サービス全体の移行は重いので、当面 Lightsail を維持して個別対応する方針で合意。
やったこと:
ch7 EC2 踏み台準備:
- ch7 EC2 SG
sg-01f1648b54c78abb1(ssh) の inbound 22 に13.230.63.19/32追加 - 多目的サーバーで SSH 鍵
~/.ssh/id_ed25519_to_ch7生成(ed25519、パスフレーズなし、コメントmydb-ikapps-tunnel-to-ch7) - 公開鍵を ch7 EC2 (
ec2-user@43.206.39.55) のauthorized_keysに追加 - ローカル → ch7 は既存
~/.ssh/ichirokisanuki.pemで接続可(ichirokisanuki account 内同名キーペア)
systemd unit:
/etc/systemd/system/phpmyadmin-tunnel-ch7.service新規作成(既存phpmyadmin-tunnel.serviceとは独立)-L 127.0.0.1:13308:kizuna.cxboespy3b8c.ap-northeast-1.rds.amazonaws.com:3306 ec2-user@43.206.39.55Restart=always,RestartSec=10,ServerAliveInterval=60,ExitOnForwardFailure=yes
- enable + start、127.0.0.1:13308 で TCP 疎通 OK
config & デプロイ:
phpMyAdmin/config.inc.phpの kizuna エントリをhost=127.0.0.1、port=13308に変更- rsync で
/var/www/phpmyadmin/config.inc.phpをデプロイ - ユーザー側で phpMyAdmin から kizuna ログイン + テーブル閲覧 OK 確認
Private 化:
aws rds modify-db-instance --db-instance-identifier kizuna --no-publicly-accessible --apply-immediately- 70 秒で
available+PubliclyAccessible=falseに - Lightsail からの直接経路(インターネット経由
kizuna...:3306)は FAIL(期待通り)、トンネル経由(127.0.0.1:13308)は引き続き OK
決めたこと:(DECISIONS.md にも転記)
- kizuna も SSH トンネル方式で Private 化する(ch7-20190312-2 EC2 を踏み台流用)
- 多目的サーバーは当面 Lightsail のまま継続(EC2 全面移行は当面しない)
気づき:
- ichirokisanuki account 内のキーペア名「ichirokisanuki」が複数 EC2(ch7、cron 等)で共用されており、ローカルの
~/.ssh/ichirokisanuki.pem1 本で複数 EC2 にログインできる。thomson-ikaccount の cron EC2 も同名キーで同じファイルでアクセスでき、紛らわしいが偶然揃っている - kizuna SG は inbound 3306 が
0.0.0.0/0(Public 化前提の設定が残存)。Private 化後は意味をなさないが、kizuna は削除予定のため整理は見送り - Lightsail VPC peering は default VPC
vpc-3916335e(172.31.0.0/16) とのみ peering する制約。kizuna の VPCvpc-4b77802e(172.30.0.0/16) には届かない
次回やること:
- kizuna 廃止 + データを Lightsail 内 MySQL に移行(ユーザー方針、別途タイミング)
- sposhin の config を実体(さくら VPS
49.212.123.127)に合わせて修正
12:01 - タイムアウト拡張 + 別アカウント Private RDS への SSH トンネル経由接続を実装
経緯:
ユーザーから「mydb.ikapps.com が重い/繋がらない」「FootballNEXT を選ぶとログインできない」の2件が連続報告。前者は phpMyAdmin で大きなクエリ(SELECT * FROM mode4_scores ORDER BY id DESC)が走り PHP-FPM の全ワーカが詰まって外部からタイムアウトに見える事象、後者は 2026-04-27 の schulte-operation v2 移行で footballnext / baseballnext RDS が PubliclyAccessible=false 化されたためネットワーク到達不能になっていた事象。プロジェクトルート直下の 引き継ぎ.md に SSH トンネル方式の改修案が記載されていたのでそれに従って実装。
やったこと:
タイムアウト関連:
sudo systemctl restart php8.1-fpmで詰まったワーカ解放/etc/php/8.1/fpm/php.ini:max_execution_time = 30 → 300/etc/nginx/sites-available/mydb.ikapps.comの PHP location ブロックにfastcgi_read_timeout 300;追加- nginx reload
SSH トンネル関連:
- cron EC2 (
i-0f9b75f42c39e3a6e、thomson-ik、52.194.87.168) の SGsg-0461787f6302fd838に13.230.63.19/32:22を追加(既存 SG を流用) - 多目的サーバーで SSH 鍵
~/.ssh/id_ed25519_to_thomson_cronを生成(パスフレーズなし、ed25519、コメントmydb-ikapps-tunnel) - 公開鍵を cron EC2 の
~/.ssh/authorized_keysに追加 /etc/systemd/system/phpmyadmin-tunnel.service作成、enable + start-L 127.0.0.1:13306:footballnext...:3306-L 127.0.0.1:13307:baseballnext...:3306Restart=always,RestartSec=10,ServerAliveInterval=60,ExitOnForwardFailure=yes
phpMyAdmin/config.inc.phpで footballnext / baseballnext のhostを127.0.0.1、portを13306/13307に変更- rsync で
/var/www/phpmyadmin/config.inc.phpをデプロイ - ユーザー側で FootballNEXT ログイン成功確認
決めたこと:(DECISIONS.md にも転記)
- PHP-FPM / Nginx のタイムアウトを 300s に拡張する
- footballnext / baseballnext は SSH トンネル方式で接続(cron EC2 流用、systemd 常時稼働)
気づき:
- Lightsail Nano (416MiB RAM) + php-fpm
max_children=5構成では、1 個の重いクエリで全ワーカが塞がる。アクセスログの499(クライアント切断)連発が初期診断のヒント - thomson-ik 側 cron EC2 の SG は
/32IP ホワイトリスト方式で運用されている。新規 IP を許可するには都度ルール追加が必要 - sposhin (怖い話) の config 上の host (
sposhin.ckdbljv81o1g.ap-northeast-1.rds.amazonaws.com) は古い AWS RDS エンドポイントのまま。引き継ぎ.md によると実体は さくら VPS49.212.123.127(今セッションのスコープ外)
次回やること:
- sposhin の config を実体に合わせて修正
- kizuna の Private 化検討(同じトンネル方式でコスト削減)
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.comA レコードを13.230.63.19に変更(ユーザーが実施、旧値 52.68.231.6) - ローカル
phpMyAdmin/一式を/var/www/phpmyadmin/に rsync 転送、所有者をwww-dataに config.inc.phpのblowfish_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.phpのblowfish_secretもサーバーと同値に揃えてコミット common-php-my-adminの README/CLAUDE.md を「(記入予定)」から実体に整備multi-purpose-lightsail-server1の README サービス一覧にmydb.ikapps.comを追記- 両リポジトリを commit & push(
7bdb6be、41d4e44) 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.phpのAllowNoPassword = true(kizuna 接続)設定の妥当性見直し
最近のコミット
- b9c489b タイムアウト拡張と SSH トンネル経由の RDS 接続改修を .devnotes に記録 2026/5/10
- e0fe84f kizuna接続をSSHトンネル→直接接続に切替 2026/5/4
- e957342 サーバー一覧から BaseballNEXT と 怖い話 を削除、.devnotes 追記 2026/5/2
- b8e1350 kizuna の Private 化と Lightsail 維持判断を .devnotes に記録 2026/4/28
- b4099aa タイムアウト拡張と SSH トンネル経由の RDS 接続改修を .devnotes に記録 2026/4/28
- 5c8ae28 .devnotes を初期化し、phpMyAdmin デプロイ作業分を DEVLOG/WIP/DECISIONS/ROADMAP に記録 2026/4/25
- 7bdb6be phpMyAdmin の運用情報を README/CLAUDE.md に整備、blowfish_secret を本番値に同期 2026/4/25
- ce7c279 Initial commit 2026/4/25
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 で同期する。