WordPress|如何進入 phpMyAdmin 管理畫面

學習動機

phpMyAdmin 是一個以 PHP 為基礎的 MySQL 管理工具。
因為我們的 WordPress 是使用 Bitnami 打包好的套件,套件使用 phpMyAdmin 管理 WordPress 所用到的資料庫,因此需要學習如何使用 phpMyAdmin 提供的網頁介面管理資料庫。

方法

因為安全性的原因,進入 phpMyAdmin 時的 hostname 必須是 127.0.0.1。因為我們要從自己的電腦進行操作,直接在瀏覽器輸入 127.0.0.1 是無法連過去的,所以必須藉由 SSH tunnel 的方式做到,它的原理是:

使用 OpenSSH 在本地端開一個 port,並且將進入這個 port 的流量導向 phpMyAdmin 所在的機器,也就是架設 WordPress 的 VM instance

流程如下(以 MacOS 為例):

產生 SSH 使用的 Private 與 Public Keys

我一開始是參考 Creating a new SSH key 這篇文章,但發現一直遇到 Permission denied (publickey) 的錯誤訊息。

後來發現直接到 GCP Console > Compute Engine > VM Instances,在想要連線的機器上選擇 SSH 旁邊的三角形 > View gcloud command,複製 command 到 local terminal 執行即可,產生的 keys 會放在 ~/.ssh/ 底下。

細節可以參考 Connecting to Linux Instances 這篇文章。

對了,這個方法需要先安裝 gcloud,安裝方法請參考 Installing Google Cloud SDK

建立 SSH tunnel

使用以下指令監聽 127.0.0.1 的 8888 port,並且將流量導向 VM instance:

ssh -L 8888:localhost:80 -l [USERNAME] [VM_IP] -i [SSH_PRIVATE_KEY] -N
-L 8888:127.0.0.1:80指令的原型是 -L port:host:hostport

8888 是本地電腦監聽的 port
127.0.0.1 是目的地的網址,因為我們希望連向 VM instance 的 127.0.0.1
80 是目的地的 port,文件說如果有在 VM instance 上將 HTTP 導向 HTTPS,需要將 80 換為 443,但是我實際上這麼做的話會得到 NGINX 回報:

400 Bad Request
The plain HTTP request was sent to HTTPS port


原因需要再確認
指令說明
-l [USERNAME]VM instance 的 username
指令說明
[VM_IP]VM instance 的 publice IP address
-i [SSH_PRIVATE_KEY]SSH 的 private key
指令說明
-N不要執行使用 SSH 連向遠端的動作,當只要開 SSH tunnel 時可以使用
指令說明
ssh 指令參數說明

執行以上指令後,如果沒有出現錯誤訊息,則代表 SSH tunnel 已建立。

連線 phpMyAdmin

在瀏覽器上輸入 127.0.0.1:8888/phpmyadmin,即可開啟位於 VM instance 的 phpMyAdmin 網頁管理畫面。

比較特別的是我在瀏覽器上輸入上述網址時,瀏覽器會先幫我開啟 ,127.0.0.1/phpmyadmin 的網頁,並且回報說:

無法連上這個網站
127.0.0.1 拒絕連線
ERR_CONNECTION_REFUSED

需要在網址的地方再次手動輸入 :8888 並按下 Enter 才行,原因需要再確認。

References

Bitnami 的說明文件:Connect To PHPMyAdmin


已發佈

分類:

作者:

標籤:

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *