Résoudre l'avertissement de limite de mémoire PHP de Nextcloud

Pour faire disparaître un avertissement de limite de mémoire PHP dans Nextcloud, définissez memory_limitune valeur minimale 512Mde 512 Mo dans la configuration PHP utilisée par le serveur web, puis redémarrez ou rechargez le service PHP concerné. Le manuel d'administration stable actuel de Nextcloud recommande une valeur minimale de 512 Mo pour ce paramètre PHP. La raison la plus fréquente pour laquelle un avertissement persiste après modification d'un fichier est que le serveur web utilise une configuration PHP différente de celle de l'installation PHP en ligne de commande.

Choisissez la procédure correspondant à votre déploiement : Apache avec mod_php, Apache ou Nginx avec PHP-FPM, un conteneur ou un package Nextcloud géré. Ne modifiez pas la configuration de l'hôte php.inien supposant qu'elle est utilisée par tous les déploiements. Vérifiez le résultat sur la page d'aperçu de l'administration de Nextcloud, qui reflète la configuration de l'application web.

Que signifie cet avertissement ?

La valeur de `max_memory` pour PHP memory_limitcorrespond à la mémoire maximale qu'un script PHP peut allouer. Elle ne correspond pas à la RAM totale réservée à Nextcloud et n'augmente pas la mémoire physique disponible sur le serveur. Le manuel de Nextcloud recommande de configurer au moins 512 Mo pour cette directive. Par ailleurs, la configuration système requise précise que les besoins réels en mémoire du serveur varient en fonction des utilisateurs, des applications, des fichiers et de l'activité ; elle recommande au moins 512 Mo de RAM par processus PHP, avec un minimum de 128 Mo.

Augmenter la limite PHP peut résoudre un avertissement de configuration et allouer plus de mémoire aux requêtes gourmandes en ressources. Cela ne permet pas d'ajouter de la RAM à un serveur sous-dimensionné, de corriger une fuite de mémoire ni de garantir le bon déroulement de toutes les applications. Si le serveur est déjà saturé en mémoire, un plafond plus élevé par requête peut accroître le risque de saturation de la RAM système par plusieurs processus PHP simultanés.

Quelle configuration PHP devez-vous modifier ?

Commencez par identifier comment PHP exécute Nextcloud. Une vérification dans le terminal permet php --inid'afficher la configuration en ligne de commande (CLI). Les requêtes web de Nextcloud peuvent utiliser un module Apache distinct ou un service PHP-FPM avec une configuration différente php.iniou un pool de configurations spécifique. Nextcloud précise que PHP pour le web et en ligne de commande peut utiliser des fichiers de configuration différents.

Sur les systèmes dérivés de Debian, les emplacements typiques incluent /etc/php/8.x/apache2/php.inile module PHP d'Apache et /etc/php/8.x/fpm/php.iniPHP-FPM. La version de PHP et les noms de répertoires varient. D'autres distributions utilisent généralement des chemins différents, comme un répertoire partagé /etc/php.ini. Ces exemples sont donnés à titre indicatif ; utilisez votre gestionnaire de paquets, la configuration de vos services et l'environnement d'exécution PHP pour localiser le fichier actif.

Pour examiner la configuration de l'interface de ligne de commande, exécutez :

php --ini
php -i | grep -i '^memory_limit'

Ces commandes sont utiles pour les tâches planifiées qui exécutent PHP depuis la ligne de commande, mais elles ne prouvent pas que le processus Nextcloud accessible via le navigateur utilise la même valeur. Évitez de laisser une phpinfo()page publique sur le serveur : elle peut divulguer des chemins d’accès, des modules et des informations d’exécution.

Comment définir la limite pour Apache ou PHP-FPM ?

Sauvegardez le fichier de configuration actif avant de le modifier. Dans le fichier approprié php.ini, trouvez la memory_limitligne existante et définissez-la sur 512Mune valeur supérieure adaptée à votre charge de travail :

memory_limit = 512M

Utilisez un seul paramètre actif plutôt que d'ajouter des lignes dupliquées à la fin de plusieurs fichiers. Un pool PHP-FPM peut également définir des valeurs pour ses workers ; vérifiez donc la configuration du pool si la valeur php.inin'est pas prise en compte. Certaines configurations PHP prennent en charge un paramètre par répertoire.user.ini ; son activation dépend de la configuration du serveur et doit être confirmée auprès de l'administrateur.

