Éliminez l'avertissement OPcache de Nextcloud en ajustant la limite appropriée

Pour faire disparaître l'avertissement « Le cache PHP OPcache n'est pas correctement configuré » de Nextcloud, ouvrez l'avertissement complet dans Paramètres d'administration → Vue d'ensemble, puis augmentez uniquement la limite du cache OPcache indiquée dans la configuration PHP utilisée par le serveur web. Redémarrez le service PHP correspondant et vérifiez à nouveau l'avertissement ; la modification de la configuration PHP en ligne de commande seule peut ne pas changer la configuration utilisée par Nextcloud.

Par exemple, si Nextcloud signale que le tampon des chaînes internées est presque plein, augmenter sa taille opcache.interned_strings_bufferde 16 à 32 Mo constitue un premier ajustement judicieux lorsque le serveur dispose de suffisamment de RAM. Un autre avertissement concernant les scripts mis en cache ou la mémoire partagée requiert un paramétrage différent.

Pourquoi Nextcloud affiche-t-il cet avertissement OPcache ?

OPcache stocke le bytecode PHP compilé en mémoire partagée, réduisant ainsi la quantité de compilation nécessaire pour les requêtes web répétées. Il réserve également de l'espace pour les chaînes internées, permettant à PHP de réutiliser des chaînes identiques. Ces capacités sont des limites distinctes ; augmenter l'une ne résout donc pas nécessairement une alerte concernant l'autre.

D'après la documentation d'optimisation du serveur Nextcloud 35 , le panneau d'administration signale un problème lorsque la taille d'OPcache dépasse 90 % de sa capacité allouée. Le message peut mentionner un tampon de chaînes internées presque plein, un nombre limité de scripts mis en cache ou une mémoire partagée insuffisante. Ce détail détermine la solution.

Nextcloud l'exige également opcache.save_comments=1, car il dépend de la préservation des commentaires du code PHP. Une extension OPcache désactivée ou la préservation des commentaires désactivée constitue donc un problème de configuration, et non un simple problème de dimensionnement du cache.

1. Identifier le contexte qui nécessite une attention particulière

Connectez-vous en tant qu'administrateur, accédez à Paramètres d'administration → Vue d'ensemble et lisez l'avertissement OPcache complet. Notez la directive exacte, le cas échéant. Ne présumez pas que chaque avertissement OPcache signifie que la taille du tampon des chaînes internées est insuffisante.

  • Le tampon de chaînes internes est presque plein : vérifiez opcache.interned_strings_buffer.
  • La mémoire partagée OPcache est presque pleine : vérifiez opcache.memory_consumption.
  • Scripts ou clés mis en cache approchant la limite : vérifiez opcache.max_accelerated_files.
  • OPcache désactivé ou commentaires non conservés : vérifiez opcache.enableet opcache.save_comments.

2. Trouvez la configuration PHP qui héberge Nextcloud.

Sur les serveurs Debian ou Ubuntu utilisant PHP-FPM, la configuration PHP est généralement organisée par version de PHP et API serveur. Par exemple, PHP 8.3 FPM peut lire les fichiers situés dans le répertoire `/var/php/php` /etc/php/8.3/fpm/conf.d/, tandis que le module PHP d'Apache peut utiliser `/var/php/ php` /etc/php/8.3/apache2/conf.d/.

Pour voir quels services PHP-FPM existent sur un hôte systemd, exécutez :

systemctl list-units --type=service 'php*-fpm.service'

Vérifiez les fichiers OPcache applicables en les remplaçant par votre version PHP installée :

sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/

Si aucun fichier n'est trouvé, examinez le répertoire principal php.iniet les conventions de packaging de votre distribution. Cette commande php --iniest utile pour identifier la configuration PHP en ligne de commande , mais la ligne de commande et PHP-FPM peuvent charger des paramètres différents.

Pour Docker ou Nextcloud All-in-One, examinez la configuration PHP à l'intérieur du conteneur Nextcloud et utilisez une méthode de configuration persistante prise en charge. La modification /etc/phpdes fichiers hôtes ne configure généralement pas PHP dans un conteneur ; toute modification apportée à un fichier de conteneur généré peut être annulée par sa recréation.

