apcu

Corriger un problème de cache APCu pour PHP CLI après la mise à jour nextcloud 21 (debian)

Suite à la mise à jour de ma bonne vieille instance Nextcloud vers la version 21, j’ai noté que les tâches cron n’étaient plus exécutées. Cependant, à part cette alarme, il n’y avait pas de problème particulièrement bloquant de remonté par l’auto-diagnostique de l’application.

En creusant un peu, on voit qu’en fait, il y a un problème avec l’utilitaire php occ, qui génère l’erreur ci-dessous dès qu’on l’invoque:

sudo -u www-data php occ maintenance:mode --on
PHP Warning: Module 'apc' already loaded in Unknown on line 0
An unhandled exception has been thrown:
OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

Le problème se situe donc avec l’interpréteur php version CLI, et non avec les modules pour apache, ce qui explique que l’auto-diagnostique de Nextcloud ne remonte pas d’alerte pour ce problème.

Pourtant, le module de cache APCu semble bien activé pour PHP CLI :

ls -1 /etc/php/7.3/cli/conf.d

10-mysqlnd.ini
10-opcache.ini
10-pdo.ini
15-xml.ini
20-apcu.ini
20-bcmath.ini
20-bz2.ini
20-calendar.ini
20-ctype.ini
20-curl.ini
...

Heureusement, comme souvent, le forum d’entre-aide du projet Nextcloud m’a sorti de ce mauvais pas. En effet, en consultant la contenu du fichier de configuration du module de cache APCu pour php, on remarque qu’il n’y a pas de paramètres:

cat /etc/php/7.3/mods-available/apcu.ini

extension=apcu.so

En ajoutant les lignes apc.enabled=1 et apc.enable_cli=1, tout rentre dans l’ordre.

cat /etc/php/7.3/mods-available/apcu.ini

extension=apcu.so
apc.enabled=1
apc.enable_cli=1

J’en conclus donc que le module de cache APCu n’a jamais fonctionné sur mon instance Nextcloud, et que depuis la version 21, l’utilitaire occ en a besoin obligatoirement.

o/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *