Correction de l'avertissement Nextcloud « Le cache PHP OPcache n'est pas correctement configuré ».

Si Nextcloud signale « Le cache PHP OPcache n'est pas correctement configuré » , la solution n'est pas de copier-coller un long bloc de configuration trouvé sur un ancien forum. Commencez par identifier la limite ou le paramètre OPcache qui pose problème à Nextcloud, puis modifiez la configuration PHP réellement utilisée par votre serveur web.

Dans la documentation d'administration de Nextcloud 35, OPcache est considéré comme une couche de performance PHP essentielle. Nextcloud indique que son panneau d'administration affiche un avertissement lorsque la limite de taille d'OPcache dépasse 90 % de sa capacité allouée. Il exige également la conservation des commentaires du code mis en cache. La documentation PHP détaille les directives pertinentes et leurs valeurs par défaut. Ces informations vous permettent d'optimiser OPcache en toute sécurité : augmentez uniquement la ressource limitée, conservez les comportements requis activés et évitez les modifications susceptibles de compliquer les mises à jour, sauf raison impérieuse.

Vue d'ensemble de l'administration de Nextcloud montrant un avertissement de configuration PHP OPcache en haut de la page.
Cet avertissement doit être considéré comme un indice de diagnostic : identifiez la contrainte OPcache spécifique avant de modifier les limites de mémoire ou de nombre de fichiers.

Que signifie généralement l'avertissement OPcache de Nextcloud ?

OPcache stocke le bytecode PHP compilé en mémoire partagée, évitant ainsi à PHP de devoir analyser et compiler les mêmes fichiers d'application à chaque requête. Nextcloud présente cela comme une fonctionnalité améliorant les performances, et PHP intègre Zend OPcache depuis la version 5.5.

L'avertissement peut apparaître pour plusieurs raisons. Les cas les plus fréquents sont : la capacité d'OPcache est presque saturée, OPcache est désactivé pour l'API Web ou un comportement requis, comme la conservation des commentaires, a été modifié. Le guide de configuration actuel de Nextcloud indique qu'un avertissement de dimensionnement s'affiche lorsque la limite de taille d'OPcache dépasse 90 % de son allocation, et il l'exige explicitement opcache.save_comments = 1.

Références officielles : Guide de réglage du serveur Nextcloud et d’OPcache , notes de configuration PHP pour Nextcloud et configuration d’exécution PHP OPcache .

Choisissez la solution en fonction de l'avertissement, et non un blocage unique.

SituationMeilleure première modificationCompromis
La mémoire OPcache dépasse le seuil d'alerte de Nextcloud.Augmenter opcache.memory_consumptionmodérémentUtilise davantage de RAM partagée, mais réduit le renouvellement du cache.
Les cordes internes sont presque pleinesAugmenteropcache.interned_strings_bufferConsomme davantage de mémoire partagée ; augmenter les limites non liées n'apporte aucun avantage
Les emplacements de scripts/fichiers mis en cache sont presque pleins.Augmenteropcache.max_accelerated_filesUne table de hachage plus grande utilise plus de mémoire
OPcache est désactivéConfiguration opcache.enable=1PHP pour le WebNormal et recommandé pour Nextcloud ; vérifiez le SAPI correct
opcache.save_commentsétait désactivéEnsembleopcache.save_comments=1Il n'existe aucune raison valable, spécifique à Nextcloud, de désactiver cette fonctionnalité ; Nextcloud exige la conservation des commentaires.

PHP indique actuellement des valeurs par défaut de 128 Mo pour opcache.memory_consumption`<nom_du_serveur>`, 8 Mo pour opcache.interned_strings_buffer`<nom_du_serveur>` et 10 000 Mo pour ` opcache.max_accelerated_files<nom_du_serveur>`. Ces valeurs sont données à titre indicatif et ne constituent pas des cibles universelles pour Nextcloud. Un petit serveur personnel peut fonctionner correctement avec des valeurs proches de celles-ci, tandis qu'une installation plus importante avec de nombreuses applications peut nécessiter une marge de manœuvre plus importante.

Étape 1 : Vérifier quelle configuration PHP Nextcloud utilise réellement.

