有的,您的 mysql、php 和 phpMyAdmin 同樣存在時區不同步的問題。
在 Docker 預設環境下,幾乎所有官方鏡像(Image)內部都是使用標準的 UTC+0 時區。如果放著不調整,在這些服務中會遇到以下幾種困擾:
pure-mysql(資料庫)NOW() 或 CURDATE() 等內建時間函數,寫進資料庫的時間會硬生生少 8 小時。php-for-wordpress 等(PHP 容器)error.log(錯誤日誌)時間會是 UTC。未來如果網頁發生錯誤(如白畫面、外掛衝突),您去查日誌會很難跟當下的真實時間對齊,增加排障(Debug)的難度。pure-pma (phpMyAdmin)只要像剛才調整 Nginx 一樣,修改您的 docker-compose.yml,將這三個服務也都補上 TZ=Asia/Taipei 與 /etc/localtime 的掛載即可。
請打開您的 docker-compose.yml,依序在各個服務下補上設定:
services:
pure-mysql:
# ... 您原本的其他設定 ...
environment:
- TZ=Asia/Taipei # 修正資料庫內部時區
volumes:
- /etc/localtime:/etc/localtime:ro # 同步主機時間
php-for-wordpress:
# ... 您原本的其他設定 ...
environment:
- TZ=Asia/Taipei # 修正 PHP 內部時區
volumes:
- /etc/localtime:/etc/localtime:ro
pure-pma:
# ... 您原本的其他設定 ...
environment:
- TZ=Asia/Taipei # 修正 phpMyAdmin 內部時區
volumes:
- /etc/localtime:/etc/localtime:ro
(提示:您的 pure-mysql-longfu、php-for-wordpress-longfu、php-for-practice 也要記得一併補上喔!)
修改完成後,同樣執行以下指令重啟所有容器:
docker compose down && docker compose up -d
這三個服務中,phpMyAdmin (pure-pma) 也是很容易被駭客用工具暴力破解密碼的目標。如果您想防護 phpMyAdmin: