EasyApache PHP Intl is linked to ICU 67 while ea-libicu 77.1 is installed — IntlDateFormatter uses old ICU TZDB 2019c
Hello,
I am investigating a timezone issue on a cPanel / EasyApache 4 server and would appreciate advice from the community or cPanel team.
OS: AlmaLinux 9.x
The issue appears to be related to PHP Intl / ICU timezone data used by EasyApache PHP.
The operating system timezone database is current, but PHP Intl is still using very old ICU timezone data.
Current PHP test results:
PHP version tested: 8.5.6
PHP timezone database: 0.system
Detected system tzdata version: 2026b-rearguard
Intl loaded: yes
ICU version: 67.1
ICU data version: 67.1
ICU timezone database: 2019c
The installed EasyApache ICU package is:
ea-libicu-77.1-1.1.2.cpanel.x86_64
However, the EasyApache PHP Intl extension does not appear to be using ea-libicu 77.1.
For PHP 8.5:
ldd /opt/cpanel/ea-php85/root/usr/lib64/php/modules/intl.so | grep -i icu
returns:
libicuio.so.67 => /lib64/libicuio.so.67
libicui18n.so.67 => /lib64/libicui18n.so.67
libicuuc.so.67 => /lib64/libicuuc.so.67
libicudata.so.67 => /lib64/libicudata.so.67
For PHP 8.2:
ldd /opt/cpanel/ea-php82/root/usr/lib64/php/modules/intl.so | grep -i icu
also returns:
libicuio.so.67 => /lib64/libicuio.so.67
libicui18n.so.67 => /lib64/libicui18n.so.67
libicuuc.so.67 => /lib64/libicuuc.so.67
libicudata.so.67 => /lib64/libicudata.so.67
So even though ea-libicu 77.1 is installed, both ea-php82 and ea-php85 Intl extensions are linked to ICU 67 from /lib64.
The practical problem is that PHP DateTime / DateTimeZone uses the current system tzdata, but IntlDateFormatter uses ICU timezone data, and ICU TZDB is still 2019c.
This can cause incorrect formatted times for timezones that had DST or timezone rule changes after 2019. One example is Africa/Cairo, where formatted times through IntlDateFormatter can be off by one hour.
Changing the PHP version does not solve the issue, because both ea-php82 and ea-php85 appear to be linked to the same old ICU 67 libraries.
My questions:
-
Is this expected behavior in EasyApache 4?
-
Should ea-phpXX-php-intl be linked to ea-libicu 77.1 instead of /lib64/libicu*.so.67?
-
Is there an official cPanel-supported way to rebuild or update ea-phpXX-php-intl so that PHP Intl uses newer ICU data?
-
Is there a safe supported workaround to update the ICU timezone data used by IntlDateFormatter without manually replacing ICU .so symlinks?
-
Would using ICU_TIMEZONE_FILES_DIR be considered safe/supported in a cPanel PHP-FPM environment?
I want to avoid unsafe fixes such as manually replacing libicu.so.67 symlinks with libicu.so.77, because that could break PHP or system packages.
Expected final result:
PHP DateTime should continue using current system tzdata, and PHP Intl / IntlDateFormatter should use a newer ICU timezone database instead of 2019c.
Any guidance would be appreciated.
-
Hey there! For some reason I didn't see this yesterday so it slipped through the cracks - sorry about the delay.
I did confirm the issue and filed case CPANEL-53972 with our development team so they can examine this. I have also linked this thread to the case internally so if I hear an update on my end I'll be sure to post!
0
Please sign in to leave a comment.
Comments
1 comment