Cette étape permet d'éviter de nombreuses corrections infructueuses. Nextcloud indique que le serveur web et PHP en ligne de commande peuvent charger des fichiers de configuration différents. Sur les systèmes de type Debian et Ubuntu, les chemins courants incluent `/etc/php/config/php`, `/etc/php/config/php` /etc/php/<version>/fpm/php.iniet /etc/php/<version>/apache2/php.ini`/ etc/php/config/php` /etc/php/<version>/cli/php.ini.

Exécutez la commande php --inipour consulter la configuration de l'interface de ligne de commande (CLI), mais ne présumez pas qu'il s'agit du même fichier que celui utilisé par PHP-FPM ou Apache. Pour l'interface web SAPI, n'utilisez une phpinfo()page temporaire que si vous pouvez la protéger et la supprimer immédiatement, ou examinez la configuration de votre pool/service PHP-FPM et les fichiers de modules spécifiques à votre distribution.

Recommandation : si Nextcloud est exécuté derrière Nginx ou Apache avec PHP-FPM, modifiez la configuration OPcache de FPM. Si Apache utilise mod_php, modifiez sa configuration PHP. Veillez à ce que la configuration de l’interface de ligne de commande (CLI) reste cohérente lorsque les tâches en arrière-plan requièrent le même comportement, mais n’oubliez pas que l’avertissement du navigateur est généré par le chemin de la requête web.

Étape 2 : Modifiez le plus petit ensemble de directives OPcache qui résout le problème.

Éditeur de texte affichant un fichier de configuration OPcache avec les directives enable, memory, interned strings, accelerated files et save comments.
Modifiez la configuration OPcache utilisée par l'API Web. Augmentez uniquement la ressource limitée au lieu de copier aveuglément une valeur prédéfinie surdimensionnée.

Un exemple prudent pour un serveur modeste est présenté ci-dessous. Les valeurs numériques sont données à titre indicatif et ne constituent pas des garanties :

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.save_comments=1

Si Nextcloud indique que la mémoire OPcache est presque pleine, augmenter la mémoire de 128 Mo à 256 Mo peut constituer une modification progressive raisonnable si le serveur dispose de suffisamment de RAM libre. Si l'avertissement concerne plutôt les chaînes internées ou les scripts mis en cache, il est préférable d'augmenter la limite de ces éléments plutôt que la mémoire seule. Sur un VPS aux ressources mémoire limitées, passer directement à 512 Mo risque de réduire la RAM disponible pour les processus PHP-FPM, la base de données, Redis et le système d'exploitation.

Qu’en est-il des paramètres de revalidation ?

Le guide d'optimisation actuel de Nextcloud indique que PHP vérifie par défaut les modifications apportées aux scripts mis en cache toutes les deux secondes, et ne recommande pas de modifier ce comportement par défaut pour tous les utilisateurs. Augmenter la fréquence opcache.revalidate_freqde vérification peut réduire le nombre de vérifications du système de fichiers, mais cela a un impact sur les performances : les mises à jour et les modifications apportées aux applications config.phppeuvent prendre plus de temps avant d'être visibles. Désactiver complètement la validation de l'horodatage est une solution plus radicale et peut laisser du code ancien actif jusqu'à ce que l'OPcache soit vidé manuellement ou que PHP soit redémarré.

Pour la plupart des administrateurs qui cherchent simplement à supprimer l'avertissement, il est conseillé de laisser le système fonctionner normalement opcache.validate_timestamps, opcache.revalidate_freqsauf s'ils comprennent le processus de déploiement. Nextcloud signale spécifiquement que des comportements inhabituels après les mises à niveau peuvent être dus à du code mis en cache obsolète suite à une modification de la revalidation.

Étape 3 : Redémarrez le service PHP approprié

Après avoir modifié un fichier INI, redémarrez ou rechargez le processus PHP qui héberge Nextcloud. Par exemple, systemctl restart php8.2-fpmpour PHP-FPM ou Apache lorsque mod_php est utilisé, redémarrez-le. Remplacez la version et le nom du service par ceux utilisés par votre système.

Cela est d'autant plus important si vous avez modifié le comportement de revalidation. Le redémarrage du service approprié garantit le chargement de la nouvelle configuration OPcache et lève toute ambiguïté concernant le bytecode obsolète.

