自鯖のNextcloudを23に更新し、occ db:add-missing-indices
を実行しようとしたらOCP\HintException
なる例外が発生した。
$ sudo -u www php /path/to/occ db:add-missing-indices An unhandled exception has been thrown: OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
occ単発で動かしても同様で、根本的に何かが悪いっぽい。
助けて~ぐーぐるせんせーってことで、ググったら公式にそれっぽいissueが上がっていた。
いわく、apc.enable_cli=1
を付けて実行する必要があるとのこと。APCuを明示的に有効化する必要がある雰囲気?とりあえず言われたとおりにやってみる。
$ sudo -u www php --define apc.enable_cli=1 /path/to/nextcloud/occ db:add-missing-indices Check indices of the share table. (中略) oc_properties table updated successfully.
無事動いた。
改めてNextcloudのマニュアルを見てみると、Memory cachingのAPCuのところにちゃんと書いてあった。
デフォルトではCLIからの実行時はAPCuが無効化されているそうで、明示的に有効化しなきゃならんとのこと。NextcloudのCronジョブにも影響するので、そっちの方も個別に対応するか、php.ini
に先のapc.enable_cli=1
を追加しておく必要がある。
なるほどなー、だから管理画面に「長期間バックグラウンドジョブが動いていないようです」メッセージが表示されてたのかー。