Google Cloud SQLの第二世代に、Google App Engine PHPの上にphpMyAdminを乗っけて動かしたので作業内容公開するよ
動機
Cloud SQL繋いでデータ見たいんだったら他のツール使えばいいじゃんって思うんですが、いかんせんうちは外部へのWebやらメール以外の接続は許可されていないのですよ。
じゃあphpMyAdminを提供してあげなきゃいけないじゃないですかぁっ!
GCEで立てても良かったんだけど、お金かけたくないからApp Engineで立てました。
基本
公式にチュートリアルが用意されてるので嫁
https://cloud.google.com/sql/docs/phpmyadmin-on-app-engine
もうほぼこれだけで終了です。
デプロイまでこれでいけます。
自分はデプロイのコマンドはgcloud app deploy
を使いました。
この場合、app.yaml
の記述で、application
とmodule
を消さないといけません。
チュートリアルは第二世代に対応してない
config.inc.yml
の以下の記述
$host = '/cloudsql/{{your_project_id}}:{{your_cloudsql_instance}}'
これだと第二世代に対応してません。
このままインスタンスとプロジェクトIDを無邪気に書いてデプロイした結果がこれだよ
最初出たときは普通にこのメッセージで探してパラメータいじったりしたんですが、理由は簡単でした。
公式に書いてますw
https://cloud.google.com/sql/docs/app-engine-connect#gaev1-csqlv2
2のUpdate your application
のdです。
/cloudsql/<INSTANCE_CONNECTION_NAME>
INSTANCE_CONNECTION_NAME
です。
最初INSTANCE_NAMEだと思ってました。
なので繋がるわけがない。
Developer Console見ましょう。
インスタンス接続名というのがあります。
ここに書いてる値を設定すればOKです。
<project_id>:<zone>:<instance_name>
になってますね。
ところで、第二世代なのに第一世代って左に出るのやめてほしいですねw
どっちやねん!