两台服务器中的PHP相同时区不同分钟
Posted
技术标签:
【中文标题】两台服务器中的PHP相同时区不同分钟【英文标题】:PHP Same Timezone Different Mins in Both Servers 【发布时间】:2015-01-27 09:30:23 【问题描述】:我有 2 台服务器,其中我在测试脚本中有以下代码
<?php
date_default_timezone_set( "Europe/Athens" );
echo "TimeZone: " . date_default_timezone_get();
echo "<br />Current Time: " . date("Y-m-d H:i:s",time());
?>
我在两台服务器上上传了这个脚本,我在同一时间运行并且响应是:
服务器 1
TimeZone: Europe/Athens
Current Time: 2014-11-28 19:27:19
服务器 2
TimeZone: Europe/Athens
Current Time: 2014-11-28 19:21:08
您会注意到秒/分钟不一样。
为什么?
【问题讨论】:
这些是在同一个物理硬件上吗?服务器的时钟是否与任何东西同步? 因为时间来自服务器,而不是PHP?你检查过那些服务器上的时间吗? 【参考方案1】:系统时钟设置在不同的时间,仅此而已 - 至少其中一个不准确。大概其中一个或两个不同步。理想情况下,您应该与 NTP 之类的东西同步。
这不是你会在你的 PHP 代码中做的事情——这可能是询问服务器管理员的问题。
换句话说,您的代码 没问题,这是管理问题。这极不太可能是时区信息的差异。
【讨论】:
但是...我是服务器管理员 :D 。我怎样才能用命令或其他东西正确地同步它们? @BlackDream:这很难回答,因为我们对服务器一无所知,甚至不知道它们的操作系统。在这一点上,真的是 ServerFault 的一个问题……先做一些研究(说实话,搜索 ntp 和您的操作系统名称可能就足够了),然后询问 ServerFault 是否需要。服务器管理本身在这里是题外话。 你的服务器是基于linux的吗? 如果基于 linux:/usr/sbin/ntpdate -u 0.rhel.pool.ntp.org
这应该可以工作。如果你想每半小时更新一次时间,你也可以做一个 cron 工作例如:*/30 * * * * /usr/sbin/ntpdate -u 0.rhel.pool.ntp.org
以上是关于两台服务器中的PHP相同时区不同分钟的主要内容,如果未能解决你的问题,请参考以下文章
php网站部署两套代码在两台服务器上面,如何做到上传文件同步