Skip to main content

4. Corrections des erreurs d'installation de Nextcloud 29 (parti1)

Important : A partir d’ici, toutes les commandes seront exécutées en tant que root.
Une fois l’installation terminée, retourner dans l’invite de commande.

1. Configuration de la région par défaut pour les numéros de téléphone :

sudo -u www-data php /var/www/nextcloud/occ config:system:set \default_phone_region --value="FR"
Remplacer FR par votre code pays ISO 3166-1.

2.1. Configuration de Pretty URLs : 

sudo -u www-data php /var/www/nextcloud/occ config:system:set htaccess.RewriteBase --value="/"
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
Pretty URLs permet de supprimer le « index.php » dans la barre d’adresse.

3. Forcer HTTPS

image.png

Accès au site non sécurisé à travers le protocole HTTP. Vous êtes vivement encouragé à configurer votre serveur pour utiliser plutôt le protocole HTTPS, comme décrit dans les conseils de sécurité ↗. Sans ça, certaines fonctionnalités web importantes comme la "copie dans le presse-papier" ou les "serveurs intermédiaires" ne fonctionneront pas.
Nextcloud n'aime pas le HTTP, il préfère le HTTPS. Et il a raison. Tout ce qui transite en HTTP passe en clair. Niveau sécurité on a vu mieux, surtout si vous exposez votre cloud sur internet. Pour cette raison il faut avoir un certificat SSL. D'une manière ou d'une autre. Je vous invite cordialement sur Discord si vous ne savez pas ce que c'est ni comment faire. Il existe plusieurs solutions comme le certificat auto signé (self-signed) ou encore un reverse proxy.
1er Solution :
Edition du fichier .htaccess :
sudo nano /var/www/nextcloud/.htaccess

Se rendre à la fin du fichier et renseigner les lignes suivantes juste avant la balise 

RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

image.png

La première ligne RewriteCond est la condition.
La seconde est la règle de réécriture.

2éme Solution :
Passer par Nginx Proxy Manager voir ICI
Ensuite configurer le fichier config.php
sudo nano /var/www/nextcloud/config/config.php
et ajoutez ces 2 lignes :
'overwritehost' => 'exemple-mon-cloud.com',
'overwriteprotocol' => 'https',

4.2. Installation et Activation d’applications dans Nextcloud :

4.2.1 External storage support (Application permettant de se connecter à des partages externes  SMB, FTP etc…) :
sudo -u www-data php /var/www/nextcloud/occ app:install files_external
sudo -u www-data php /var/www/nextcloud/occ app:enable files_external
4.2.2 LDAP user and group backend Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory). :
sudo -u www-data php /var/www/nextcloud/occ app:install user_ldap
sudo -u www-data php /var/www/nextcloud/occ app:enable user_ldap
4.2.3 Mise à jour de toutes les applications :
sudo -u www-data php /var/www/nextcloud/occ app:update --all

5.3. Gestion des fichiers supprimés (Corbeille) :

L’application Deleted files installée par défaut gère les fichiers supprimés en fonction du paramètre trashbin_retention_obligation du fichier config.php.
5.3.1 Vérification du paramètre trashbin_retention_obligation :
sudo -u www-data php /var/www/nextcloud/occ config:system:get \trashbin_retention_obligation
Si aucune valeur n’est retournée, la configuration par défaut sera utilisée.
5.3.2 Modification du paramètre trashbin_retention_obligation :
sudo -u www-data php /var/www/nextcloud/occ config:system:set \trashbin_retention_obligation --value="auto, 15"
Les fichiers seront définitivement supprimés au bout de 15 jours.
Si la taille de l’ensemble des fichiers supprimés dépassent la limite autorisée (par défaut 50% de l’espace libre), l’application Deleted files supprimera les fichiers les plus anciens jusqu’à descendre en dessous de la limite autorisée.
5.3.3 Forcer la suppression définitive des fichiers supprimés ne respectant plus les conditions de rétention :
sudo -u www-data php /var/www/nextcloud/occ trashbin:expire
5.3.4 Forcer la suppression définitive de tous les fichiers supprimés :
sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup --all-users
Il est possible de remplacer --all-users par le nom des utilisateurs séparés par des espaces. Pour un utilisateur provenant de l'annuaire LDAP, il faudra utiliser son ID.
Pour aller plus loin : Nextcloud – Deleted Items (trash bin) et Nextcloud – Occ Trashbin

6. 

4. Tâches de fond

Pour son bon fonctionnement, Nextcloud exécute régulièrement des tâches de fond (Jobs).
Exemple de tâche : Scan à la recherche de nouveaux fichiers.
Par défaut, ces tâches sont exécutées à chaque chargement de page.
Cependant, si personne ne visite le site, aucune tâche ne sera exécutée.
Il est donc recommandé d’utiliser Cron afin d’exécuter ces tâches de manière régulière sans intervention humaine.
6.4.1 Création de la tâche Cron :
sudo crontab -u www-data -e
Ajouter la ligne suivante à la fin du fichier :
*/5 * * * * php -f /var/www/nextcloud/cron.php
Le fichier cron.php contenant les tâches Nextcloud sera exécuté toutes les 5 minutes.
Cet intervalle peut être modifié en remplaçant le 5 par une autre valeur.

6.2.4.2 Configuration du type de tâche dans Nextcloud :
sudo -u www-data php /var/www/nextcloud/occ background:cron
Pour aller plus loin, vous pouvez consulter la page Background jobs de la documentation officielle.

7. Activation de PHP OPcache : 

image.png

Pré-requis avoir installez le PHP 8.3 et avoir activer le PHP-FPM
7.1 Edition du fichier dans /etc/php/8.3/fpm/php.ini :
sudo sed -i -e "s/^;* *opcache\.enable *= *.*$/opcache.enable=1/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.memory_consumption *= *.*$/opcache.memory_consumption=128/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=8/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.max_accelerated_files *= *.*$/opcache.max_accelerated_files=10000/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.revalidate_freq *= *.*$/opcache.revalidate_freq=60/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.save_comments *= *.*$/opcache.save_comments=1/g" /etc/php/8.3/fpm/php.ini
sudo sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=16/g" /etc/php/8.3/fpm/php.ini
7.2 Vérification :
cat /etc/php/8.3/fpm/php.ini | \
	egrep "^;* *opcache\.enable *=|^;* *opcache\.interned_strings_buffer *=\
	|^;* *opcache\.max_accelerated_files *=|^;* *opcache\.memory_consumption *=\
	|^;* *opcache\.save_comments *=|^;* *opcache\.revalidate_freq *=\
	|^;* *opcache\.interned_strings_buffer*="

image.png

Source : Documentation Nextcloud – Enable PHP OPcache