Document : Optimisation post-installation de Nextcloud sur Raspberry Pi

Optimisation post-installation de Nextcloud sur Raspberry Pi

  • admin
  • Debian, Nextcloud, Raspberry Pi

Ce guide présente les optimisations recommandées pour votre instance Nextcloud après son déploiement initial. Vous y découvrirez comment ajuster la configuration de PHP, corriger les principaux avertissements d’administration et améliorer le fonctionnement général de votre système.

Prérequis

Ce tutoriel fait directement suite au guide : Installer Nextcloud sur un Raspberry Pi avec une pile LAMP sur Raspberry Pi OS (Debian 13). Il est fortement recommandé de disposer d'une instance récemment déployée et fonctionnelle avant d'appliquer les optimisations ci-dessous.

Consultation des avertissements

Avant de procéder aux optimisations, il est utile de consulter le bilan de santé de votre instance. Connectez-vous à l'interface web de Nextcloud avec votre compte administrateur.

Cliquez sur l'icône de votre profil en haut à droite, sélectionnez Paramètres d'administration, puis dans le menu latéral gauche, cliquez sur Vue d'ensemble.

Cette page liste les avertissements de sécurité et de configuration. Les étapes suivantes vous permettront d'en corriger une partie pour amorcer l'optimisation du système.

Ajustement de la configuration PHP

Commençons par corriger l'avertissement indiquant que la limite de mémoire de PHP est inférieure à la valeur recommandée. La configuration par défaut de PHP est en effet trop restrictive pour une application aussi gourmande en ressources. Il est indispensable d'augmenter la mémoire allouée aux scripts et d'ajuster les limites d'envoi pour garantir la stabilité du système lors du téléversement de fichiers volumineux ou des mises à jour.

Éditez le fichier de configuration principal de PHP lié à Apache (ici pour la version 8.4) :

# Ouvre le fichier php.ini avec l'éditeur nano
sudo nano /etc/php/8.4/apache2/php.ini

Recherchez les directives suivantes (vous pouvez utiliser Ctrl+W sous nano) et modifiez leurs valeurs. Pour un Raspberry Pi 4 avec un minimum de 2 Go de RAM, l'allocation de 1024 Mo est un bon compromis :

# Augmente la mémoire maximale allouée à un script (512M minimum, 1024M recommandé)
memory_limit = 1024M

# Augmente la taille maximale des données envoyées via la méthode POST
post_max_size = 1024M

# Augmente la taille maximale autorisée pour le téléversement de fichiers
upload_max_filesize = 1024M

# Augmente le temps d'exécution maximal d'un script en secondes pour éviter les coupures sur des tâches longues
max_execution_time = 360

Enregistrez et quittez l'éditeur (Ctrl+O, Entrée, puis Ctrl+X). Rechargez ensuite le serveur web pour que la nouvelle configuration soit prise en compte :

# Redémarre le service Apache pour appliquer les modifications
sudo systemctl restart apache2

Vous pouvez dès à présent rafraîchir la page Vue d'ensemble de votre Nextcloud. L’avertissement Limite de mémoire PHP devrait avoir disparu de l’interface.

Paramétrage de base de l'instance

Dans la rubrique des avertissements, Nextcloud signale généralement l'absence de configuration pour l'Indicatif téléphonique par défaut ainsi que pour le Début de la fenêtre de maintenance.

La déclaration de la région est nécessaire pour valider correctement les numéros de téléphone (sans indicatif international) dans les profils des utilisateurs. Quant à la fenêtre de maintenance, elle permet de programmer l'exécution des tâches d'arrière-plan lourdes à un moment de la journée où votre serveur est peu sollicité, évitant ainsi de ralentir le système pendant son utilisation.

Ouvrez le fichier config.php de votre installation Nextcloud :

# Édite le fichier de configuration de Nextcloud
sudo nano /var/www/nextcloud/config/config.php

Naviguez jusqu'à la fin du fichier et ajoutez les deux lignes suivantes, juste avant la dernière parenthèse fermante ); :

# Définit la France (FR) comme région par défaut pour les numéros de téléphone
'default_phone_region' => 'FR',

