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}