我不确定这是针对 serverfault 还是 stackoverflow 的问题,但它似乎与服务器配置有很大关系。
我们在芝加哥有一台服务器,服务器时钟采用芝加哥时间。但由于公司位于加利福尼亚州,因此使用太平洋时间似乎更合理。
当服务器时间为芝加哥,并且 php.ini 指令 date.timezone 设置为“America/Los_Angeles”时会发生什么情况?这会对写入 mysql 的日志、错误日志等产生什么影响?
我查看了 Apache 错误日志,正如我所料,php 指令不会影响它。时间均为服务器时间。
谢谢。
答案1
PHP 脚本和 PHP 本身将使用太平洋时间,但其他一切(包括 Apache 和 MySQL)将使用系统定义的时区。
答案2
只有 PHP 会使用不同的时区。
由于您还询问这将如何影响写入的日志到MySQL(而不是经过MySQL):
这取决于您的应用程序。
如果您登录到 MySQL 并使用 MySQL 函数(例如 NOW()),它将使用系统时区。
如果您通过 PHP date() 函数生成日期并将其写入 MySQL,则这些日期将位于 php.ini 指定的时区中。
如果您将它们混合在一起来存储时间,则显然会遇到一些问题...
我总是尝试让一台服务器上的所有应用程序具有相同的时区。
答案3
需要补充的是,无论设置如何,php 自己的error_log
(如果指定)都会记录在 中。UTC+0
date.timezone