Apache utilisant mod_php

Modifiez le fichier php.inide configuration utilisé par Apache, enregistrez-le, puis redémarrez Apache pour que le module recharge ses paramètres. Les noms de service varient. Sur Debian ou Ubuntu, le service est généralement `service.conf`apache2 ; sur les systèmes de la famille RHEL, il est généralement `service.conf` httpd. Utilisez le nom de service correspondant à votre système d'exploitation et à vos procédures de maintenance.

sudo systemctl restart apache2

Remplacez ce nom apache2si votre distribution utilise un nom d'unité différent. Si Nextcloud est servi par PHP-FPM au lieu de mod_php, le simple redémarrage d'Apache ne rechargera pas les processus PHP.

Apache ou Nginx utilisant PHP-FPM

Modifiez la configuration PHP-FPM utilisée par le site. Après avoir enregistré la modification, redémarrez ou rechargez le service PHP-FPM correspondant. Son unité peut inclure la version de PHP, par exemple php8.3-fpm, ou utiliser un autre nom spécifique au fournisseur.

sudo systemctl restart php8.3-fpm

Utilisez le nom de service correspondant à votre version de PHP installée. Nginx transmet les requêtes PHP à FPM ; par conséquent, toute modification des paramètres PHP nécessite généralement d'appliquer la modification à FPM. Un simple redémarrage de Nginx ne recharge pas la limite de mémoire de PHP. Si votre configuration de pool PHP-FPM comporte des surcharges memory_limit, ajustez le paramètre du pool ou supprimez la surcharge, puis redémarrez le pool.

Que se passe-t-il si Nextcloud s'exécute dans Docker, AIO, Snap ou un autre package ?

Utilisez le mécanisme de configuration de cette méthode d'installation. La modification des fichiers PHP de l'hôte n'affecte généralement pas l'environnement d'exécution PHP dans un conteneur ou un package isolé. L'image Docker officielle de Nextcloud documente la PHP_MEMORY_LIMITvariable d'environnement, dont la valeur par défaut est indiquée 512Mdans la documentation de l'image actuelle. Définissez-la dans le fichier Compose ou la configuration du conteneur, puis recréez ou redémarrez le conteneur d'application conformément à la procédure de déploiement.

environment:
  PHP_MEMORY_LIMIT: 512M

Ne copiez pas ce paramètre pour chaque type d'installation. Le manuel de Nextcloud indique que les environnements clés en main tels que AIO, Snap, NCP et Community Docker intègrent PHP préconfiguré et invite les administrateurs à consulter les instructions spécifiques à chaque paquet pour toute personnalisation. Pour ces configurations, utilisez l'interface ou la documentation dédiée. Les volumes montés persistants et la configuration générée peuvent également remplacer une modification manuelle ponctuelle.

Comment pouvez-vous confirmer que l'avertissement est corrigé ?

  1. Appliquez la modification à la configuration PHP côté web et redémarrez ou rechargez le service web/PHP concerné.
  2. Connectez-vous à Nextcloud en tant qu'administrateur et ouvrez Paramètres > Administration > Vue d'ensemble .
  3. Actualisez la page et vérifiez les avertissements de configuration. Assurez-vous que l'avertissement relatif à la limite de mémoire PHP a disparu.
  4. Exécutez une opération représentative qui a précédemment déclenché l'avertissement, telle que la tâche de l'application concernée, et consultez les journaux Nextcloud et PHP pour rechercher les messages d'épuisement de la mémoire.

Si vous exécutez également des tâches Nextcloud en arrière-plan via cron système, vérifiez séparément la configuration PHP de l'interface de ligne de commande (CLI). L'avertissement affiché sur le web peut être effacé même si les tâches CLI utilisent encore une limite inférieure. Confirmez la valeur de la CLI avec php --inila php -imême commande PHP que celle utilisée par cron.

Quand faut-il augmenter la valeur au-dessus de 512M ?

