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を叩いて正常動作となったことを確認し、管理画面上でもバックグラウンドジョブが正常に実行され続けていることを確認。
 めでたしめでたし。

Linux

nextcloud20がリリースされていることに気づいたので早速インストールしてみる。
管理者アカウントでログインし、設定から概要を開き、アップデートチャンネルを安定板からベータにしてしばし待機。
バージョン19系のベータ版が先に出現したのでそちらを適用し、再度確認したところ20系へのアップデートが表示されたので実行。
アップデート自体は特に問題なく完了したっぽいのだが、アップデート後のセキュリティ&セットアップ警告にてDBに一部のプライマリキーがないので作成しろ的なメッセージが出ていた。
メッセージで示されたコマンドを実行したが、occに”そんなコマンドはねぇ”と怒られて詰む。
そして、10分ほど考えた結果、その次の瞬間nextcloudフォルダがサーバから消えた。

まあ、よくわからんエラーが出て直せないならいっそ入れ直ししてしまえということで。
フォルダ削除後、nginxのnextcloud用コンフィグを確認し、20系のインストール例に従い不足していた設定を追加。
その後、phpMyAdminよりnextcloudデータベース内の全テーブルをドロップ。
仕上げにローカルのデータ共有フォルダをリネーム。
そして、nginxを再起動後nextcloudにアクセスして初期設定してサービス開始、共有用ユーザを作成。
その後、キャッシュの設定(Redisの使用)を行い、nginx、php-fpmを再起動して再度管理画面にログインして問題ないことを確認。
そして、実際にフォルダの共有を開始。

PC上のnextcloudクライアントで一旦アカウントを削除し、再度接続。
この際にローカルの共有フォルダをどこにするか尋ねられたので、横着して既存のNextcloudフォルダを指定したが”空じゃない”のでダメ出しを食らう。
そこで、ファイルの中身をすべて別フォルダに移動したのちNextcloudフォルダを再度指定するがこれもダメ。
最終的にいったんNextcloudフォルダを削除かリネームして新規フォルダとしてNextcloudフォルダを使用できる状態にしないとだめだった。
そんなこんなで無事共有設定を完了し、ファイルをNextcloudフォルダに戻し共有開始。
問題なく作業完了。

少々疲れた。