Étape 4 : Vérifiez les valeurs, mais vérifiez également l’API Web.

Terminal affichant la sortie des commandes php --ini et php -i OPcache avec l'état activé et les valeurs de configuration clés.
Les vérifications en ligne de commande sont utiles pour trouver les fichiers INI et confirmer la syntaxe, mais l'interface SAPI Web peut charger une configuration différente.

Voici quelques vérifications utiles en ligne de commande :

php --ini
php -i | grep -i opcache

Ces commandes permettent de confirmer que PHP reconnaît les directives, mais elles ne valident que la configuration de l'interface de ligne de commande (CLI). Si l'avertissement Nextcloud persiste, comparez la configuration chargée de l'API web avec le résultat de la CLI. Ceci est particulièrement important sur les systèmes qui gèrent des arborescences cliINI distinctes .fpmapache2

Étape 5 : Revérifier Administration > Vue d’ensemble

Vue d'ensemble de l'administration de Nextcloud sans l'avertissement OPcache et avec les indicateurs d'état système normaux.
Après avoir rechargé PHP, actualisez Administration > Vue d'ensemble. L'avertissement OPcache devrait disparaître une fois que l'API Web utilise les limites et les paramètres requis.

Après le redémarrage du service PHP, actualisez la vue d'ensemble de l'administration Nextcloud. Si l'avertissement disparaît, la configuration est correctement prise en compte par l'API SAPI appropriée et le seuil signalé n'est plus dépassé.

Si le problème persiste, n'augmentez pas les valeurs de manière aléatoire. Vérifiez successivement les quatre points suivants : si vous avez modifié le bon fichier INI, si un autre fichier INI chargé ultérieurement remplace votre paramètre, si le service PHP concerné a été redémarré et si l'avertissement fait référence à une ressource OPcache différente de celle que vous avez modifiée.

Quelle quantité de mémoire OPcache devez-vous allouer ?

Il n'existe pas de valeur optimale unique. L'objectif est de disposer d'une marge suffisante pour que le cache ne soit pas constamment saturé, sans pour autant pénaliser le reste de l'infrastructure. Pour un petit VPS, il est conseillé de commencer par une valeur prudente et de surveiller la consommation de mémoire. Pour une instance hébergeant de nombreuses applications ou une empreinte mémoire PHP importante, 256 Mo, voire plus, peuvent se justifier si l'utilisation réelle d'OPcache révèle que 128 Mo sont insuffisants. Sur un serveur de grande capacité, le dimensionnement de la mémoire doit être envisagé en tenant compte du nombre de processus PHP-FPM et des autres services partagés.

La comparaison pratique est simple : une plus grande quantité de mémoire OPcache réduit les évictions de cache et les recompilations, tandis qu’une quantité moindre libère de la RAM pour les processus PHP et les bases de données exécutés simultanément. Choisissez en fonction de votre utilisation et des alertes de Nextcloud, et non en fonction de la capacité maximale de votre serveur.

Erreurs courantes qui font que l'avertissement persiste

  • Modification du PHP en ligne de commande uniquement : le navigateur utilise toujours PHP-FPM ou mod_php.
  • Augmenter la mauvaise limite : plus de mémoire ne résout pas le problème d’une table de fichiers accélérés pleine.
  • Oublier le redémarrage : le processus PHP en cours d’exécution peut encore contenir les anciennes valeurs INI.
  • Désactivationopcache.save_comments : Nextcloud exige que les commentaires soient conservés.
  • Copie d'extraits de réglages obsolètes : les anciens guides peuvent recommander des paramètres de revalidation agressifs susceptibles de créer des problèmes de mise à niveau.

Approche recommandée par type de serveur

Petit serveur Nextcloud personnel : conservez les paramètres de revalidation par défaut, préservez les commentaires et n’augmentez la limite que lorsqu’elle dépasse réellement le seuil. Cela minimise la consommation de RAM et les risques d’incidents.

Serveur multi-utilisateurs très sollicité : surveillez la consommation d’OPcache et prévoyez une marge de sécurité supplémentaire aux endroits où l’alerte d’administration indique une forte pression. Coordonnez la mémoire OPcache avec le dimensionnement des workers PHP-FPM afin d’éviter qu’une optimisation n’entraîne une saturation de la mémoire système.