N'augmentez cette limite que lorsque l'avertissement a disparu mais qu'une charge de travail documentée atteint toujours la limite PHP, ou lorsque les recommandations de l'application préconisent une limite supérieure. Vérifiez d'abord la mémoire serveur réelle, le nombre de processus PHP-FPM, la mémoire de la base de données et les autres services. Étant donné que PHP applique la limite par script, plusieurs processus actifs peuvent utiliser une quantité importante de mémoire simultanément. Définissez une limite adaptée au budget mémoire de l'hôte plutôt que d'utiliser la valeur par défaut -1, qui, selon la documentation PHP, n'impose aucune limite de mémoire.

Si l'avertissement disparaît mais que le serveur continue de ralentir ou que des processus sont interrompus, examinez l'utilisation de la mémoire système et du swap, les journaux PHP-FPM et les journaux Nextcloud. Vérifiez si une application ou une requête spécifique consomme une quantité excessive de mémoire. Un cache mémoire tel qu'APCu ou Redis permet de résoudre les problèmes de mise en cache et de performances ; il ne remplace pas la configuration de PHP memory_limit. Modifiez un facteur à la fois afin de déterminer si le résultat s'améliore.

Vérifications rapides par symptôme

  • L'avertissement persiste après la modification du fichier php.ini : vérifiez si vous avez modifié le fichier CLI au lieu du fichier Apache/FPM, ou si un paramètre de pool le remplace.
  • L'avertissement disparaît, mais une tâche cron échoue toujours : vérifiez le binaire PHP de l'interface de ligne de commande et sa configuration séparée.
  • Le serveur web renvoie une erreur après le redémarrage : vérifiez l’état et les journaux du serveur web ou du service PHP-FPM, et restaurez la sauvegarde si la modification de la configuration a provoqué un échec de démarrage.
  • L'avertissement disparaît, mais l'hôte manque de RAM : réduisez la concurrence, ajoutez de la mémoire ou identifiez le processus utilisant la mémoire avant d'augmenter davantage la limite PHP.
  • Vous utilisez un conteneur ou un package clé en main : modifiez les paramètres PHP pris en charge par le package plutôt que le fichier php.ini de l’hôte.

Références officielles

Laisser un commentaire

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Comparez 10 outils de balayage ping pour une découverte rapide du réseau local, une analyse multiplateforme et la gestion des adresses IP. Découvrez ce qu'un balayage peut – et ne peut pas – vous révéler.

6 outils de gestion de réseau performants pour le suivi des performances

6 outils de gestion de réseau performants pour le suivi des performances

Comparez six outils de gestion de réseau pour la surveillance des performances, notamment la couverture SNMP, la cartographie, les alertes, les modèles de déploiement et les compromis en matière de coûts.

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Comparez sept moniteurs de ping gratuits et open source, allant des suites réseau complètes aux sondes de latence ciblées, et choisissez celui qui convient le mieux à vos besoins en matière de disponibilité, de perte de paquets et d'historique.

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Comparez les meilleurs analyseurs Wi-Fi pour Windows, iPhone et Android, incluant des outils pour la congestion des canaux, la couverture du signal, les cartes thermiques et le dépannage réseau.

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

Découvrez ce que signifie la QoS dans le domaine des réseaux, comment les marquages ​​DSCP et les files d'attente de trafic priorisent la voix, la vidéo et les applications professionnelles, et ce que la QoS ne peut pas corriger.

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Comparez les logiciels serveurs SFTP fiables pour Windows et Linux, notamment OpenSSH, Bitvise, SolarWinds et SFTPGo. Trouvez la solution idéale pour vos besoins en matière de sécurité et de transfert de fichiers.

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Comparez sept outils de gestion d'adresses IP pour la découverte de sous-réseaux, la coordination DNS et DHCP, l'inventaire réseau et l'IPAM open source.

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Mettez en place une surveillance réseau pratique avec une couverture claire des périphériques, des indicateurs de performance utiles, des alertes exploitables et une comparaison de SolarWinds NPM, PRTG et OpManager.

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Comparez les outils d'analyse réseau pour la découverte rapide des périphériques, les analyses IP multiplateformes et la gestion des identités et des accès IP (IPAM) d'entreprise, avec des conseils pour adapter chaque option à votre réseau.

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Utilisez l'option --traceroute de Nmap pour associer les sauts à un hôte autorisé, comprendre les résultats des sauts et du RTT, et résoudre les problèmes de réponses manquantes sans sur-analyse.