是的,必須調成一致。

如果 NGINX、MySQL 和 PHP 的時間(與時區)不一致,會導致系統出現嚴重的邏輯混亂與維運困難。

為什麼一定要時間一致?


如何在 Docker-Compose 一次解決?

如果您是使用 docker-compose.yml 啟動這三個服務,最快且最建議的做法是在每個服務下同步掛載主機的時區檔案,並設定環境變數。

以下是標準的設定範例:

version: '3.8'

services:
  nginx:
    image: nginx:latest
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      - TZ=Asia/Taipei

  php:
    image: php:8.2-fpm
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      - TZ=Asia/Taipei

  mysql:
    image: mysql:8.0
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - TZ=Asia/Taipei

(注意:PHP 另外還受到 php.ini 內的 date.timezone 影響,若設定環境變數後時間仍不對,需修改 php.ini 設定為 date.timezone = "Asia/Taipei")

如果您想看實際的設定調整,可以分享:

我可以直接幫您修改好設定程式碼。