Hébergement géré ou image conteneur : il convient d’identifier au préalable les paramètres PHP à modifier. La modification d’un fichier dans un conteneur éphémère peut entraîner sa disparition après un redéploiement, tandis que le fournisseur peut exposer des valeurs INI personnalisées via son panneau de contrôle ou la configuration de l’environnement.

Vérification finale

Une solution correcte comporte trois éléments : le processus PHP web de Nextcloud doit avoir OPcache activé, le comportement requis doit opcache.save_comments=1être préservé et la ressource OPcache concernée, qui était presque saturée, doit désormais disposer d'une marge suffisante. Une fois ces conditions remplies et PHP rechargé, l'avertissement devrait disparaître sans nécessiter d'allocations de mémoire excessives ni de modifications risquées de la validation du cache.

Laisser un commentaire

Résolution des problèmes de forte utilisation du processeur dans Jitsi Meet sur les navigateurs clients

Résolution des problèmes de forte utilisation du processeur dans Jitsi Meet sur les navigateurs clients

Diagnostiquez les pics d'utilisation du processeur du navigateur Jitsi Meet et réduisez la charge client en vérifiant les vignettes vidéo, les effets de la caméra, les graphismes du navigateur et les paramètres de l'hôte.

Comment surveiller les indicateurs de Jitsi Videobridge avec Prometheus et Grafana

Comment surveiller les indicateurs de Jitsi Videobridge avec Prometheus et Grafana

Suivez l'état de santé, la charge des conférences et le trafic de Jitsi Videobridge grâce à son point de terminaison Prometheus intégré, puis explorez et représentez graphiquement les données dans Grafana.

Comment configurer un nom de domaine personnalisé pour Jitsi Meet Docker

Comment configurer un nom de domaine personnalisé pour Jitsi Meet Docker

Configurez un domaine personnalisé pour Jitsi Meet Docker avec DNS, PUBLIC_URL, HTTPS, Let's Encrypt, ports de pare-feu, paramètres NAT et vérification de bout en bout.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Correction de l'avertissement Nextcloud « Le cache PHP OPcache n'est pas correctement configuré ».

Correction de l'avertissement Nextcloud « Le cache PHP OPcache n'est pas correctement configuré ».

Découvrez comment diagnostiquer et corriger l'avertissement de configuration PHP OPcache de Nextcloud en vérifiant le SAPI PHP actif, les limites de dimensionnement, les commentaires et les paramètres de revalidation.

Résolution des erreurs de migration de la base de données Kopano après une mise à niveau de MySQL

Résolution des erreurs de migration de la base de données Kopano après une mise à niveau de MySQL

Résolvez les problèmes de migration de la base de données Kopano après une mise à niveau de MySQL ou MariaDB en vérifiant les sauvegardes, les versions du serveur, les modes SQL, le jeu de caractères, l'état du schéma et les journaux.

Comment configurer l'authentification LDAP et Active Directory dans Nextcloud

Comment configurer l'authentification LDAP et Active Directory dans Nextcloud

Connectez Nextcloud à LDAP ou Active Directory avec un transport sécurisé, des filtres d'utilisateurs et de groupes, des attributs de connexion et un déploiement testé.

Correction des notifications Android Element sans services Google : Guide UnifiedPush

Correction des notifications Android Element sans services Google : Guide UnifiedPush

Corriger les notifications Element Android sur les téléphones dé-Google en configurant UnifiedPush, les autorisations Android, les paramètres de la batterie et des tests de vérification fiables.

Résoudre l'avertissement « Base de données incomplète » de Nextcloud

Résoudre l'avertissement « Base de données incomplète » de Nextcloud

Pour supprimer l'avertissement relatif aux index de base de données manquants de Nextcloud, utilisez la commande officielle occ. Commencez par sauvegarder vos données, prévisualisez les modifications, puis lancez la réparation et vérifiez le résultat.

Comment configurer l'authentification unique (SSO) avec Keycloak dans Element Web

Comment configurer l'authentification unique (SSO) avec Keycloak dans Element Web

Configurez l'authentification unique Keycloak pour Element Web en connectant OIDC à Synapse, en définissant l'URL de rappel exacte, en mappant les revendications de l'utilisateur et en testant la déconnexion.