如何在 php7 (plesk onyx) 上升级 timezonedb/timelib?

How to upgrade timezonedb/timelib on php7 (plesk onyx)?

我在 Plesk Onyx 系统上使用 PHP 版本 7.0.31。

phpinfo() 显示给我:

date
date/time support: enabled
timelib version: 2016.02
"Olson" Timezone Database Version   0.system
Timezone Database   internal
Default timezone    Europe/Berlin

使用的 timelib 版本“2016.02”已过时,因此我需要将其升级到当前版本 2018.5 (https://pecl.php.net/package/timezonedb)。

怎么做? "pecl upgrade timezonedb" 没有成功,经过数小时的谷歌搜索和尝试,我一无所知...

上下文

我在公司解决了类似的问题,但与巴西的夏令时有关。我们所有使用 PHP 7.0.32 的服务器时间都错了 1 小时,而使用 PHP 7.1 的服务器工作正常。

我们的服务器 运行 在 AWS EC2 实例上运行。我们的时区是 America/Sao_Paulo值得注意的是,我们的主要目标是 "update timelib PHP extension",但我们发现这不是必需的,因为更新时区数据库版本足以解决我们的问题。

解决方案

为了解决那个过时的日期时间问题,我从 SSH 运行 以 root 用户身份登录了以下命令:

pecl7 install timezonedb

之后,我们需要将扩展​​名添加到我们的 PHP.INI 文件中。在我的例子中,它是从 /etc/php.ini 加载和定位的。要检查你的,只需创建一个 phpinfo.php 文件并检查你的机器从哪个位置加载 php.ini 文件:

然后,运行有点像:

nano /etc/php.ini

然后将以下行添加到 php.ini 文件的 最后一行 :

extension=timezonedb.so

为了检查更新是否成功,使用以下命令重启php / php-fpm:

service php-fpm restart

然后,让我们再次访问 PHPINFO 和...