tt-rss Won't Start After an Update: Enabling the PHP intl Module

Watch out when you update TinyTiny RSS

* This page contains promotional content

When I updated tt-rss, also known as TinyTinyRSS, to the latest version with git pull, it stopped starting up with the error below

PHP UConverter class is missing, it’s provided by the Internationalization (intl) module.

The environment it was running in at that point:

  • nginx : 1.16.1
  • PHP(php-fpm) : 7.3
  • mysql : 5.5.62

Since it is an error related to Internationalization (intl), I checked the package involved, but it was already installed (php73-php-intl)

I looked around for information but could not find a solution, so in the end I decided to roll back to the version before the update

It turns out that I needed to enable the intl module in php.ini.

  • Since php-intl is already installed, check where the intl module is
$ locate intl.so
/opt/remi/php73/root/usr/lib64/php/modules/intl.so
/usr/lib64/preloadable_libintl.so
  • Add the following to php.ini
extension=/opt/remi/php73/root/usr/lib64/php/modules/intl.so
  • Restart the php program (php-fpm in my case, but Apache or nginx as appropriate)
  • Check the intl module
php -m | grep -e intl
intl

If intl is shown, you are fine

After doing this I accessed tt-rss again, it worked normally, and logging in as the administrator took me to the DB update warning screen,

Once the DB is updated, the update is officially complete

The key points of the update

The points that finally became clear are these

  • Is the php-intl package installed?
  • Is the php-intl module enabled in php.ini?

While researching on the way to a solution, it looks like the number of things that need intl, such as OwnCloud and CakePHP, is going to grow from here on.

Also, if you try to update tt-rss on Docker, you may well get caught out by this same issue

Additional notes

If you have already updated with git and cannot solve it no matter what, try going back to the previous version

Looking at the history with git reflog,

$ git reflog
12a5429 HEAD@{0}: pull : Fast-forward
656475e HEAD@{1}: clone: from https://tt-rss.org/git/tt-rss.git

The repository before git pull broke it is HEAD@{1}, so revert with the command below

$ git reset --hard HEAD@{1}
oss  rss