3. Augmenter la limite signalée sans modifier les paramètres non liés

Sauvegardez le fichier de configuration concerné avant toute modification. Sur une installation PHP-FPM classique sous Debian/Ubuntu, une méthode simple et maintenable consiste à ajouter une configuration locale dans le conf.drépertoire FPM de votre version de PHP. Vérifiez que ce répertoire est bien chargé par votre installation PHP-FPM avant de poursuivre.

Pour l' exemple de tampon de chaînes internées , créez ou modifiez une substitution locale telle que/etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini :

; Example for a warning about interned strings
opcache.interned_strings_buffer=32

Ici, 32cela signifie 32 Mo, et non 32 octets. Adaptez la valeur finale à l'utilisation réelle et à la RAM disponible.

Si l'avertissement mentionne une limite différente, utilisez l'exemple correspondant au lieu d'additionner aveuglément les trois :

; Example only: larger shared bytecode cache
opcache.memory_consumption=256

; Example only: allow more cached script keys
opcache.max_accelerated_files=20000

Les valeurs de opcache.memory_consumptionsont exprimées en mégaoctets, tandis que opcache.max_accelerated_filesspécifie une limite de clé de script. La documentation officielle de la configuration d'OPcache pour PHP explique leurs unités, leurs valeurs par défaut et les possibilités de modification.

Lorsque l'avertissement signale une désactivation d'OPcache ou l'absence de commentaires plutôt qu'un problème de capacité, vérifiez plutôt les paramètres suivants :

opcache.enable=1
opcache.save_comments=1

Ne désactivez pas la connexion opcache.validate_timestampsni ne prolongez considérablement le processus opcache.revalidate_freqpour ignorer cet avertissement. Nextcloud prévient qu'une revalidation tardive du cache peut empêcher la prise en compte immédiate des modifications de configuration et de mise à niveau.

4. Appliquer la nouvelle configuration

Pour un serveur d'exemple exécutant PHP 8.3 via PHP-FPM, commencez par valider la configuration du service, puis redémarrez le service correspondant pendant une courte fenêtre de maintenance :

sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm

Remplacez 8.3`<version>` par la version de PHP-FPM installée et vérifiez le nom de l'exécutable et du service avant d'exécuter l'une ou l'autre commande. Un redémarrage interrompt les requêtes traitées par ce pool. Sur Apache mod_php, le service concerné est Apache et non PHP-FPM ; pour les conteneurs, suivez la procédure de redémarrage ou de recréation documentée de votre déploiement tout en conservant la configuration.

Si le service ne redémarre pas, restaurez votre configuration sauvegardée et consultez le journal des erreurs PHP-FPM ou du serveur web.

5. Si l'avertissement persiste, vérifiez les paramètres PHP Web effectifs

Commencez par recharger les paramètres d'administration (Vue d'ensemble) après le redémarrage des processus PHP. Si l'avertissement persiste, vérifiez que la directive modifiée est bien chargée par l' environnement d'exécution PHP web , et non pas seulement par l'interface de ligne de commande. Recherchez un .inifichier chargé ultérieurement ou une surcharge du pool PHP-FPM qui remplace votre valeur.

Sur un serveur que vous contrôlez, vous pouvez inspecter temporairement les valeurs PHP d'une page web à l'aide d'un point de terminaison de diagnostic à accès strictement restreint et de la fonction PHP `diagnostic` ini_get(). Ne laissez jamais une phpinfo()page publique en ligne : elle peut révéler l'environnement, les chemins d'accès, les modules et d'autres informations de configuration sensibles. Supprimez tout point de terminaison de diagnostic immédiatement après vérification.

Pour une alerte de dimensionnement persistante, examinez l'utilisation réelle d'OPcache en conditions de trafic normal plutôt que de doubler systématiquement les valeurs. La documentation PHPopcache_get_status() décrit les statistiques relatives à la mémoire, aux chaînes internées et aux scripts mis en cache disponibles pour un processus PHP en cours d'exécution.

