Linux

 最初に、nextcloud21.03以降のバージョンで同様の問題が発生している結論だけ必要な方は、php.iniに apc.enable_cli=1 を追記してWEBサーバを再起動してください。

 まあ、タ イトルの通りなんですが、久々にnextcloudの管理画面にログインして状態を確認していると、バックグラウンドジョブがここしばらく動いていないっぽいことが判明。
 以前(半年以上前だが)、正常に動くこと自体は確かめていたのでnextcloudのアップデートで何か起きたのかと思い、調査開始。

 手動でcron.phpを叩いてみたが即終了。正常動作時は少し処理待ちがあった記憶があるのでこれは動いていないと判断し、occコマンドで動作確認。
 いつものように一時的にWEBサーバのアカウントでログインし ”php occ update:check”を叩くと、

OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

とエラーが返ってくる。

 ん、memcache周りで何かあるんかと思いチェックしてみると、信じられないことにmemcachedがインストールされていないことが発覚。多分、php7.4共存環境の解消後とかに誤って削除しちゃったんだろう。

 というか、なんでそれで動いてんだよnextcloud。まあ、多分redis使ってたからだよね。

 というわけで、memcachedをインストールしサービスを有効にし起動、その後nginxとphp-fpmのサービスを再起動して再度occによるアップデートチェックを実施。
 これにて一件落着かと思いきや、やはり同じエラーが・・・

 ほかにも使用モジュールの動作確認などしてみたが、異常がなかったので仕方なくnextcloudのフォーラムで上記エラーについてのトピックを漁る。

 すると、nexctcloud21.03以降のバージョンで同様の問題が発生していることを確認。トピックから解決策を確認するとphp.iniにapc.enable_cli=1を追記することで対処可能らしい。

 というわけで、上記設定を行い再度occのアップデートチェックを実施。今度は正常に完走。その後、手動でcron.phpを叩いて正常動作となったことを確認し、管理画面上でもバックグラウンドジョブが正常に実行され続けていることを確認。
 めでたしめでたし。