tt-rssアップデート後、起動せず(解決)

TinyTiny RSSアップデートに気をつけよう

TinyTinyRSSことtt-rssをgit pullにて最新版へ更新したところ、下記のエラーで起動しなくなってしまいました

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

現時点での動作環境は

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

Internationalization (intl)関連のエラーなので、関係するパッケージを確認してみたが、既に導入済み(php73-php-intl)

色々と情報を探ってみたが、解決策が見つからず、 結局、更新前のバージョンに戻すことにした

どうやら、php.iniでintlモジュールを有効化する必要があったようです。

  • 既に、php-intlが導入済みなので、intlモジュールがどこにあるか確認
$ locate intl.so
/opt/remi/php73/root/usr/lib64/php/modules/intl.so
/usr/lib64/preloadable_libintl.so
  • php.iniで下記を追加
extension=/opt/remi/php73/root/usr/lib64/php/modules/intl.so
  • phpプログラム再起動 (私の場合はphp-fpmですが、Apacheとかnginxとか適宜)
  • intlモジュールの確認
php -m | grep -e intl
intl

intlの表示があればOK

この作業後、再度、tt-rssへアクセスしてみたところ、 正常に動作し、 管理者でログインするとDB更新の警告画面に進み、

DB更新すると、正式にアップデート完了となります

アップデートの要点

最終的に判明した要点は下記です

  • php-intlのパッケージがインストールされているか?
  • php.iniでphp-intlモジュールが有効になっているか?

解決に至るまでに、いろいろ調べてみたら、OwnCloudやCakePHPなどintl関連を必要とするものが今後増えてきそうです。

また、Docker上のtt-rssを更新させようとすると、今回の件でハマるかもしれませんね

補足

もし、git更新してしまい、どうしても解決しない場合は、元のバージョンに戻してみましょう

git reflogで履歴を見てみると、

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

git pullで動作しなくなる以前のリポジトリは、HEAD@{1}なので、下記のコマンドで元に戻す

$ git reset --hard HEAD@{1}