L'image Docker officielle de Nextcloud et les déploiements tout-en-un utilisent leurs propres paramètres PHP par défaut ; ne présumez pas que les modifications apportées au niveau de l'hôte ou les valeurs recommandées d'une autre installation seront conservées. Consultez le dépôt Docker officiel de Nextcloud ou le dépôt tout-en-un officiel pour connaître le modèle de configuration correspondant à votre déploiement.

Vérifiez que la correction a fonctionné

Retournez dans les paramètres d'administration → Vue d'ensemble et vérifiez que l'avertissement relatif à OPcache a disparu. Ouvrez et rechargez quelques pages Nextcloud pour vous assurer que l'application fonctionne toujours normalement. Si l'avertissement réapparaît après une utilisation normale, revérifiez la limite mesurée et la configuration PHP web effective ; l'objectif est de laisser une marge suffisante sans allouer de mémoire inutile à OPcache.

Laisser un commentaire

Maîtrisez les pics d'utilisation du processeur lors de la prévisualisation de Nextcloud grâce à une file d'attente planifiée

Déplacez le traitement des vignettes vers une planification en arrière-plan contrôlée, réduisez les tailles d'aperçu inutilisées et vérifiez la file d'attente sans surcharger votre serveur Nextcloud.

Obtenez Nextcloud Desktop Sync : passez à l’étape suivante, celle du « traitement des fichiers ».

Trouvez le fichier, la règle d'exclusion, le problème de connexion ou l'état de la base de données client qui bloque la synchronisation Nextcloud, puis vérifiez les chargements et les téléchargements en toute sécurité.

Éliminez l'avertissement OPcache de Nextcloud en ajustant la limite appropriée

Identifiez la limite du cache PHP OPcache qui déclenche l'avertissement de Nextcloud, mettez à jour la configuration PHP web correspondante, redémarrez en toute sécurité et vérifiez le résultat.

Connecter Nextcloud à CODE Docker : Configuration et compromis

Connecter Nextcloud à CODE Docker : Configuration et compromis

Comparez le code intégré et celui basé sur Docker, puis connectez Collabora Online à Nextcloud via un proxy inverse HTTPS sécurisé.

Créez un cluster Nextcloud résilient avec Galera

Planifiez un déploiement Nextcloud HA fiable avec stockage partagé, verrouillage Redis, routage MariaDB prenant en compte le quorum et contrôles de basculement pratiques.

Réussir les appels Nextcloud Talk même en cas de défaillance de Direct Media

Réussir les appels Nextcloud Talk même en cas de défaillance de Direct Media

Configurez et vérifiez un relais TURN accessible pour Nextcloud Talk lorsque des pare-feu ou un NAT restrictif bloquent les flux multimédias d'appel direct.

Éliminer les avertissements d'intégrité de Nextcloud en restaurant les fichiers appropriés

Utilisez le rapport de fichiers invalides pour identifier le code Nextcloud modifié, manquant ou supplémentaire, restaurer les fichiers de confiance en toute sécurité et vérifier le résultat.

Connectez Gmail ou Microsoft 365 à Nextcloud Mail via OAuth2.

Configurez OAuth2 pour Nextcloud Mail avec Gmail ou Microsoft 365, vérifiez la réception et l'envoi, et résolvez les problèmes courants de consentement et d'échec SMTP.

Débloquer Nextcloud en mode maintenance en toute sécurité avec OCC

Débloquer Nextcloud en mode maintenance en toute sécurité avec OCC

Utilisez OCC pour restaurer l'accès à Nextcloud, vérifier l'état de la migration de la base de données et choisir la commande appropriée pour les installations d'archives, Docker ou Snap.

Configurer la connexion LDAP et Active Directory à Nextcloud

Connectez Nextcloud à LDAP ou Active Directory, limitez l'accès avec des filtres d'utilisateurs et de groupes, et vérifiez l'authentification sécurisée avant le déploiement.