【再発】nextcloudのバックグラウンドジョブが動かない

実は以前うっかりmemcachedを削除したせいでnextcloudのバックグラウンドジョブが動かなくなったことがあったのですが、今回またまたバックグラウンドジョブが動かない現象に見舞われました。

結論から先に書いてしまうと、peclでインストールしたapcuモジュールを有効にするために必要な設定が足りてなかったというのが原因でした。

ある事情からlightsailインスタンスのスケールダウンのため、移行用サーバを構築していたのですが、このときについ出来心で既存のphp7.4からphp8.0に変更しました(amazon-linux-extraにあるんだから大丈夫でしょう的発想)。
ただ、7.4であればrpmでインストールできたいくつかのphpモジュールが競合でインストールできなくなったので、そこはおとなしくpeclでインストール。実はここに落とし穴がありました。

redisとかmemchachedとかのモジュールについてはそれぞれのモジュールを起動するための設定だけphp.iniまたはphp.dフォルダ内のiniファイルにあればいいのですが、apcuについては設定が必要な部分が他にあるのですが、それを意識せずにモジュール起動のための設定のみiniファイルに記載していたためモジュールがロードできないという現象が発生しました。

[apcu]
extension=apcu.so
apc.enabled=1
apc.enable_cli=1
apc.shm_size=32M
apc.ttl=7200
apc.serializer=php

というわけで、上の様に設定を追加(実際にはモジュール毎に別ファイルにしている)してphp-fpmを再起動することでapcuのロードを確認。ちなみにapcuがロードされているかどうかについては、

php -i | grep -i apcu

を実行し、その結果に

APCu Support => Enabled

があればOK。ちなみにロードされていないときはEnableのところがDisabledになります。

以上、備忘まで

No tags for this post.

Linux