• We value your experience with Plesk during 2025
    Plesk strives to perform even better in 2026. To help us improve further, please answer a few questions about your experience with Plesk Obsidian 2025.
    Please take this short survey:

    https://survey.webpros.com/
  • On Plesk for Linux mod_status is disabled on upgrades to improve Apache security.
    This is a one-time operation that occurs during an upgrade. You can manually enable mod_status later if needed.

Question Update ICU version

Miller

Basic Pleskian
Server operating system version
CentOS Linux 7.9.2009
Plesk version and microupdate number
Version 18.0.55 Update #2
I need to update the ICU version on my Cento/Plesk install, for PHP 8.1.25 I currently have

ICU version => 50.2
ICU Data version => 50.2
ICU TZData version => 2018e
ICU Unicode version => 6.2

Does anyone have any update instructions?
 
Since I also like to keep ICU up to date, I have created a script that will automate downloading, making and installing the latest available ICU, then will download the php-intl binaries for all of the versions of PHP that are available in Plesk and install them, and will also automate restoring them every time Plesk updates PHP (and overwrites the php-intl module). Place the script in your /usr/local/bin folder, make it executable, and run it with sudo if not root. I use this on Ubuntu 24.04. Might possibly need some adjustments for other environments. The script does not touch the system ICU, it installs the latest ICU alongside the system ICU but ensures that Plesk PHP-FPM will use the latest ICU.
 
Since I also like to keep ICU up to date, I have created a script that will automate downloading, making and installing the latest available ICU, then will download the php-intl binaries for all of the versions of PHP that are available in Plesk and install them, and will also automate restoring them every time Plesk updates PHP (and overwrites the php-intl module). Place the script in your /usr/local/bin folder, make it executable, and run it with sudo if not root. I use this on Ubuntu 24.04. Might possibly need some adjustments for other environments. The script does not touch the system ICU, it installs the latest ICU alongside the system ICU but ensures that Plesk PHP-FPM will use the latest ICU.
This install-latest-icu-and-php-intl.sh script creates two other scripts in the /usr/local/bin folder:
  1. hook-plesk-php-intl.sh which only needs to be run once to install the service overrides that will ensure that the binaries are restored after Plesk updates PHP; you can optionally run it automatically when the install-latest-icu-and-php-intl.sh script has completed all other steps, or run it manually (you get a choice before the install-latest-icu-and-php-intl.sh script terminates)
  2. fix-plesk-intl.sh which is called by the service overrides whenever PHP-FPM is reloaded / restarted: if the php-intl binary does not correspond with the php-intl binary for the latest ICU, we restore the php-intl binary before PHP-FPM restarts. This way we ensure that the binary doesn't get overwritten by a Plesk update. No cron jobs needed, it's a simple service hook.
The install-latest-icu-and-php-intl.sh script is idempotent, so it will not download the latest ICU again if already downloaded and it won't make and install if already installed, and it won't download the corresponding php-intl binaries again if they are already downloaded. And it won't create the hook-plesk-php-intl.sh or fix-plesk-intl.sh scripts if they have already been created. So it's safe to re-run the script more than once. It ensures that the ICU shared libraries can be found by PHP, by adding a corresponding conf file to the /etc/ld.so.conf.d/ folder and running ldconfig.

I had done all this manually in the past few years, but then every time Plesk or sudo apt upgrade updated PHP I found that php-intl was getting overwritten and I had to start all over again. So I finally put together this script to automate the process and ensure that the php-intl binaries are always restored.

The script will detect which versions of PHP are available in Plesk, and download / install the php-intl binaries for those versions of PHP, and will install the service hooks for the corresponding php-fpm services.
 
Back
Top