# Lance les tâches de maintenance lourdes à partir de 2h00 du matin (heure UTC)
'maintenance_window_start' => 2,

Format de l'heure

La valeur 2 correspond à 2h00 du matin au format UTC. Selon votre fuseau horaire et l’heure d’été ou d’hiver, l’exécution réelle sera légèrement décalée, mais restera positionnée au cœur de la nuit.

Enregistrez et fermez le fichier (Ctrl+O, Entrée, puis Ctrl+X).

Contrairement aux modifications apportées à PHP, les ajustements effectués dans le fichier config.php sont pris en compte immédiatement par Nextcloud. Un simple rafraîchissement de la page Vue d'ensemble suffira pour confirmer la disparition de ces deux avertissements.

Maintenance via l'outil en ligne de commande (occ)

Dans les paramètres d'administration, il arrive que Nextcloud vous signale que des Migrations de types MIME sont disponibles.

Un type MIME est un identifiant qui précise le format d'un fichier (ex: application/pdf). Nextcloud l'utilise pour afficher la bonne icône et ouvrir la bonne application. Suite à certaines mises à jour, ces associations doivent être réorganisées.

L'interface web n'étant pas adaptée aux opérations longues en raison des limites de temps d'exécution de PHP (max_execution_time), il est nécessaire d'utiliser occ (ownCloud Console). Cet outil en ligne de commande s'affranchit de ces restrictions pour modifier la base de données en toute sécurité.

Pour que l'outil fonctionne avec les bons droits, il doit impérativement être exécuté en tant qu'utilisateur du serveur web (sous Debian/Raspberry Pi OS, il s'agit de www-data).

Placez-vous d'abord dans le répertoire de votre installation Nextcloud :

# Navigation vers le répertoire racine de Nextcloud
cd /var/www/nextcloud

Exécutez ensuite la commande de réparation globale, qui prendra en charge la migration des types MIME dans la base de données :

# Lance la réparation système avec les privilèges de l'utilisateur web
sudo -u www-data php occ maintenance:repair --include-expensive

La durée de cette opération dépend du volume de fichiers déjà présents sur votre instance. Une fois terminée, vous pourrez constater la disparition de l'avertissement dans l'interface d'administration.

Configuration des tâches d'arrière-plan (Cron)

Par défaut, Nextcloud exécute ses tâches d'arrière-plan (nettoyage de la corbeille, indexation, etc.) en utilisant la méthode AJAX. Cela signifie qu'à chaque fois qu'un utilisateur charge une page de l'interface, un script de maintenance est déclenché. Cette méthode est peu fiable et ralentit considérablement la navigation, surtout sur un serveur modeste comme le Raspberry Pi.

Il est fortement recommandé de confier cette gestion au planificateur de tâches du système d'exploitation : le Cron de Linux. Cela permet d'exécuter la maintenance à intervalles réguliers de manière totalement transparente pour l'utilisateur.

Commencez par éditer la table Cron de l'utilisateur du serveur web (www-data) :

# Ouvre la table cron de l'utilisateur www-data (choisissez nano si demandé)
sudo -u www-data crontab -e

Ajoutez la ligne suivante tout à la fin du fichier. Elle indique au système d'exécuter le script de maintenance de Nextcloud toutes les 5 minutes :

# Exécute le script cron.php toutes les 5 minutes
*/5 * * * * php -f /var/www/nextcloud/cron.php

Enregistrez et quittez l'éditeur (Ctrl+O, Entrée, puis Ctrl+X si vous utilisez nano).

Une fois la tâche planifiée configurée au niveau du système, vous devez informer Nextcloud de ce changement de méthode :

  1. Rendez-vous dans votre interface Nextcloud.
  2. Allez dans Paramètres d'administration > Paramètres de base (dans le menu latéral gauche).
  3. Dans la section Tâches d'arrière-plan, sélectionnez l'option Cron (Recommandé) au lieu de AJAX.

L'avertissement concernant la dernière exécution du cron dans la page Vue d'ensemble devrait disparaître dans les 5 minutes suivant cette modification. Votre instance Nextcloud est désormais configurée pour fonctionner de manière optimale avec les tâches d'arrière-plan de votre système Debian.