laravel 如何修复:请求时间和当前时间之间的差异太大

9ceoxa92  于 2023-04-22  发布在  其他
关注(0)|答案(5)|浏览(350)

我从AWS收到这个错误:
App\Services\Exceptions\抛出异常,并显示消息“Error in updated facebook event in the systemError executing“PutObject”on“n.jpg”;AWS HTTP错误:客户端错误:PUT n.jpg导致403 Forbidden响应:RequestTimeTooSkewed reque(truncated...)RequestTimeTooSkewed(client)之间的差异:请求时间与当前时间相差太大-RequestTimeTooSkewed请求时间与当前时间相差太大2018 - 04 - 03 T075710 Z2018 -04- 03 T06:57:48 Z900000”
它说请求时间是:7:57 am,服务器时间为:6:57 am
但是我的本地机器时间是:9:57 am(不使用vagrant或任何服务器)。
我的AWS在俄亥俄州,现在的时间是:2:57 am
我应该做什么更改来修复此错误?
我正在构建一个php/Laravel 5.5项目。

pdsfdshx

pdsfdshx1#

您需要更新AWS服务器和本地机器上的时间。最好的方法是运行ntpdate命令来同步时间。
命令:

sudo ntpdate -u in.pool.ntp.org
lqfhib0f

lqfhib0f2#

它说请求时间是:上午7:57,服务器时间为:早上6点57分。

服务器时间表示AWS服务器(S3)上的时间。

我的AWS在俄亥俄州,现在的时间是:凌晨2点57分。
这并不重要。AWS在协调世界时(UTC)上运行。各个地区的服务器不知道时间是什么,他们在哪里。

请求时间表示编码到请求中的时间戳,在代码运行的任何地方生成,在本例中可能是您的台式机/笔记本电脑。它以UTC编码。

但是我的本地机器时间是:上午9:57(不使用流浪者或任何服务器)。
一般来说,计算机--操作系统--有两个相互作用的概念来回答“现在几点了?”的问题--

  • 现在几点了?“““现在。
  • 当向用户显示时间时,我应该使用什么样的偏移量?偏移量是时区设置。

这两个都需要正确...否则,你的时钟可以同时:

  • 设置为错误的时间 * 和 *
  • 显示正确的时间

您的计算机认为它的时钟被设置为显示正确的当地时间,即UTC+2......因此在签署请求时,它从显示的“本地”时间中减去2小时(显示9:57,请求时间7:57)......但如果上午9:57是您的本地时间,那么您计算机上的时区设置是不正确的,因为您实际上是UTC+3,因为“服务器”(在亚马逊)的时间显示为6:57。
更正您的时区设置,然后将时钟调整一小时(如有必要)应可解决此问题。

91zkwejq

91zkwejq3#

对我来说,我在我的系统上打开了日光节约,再试一次,它工作了。我关闭了日光节约,因为使这里的时间晚了1个小时。
根据你在这个星球上的位置,对我起作用的是将我的系统时间减少了1个小时。

csga3l58

csga3l584#

我是如何解决这个问题的:
1.在运行docker-daemon/docker的主机上安装ntp

yum -y install ntp

1.添加NTP服务器

ntpdate -u in.pool.ntp.org

当主机系统时间正确时(与NTP服务器同步后),容器将自动更正时间。

j0pj023g

j0pj023g5#

在某些系统上,如果偏移量超过“panic threshold”(通常为1000秒),NTP将不会设置本地时钟。如注解中所述,ntpdate命令可能是处理此问题的最佳方法。或者可以手动设置本地时钟。但如果您这样做,理想情况下需要确保偏移量小于“step threshold”,通常只有0.128秒或0.125秒,否则可能需要900秒(典型的“失步阈值”)来经由时钟步同步。通常,同步花费大约oly240秒,而且不应该有硬的步骤。或者你可以禁用这个“安全”功能。小心“踩”(vs慢慢“管教”)时钟,特别是向后,可能会导致问题。

相关问题