Accueil
» ADMINISTRATEUR RÉSEAU
»
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é ».
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.
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.
Choisissez la solution en fonction de l'avertissement, et non un blocage unique.
Situation
Meilleure première modification
Compromis
La mémoire OPcache dépasse le seuil d'alerte de Nextcloud.
Augmenter opcache.memory_consumptionmodérément
Utilise davantage de RAM partagée, mais réduit le renouvellement du cache.
Les cordes internes sont presque pleines
Augmenteropcache.interned_strings_buffer
Consomme 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_files
Une table de hachage plus grande utilise plus de mémoire
OPcache est désactivé
Configuration opcache.enable=1PHP pour le Web
Normal et recommandé pour Nextcloud ; vérifiez le SAPI correct
opcache.save_commentsétait désactivé
Ensembleopcache.save_comments=1
Il 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.
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 :
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.
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
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.