Outils pour utilisateurs

Outils du site


serveur_maison:installer_nextcloud

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
serveur_maison:installer_nextcloud [2024/07/19 16:44] – [Certificat SSL avec Let’s Encrypt] jpgserveur_maison:installer_nextcloud [2024/07/19 16:48] (Version actuelle) – [Sauvegarde de Nextcloud] jpg
Ligne 299: Ligne 299:
 === 3.6) Tâches de fond === === 3.6) Tâches de fond ===
  
-Pour son bon fonctionnement+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 [[https://doc.ubuntu-fr.org/cron|Cron]] afin d’exécuter ces tâches de manière régulière sans intervention humaine. 
 + 
 +== Création de la tâche Cron : == 
 +<code> 
 +crontab -u www-data -e 
 +</code> 
 + 
 +Ajouter la ligne suivante à la fin du fichier : 
 +<code> 
 +*/5 * * * * php -f /var/www/nextcloud:cron.php 
 +</code> 
 + 
 +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. 
 + 
 +== Configuration du type de tâche dans Nextcloud : == 
 +<code> 
 +sudo -u www-data php /var/www/nextcloud:occ background:cron 
 +</code> 
 + 
 +**Attention aux espaces. Problème constaté lors du copier/coller sous Firefox 107.0.1.** 
 + 
 +Pour aller plus loin, vous pouvez consulter la page [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html|Background jobs]] de la documentation officielle. 
 + 
 +=== 3.6) Configuration de la langue du profil === 
 + 
 +Rentrer dans le menu **« Paramètres »** : 
 + 
 +{{nextcloud:ParametresPersonel_31eb1fa7592b4cc79705530e81d22bd.png|Parametres}} 
 + 
 +Dans le panneau de gauche, sélectionner **« Informations personnelles »**. 
 + 
 +Régler la **Langue** et les **Paramètres régionaux** : 
 + 
 +{{nextcloud:Parametres-Regionaux_1292ffe779c647c09e8f1696cdef8.png|Parametres}} 
 + 
 +Il est également possible de définir les autres paramètres (Adresse email, téléphone etc…) 
 + 
 +=== 3.7) Vérification de Mise à Jour === 
 + 
 +Cliquer sur **« Vue d’ensemble »** sous **« Administration »**. 
 + 
 +{{nextcloud:Nextcloud-V_C3_A9rification-MAJ_a2573419bbb94c05a1.png|Mise a jour}} 
 + 
 + 
 +---- 
 + 
 + 
 +=====  Utilisateurs et Groupes ===== 
 + 
 +=== 5.1) Création Utilisateurs et Groupes === 
 + 
 +Se rendre dans le menu **Utilisateurs**. 
 + 
 +{{nextcloud:Nextcloud-Utilisateurs_0bdfb8fdf7c042ffa42b05fc2c2.png|Utilisateurs}} 
 + 
 +Cliquer sur **« Ajouter un groupe »** pour créer un groupe.\\ 
 +Cliquer sur **« Nouvel utilisateur »** pour créer un utilisateur. 
 + 
 +=== 5.2) Administrateurs Nextcloud === 
 + 
 +Pour définir un utilisateur en tant qu’Administrateur, il faut l’ajouter au groupe **« admin »**. 
 + 
 +{{nextcloud:Nextcloud-Utilisateurs-Ajout-Gro_cc1fde50a2684b21a.png|Utilisateur admin}} 
 + 
 + 
 +---- 
 + 
 +===== Stockages Externes ===== 
 + 
 +=== 6.1) Configuration générale === 
 + 
 +Grâce à l’application %%**%%%%**%%[[https://docs.nextcloud.com/server/latest/go.php?to=admin-external-storage|External storage support]]%%**%%%%**%%, il est possible de se connecter à des stockages externes (Exemple : SMB, FTP etc…).\\ 
 +Nous allons, dans l’exemple qui suit, nous connecter à un partage SMB/WINDOWS de notre serveur TrueNAS (Installé grâce à notre [[https://www.jjworld.fr/installer-freenas-truenas/|Tutoriel TrueNAS]]). 
 + 
 +== Se rendre dans Paramètres, Stockages externes : == 
 + 
 +{{nextcloud:Nextcloud-Stockages-Externes-102_3ba6d7ed800149d08.png|Stockage externe}} 
 + 
 +**Stockage externe** : Type de stockage\\ 
 +**Authentification** : A choisir en fonction du contexte mais **« Identifiants de connexion, sauvegardés dans la base de données »** permet une meilleure compatibilité avec les services tels que l’application pour Smartphone et le client Windows.\\ 
 +Pour plus d’information sur les méthodes d’authentification, consulter la page officielle [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage/auth_mechanisms.html|External Storage authentication mechanisms]] 
 + 
 +=== 6.2) Autoriser le Partage === 
 + 
 +Pour que les utilisateurs puissent partager des fichiers provenant du stockage externe, il faudra activer l’option **''%%"Permettre le partage"%%''**. 
 + 
 +Cliquer sur les **« … »** et cocher l’option **« Permettre le partage »**. 
 + 
 +{{nextcloud:2021-01-24-12_08_14-Parametres-N_c72a0a0824c54d5cb.png|Partage}} 
 + 
 + 
 +---- 
 + 
 +=====  Optimisation de Nextcloud ===== 
 + 
 +**A partir d’ici, le serveur Nextcloud est fonctionnel.**\\ 
 +Cependant, des problèmes de performances peuvent se faire ressentir.\\ 
 +Pour s’en prévenir, il faut suivre quelques recommandations de la documentation officielle de **NextCloud**. 
 + 
 +=== 7.1) Base de données === 
 + 
 +Sources : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#using-mariadb-mysql-instead-of-sqlite|Documentation Nextcloud – MariaDB/MySQL]] 
 + 
 +== Edition du fichier mysql.cnf : == 
 + 
 +nano /etc/mysql/conf.d/mysql.cnf 
 + 
 + 
 +Contenu : 
 +<code> 
 +[mysqld]\\ 
 +innodb_buffer_pool_size=512M\\ 
 +innodb_io_capacity=4000 
 +</code> 
 +Attention, il s’agit de la section mysql**d**. 
 + 
 +Exemple : 
 + 
 +{{nextcloud:Nextcloud-mysql-cfg_dcf34eef661644d98f14c9178a4e95.png|Mysql}} 
 + 
 +Il est possible d’aller plus loin dans l’optimisation en utilisant cette documentation : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/linux_database_configuration.html#configuring-a-mysql-or-mariadb-database|Documentation Nextcloud – Configuring a MySQL or MariaDB database]] 
 + 
 +== Edition du fichier my.cnf : == 
 + 
 +nano /etc/mysql/my.cnf 
 + 
 + 
 +Contenu : 
 +<code> 
 +[mysqld]\\ 
 +transaction_isolation = READ-COMMITTED\\ 
 +binlog_format = ROW 
 +</code> 
 + 
 +Exemple : 
 + 
 +{{nextcloud:Nextcloud-my-cfg_323f0977c8874946a9793508c6d232f0.png|Ameliorations}} 
 + 
 +== Redémarrage MariaDB : == 
 + 
 +systemctl restart mariadb.service 
 + 
 + 
 + 
 +=== 7.2) PHP – Modification memory_limit et désactivation output_buffering === 
 + 
 +== Valeur initiale : == 
 + 
 +cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering” 
 + 
 + 
 +== Modification : == 
 +<code> 
 +sed -i -e "s/^memory_limit \+= \+.*$/memory_limit = 512M/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^output_buffering \+= \+.*$/output_buffering = 0/g" /etc/php/8.2/apache2/php.ini 
 +systemctl restart apache2.service 
 +</code> 
 + 
 + 
 +Modification du paramètre memory_limit à **512M** minimum pour le bon fonctionnement de Nextcloud.\\ 
 +Cette valeur peut être augmentée en fonction du besoin. 
 + 
 +== Vérifications : == 
 + 
 +cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering” 
 + 
 + 
 +=== 7.3) Configuration de Redis === 
 + 
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Documentation Nextcloud – Redis]] 
 + 
 +== Ajout de l’utilisateur www-data au groupe redis : == 
 + 
 +usermod -a -G redis www-data 
 + 
 + 
 +== Configuration du fichier redis.conf : == 
 +<code> 
 +sed -i -e "s/^#* *port +*6379$/port 0/g" /etc/redis/redis.conf 
 +sed -i -e "s/^#* *unixsocket +*.*$/unixsocket \/var\/run\/redis\/redis-server.sock/g" /etc/redis/redis.conf 
 +sed -i -e "s/^#* *unixsocketperm+*.*$/unixsocketperm 770/g" /etc/redis/redis.conf 
 +</code> 
 +== Vérification : == 
 + 
 +cat /etc/redis/redis.conf | egrep “^#* *port +|^#* *unixsocket +|^#* *unixsocketperm +” 
 + 
 + 
 +{{nextcloud:Nextcloud-redis-conf_44f3054d4fea42a3a3467bc099838.png|Redis}} 
 + 
 +== Redémarrage de Redis : == 
 + 
 +systemctl restart redis-server.service 
 + 
 + 
 +=== 7.4) File Locking et Memory Cache === 
 + 
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html|File Locking]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Memory Caching]] 
 + 
 +== Configuration avec la commande occ: == 
 + 
 +Shell 
 + 
 +# Activation de filelocking 
 +<code> 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set filelocking.enabled –value=“true” 
 +</code> 
 +# Configuration du Redis 
 +<code> 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis host –value=“/var/run/redis/redis-server.sock” 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis port –value=“0” 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set redis timeout –value=“0.0” 
 +</code> 
 + 
 +# Configuration de memcache.distributed (à effectuer après la configuration de Redis) 
 +<code> 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.distributed –value=“\OC\Memcache\Redis” 
 +</code> 
 +# Configuration de memcache.local et memcache.locking 
 +<code> 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.local –value=“\OC\Memcache\Redis” 
 +sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.locking –value=“\OC\Memcache\Redis” 
 +</code> 
 + 
 +== Vérification : == 
 +<code> 
 +cat /var/www/nextcloud:config/config.php | \ 
 +egrep “’filelocking\.enabled|’memcache\.local\ 
 +’memcache\.locking|’host|’port|’timeout|’memcache\.distributed” 
 +</code> 
 + 
 +{{nextcloud:Nextcloud-cache-config_9d02579969034e2898d3e1f0fa9.png|Configuration}} 
 + 
 +== Redémarrage d’Apache : == 
 + 
 +systemctl restart apache2.service 
 + 
 + 
 +=== 7.5) Activation de PHP OPcache === 
 + 
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache|Documentation Nextcloud – Enable PHP OPcache]] 
 + 
 +== Edition du fichier php.ini : == 
 + 
 +Shell 
 +<code> 
 +sed -i -e "s/^;* *opcache\.enable *= *.*$/opcache.enable=1/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^;* *opcache\.memory_consumption *= *.*$/opcache.memory_consumption=128/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=8/g" /etc/php/8.2/apache2/php.ini  
 +sed -i -e "s/^;* *opcache\.max_accelerated_files *= *.*$/opcache.max_accelerated_files=10000/g" /etc/php/8.2/apache2/php.ini  
 +sed -i -e "s/^;* *opcache\.revalidate_freq *= *.*$/opcache.revalidate_freq=60/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^;* *opcache\.save_comments *= *.*$/opcache.save_comments=1/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=16/g" /etc/php/8.2/apache2/php.ini 
 +</code> 
 + 
 +== Vérification : == 
 +<code> 
 +cat /etc/php/8.2/apache2/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*=” 
 +</code> 
 + 
 +{{nextcloud:Nextcloud-php-OPCache-config_2b95b0323c974a9c8f5a7.png|Opcache}} 
 + 
 +== Redémarrage d’Apache : == 
 + 
 +systemctl restart apache2.service 
 + 
 +|1|systemctl restart apache2.service| 
 + 
 +=== 7.6) Taille limite de téléchargement === 
 + 
 +Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html|Documentation Nextcloud – Uploading big files]] 
 + 
 +== Edition du fichier php.ini : == 
 +<code> 
 +sed -i -e "s/^;* *upload_max_filesize *= *.*$/upload_max_filesize=16G/g" /etc/php/8.2/apache2/php.ini 
 +sed -i -e "s/^;* *post_max_size *= *.*$/post_max_size=16G/g" /etc/php/8.2/apache2/php.ini 
 +</code> 
 +== Vérification : == 
 + 
 +cat /etc/php/8.2/apache2/php.ini | egrep “^;* *upload_max_filesize *=|^;* *post_max_size *=” 
 + 
 + 
 +{{nextcloud:Nextcloud-upload-big-file-php-co_3c40c8edf04144f3a.png|Taille du téléchargement}} 
 + 
 +== Redémarrage d’Apache : == 
 + 
 +systemctl restart apache2.service 
 + 
 + 
 + 
 +---- 
 + 
 + 
 +=====  Sauvegarde de Nextcloud ===== 
 + 
 +**Source**[[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html|Nextcloud Backup]] 
 + 
 +== Création des répertoires de sauvegarde : == 
 + 
 +# Fichiers\\ 
 +mkdir -p /backups/nextcloud:files\\ 
 +# Base de données\\ 
 +mkdir -p /backups/nextcloud:database\\ 
 +# Permissions\\ 
 +chmod -R o-rwx /backups/ 
 + 
 + 
 +== Activation du mode Maintenance : == 
 + 
 +# Activation\\ 
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –on\\ 
 +# Vérification\\ 
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode 
 + 
 +== Sauvegarde des fichiers dans un répertoire /backups/nextcloud: : == 
 + 
 +# Sauf répertoire data et corbeille\\ 
 +rsync -Aavx /var/www/nextcloud: \\\ 
 +/backups/nextcloud:files/nextcloud-backup_`date +“%Y%m%d_%H%M%S”`/ \\\ 
 +--exclude={‘data/*’,‘*/files_trashbin/files/*’} 
 + 
 + 
 +Le répertoire de sauvegarde sera ''%%/backups/nextcloud:files/nextcloud-backup_20201010_153025/%%'' pour une sauvegarde effectuée le 10 Octobre 2020 à 15:30:25. 
 + 
 +**Important** : Si vous souhaitez tout de même sauvegarder le répertoire data et la corbeille, il faudra supprimer le paramètre ''%%--exclude%%''
 + 
 +== Sauvegarde de la base de données MySQL/MariaDB : == 
 + 
 +mysqldump –single-transaction -h localhost -u nextcloud -pVotreMotDePasse nextcloud > \\\ 
 +/backups/nextcloud:database/nextcloud-sqlbkp_`date +“%Y%m%d_%H%M%S”`.bak 
 + 
 + 
 +**-h** : nom ou IP du serveur de base de données\\ 
 +**-u** : utilisateur de la base de données\\ 
 +**-p** : mot de passe de l’utilisateur\\ 
 +<html><br/></html>**Attention :**\\ 
 +– Pas d’espace entre **-p** et le **mot de passe**\\ 
 +– Remplacer **VotreMotDePasse** par le mot de passe de l’utilisateur. 
 + 
 +== Désactivation du mode Maintenance : == 
 + 
 +# Désactivation\\ 
 +sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –off 
 + 
 + 
 +== Exemple de script de sauvegarde : == 
 + 
 +<code> 
 +#!/bin/bash 
 +# Path 
 +nextcloudPath=/var/www/nextcloud/ 
 +occPath=$nextcloudPath\occ 
 +sourcePath=/var/www/nextcloud/ 
 +mainDestinationPath=/backups/nextcloud/`date +"%Y/%m"`/ 
 +filesDestinationPath=$mainDestinationPath\files/ 
 +databaseDestinationPath=$mainDestinationPath\database/ 
 +# Database 
 +dbhost=$(cat $nextcloudPath\config/config.php | egrep "dbhost" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//'
 +dbname=$(cat $nextcloudPath\config/config.php | egrep "dbname" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//'
 +dbuser=$(cat $nextcloudPath\config/config.php | egrep "dbuser" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//'
 +dbpassword=$(cat $nextcloudPath\config/config.php | egrep "dbpassword" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//'
 +# Verbose 
 +cyan='\e[1;36m' 
 +white='\e[1;37m' 
 +neutral='\e[0;m' 
 +echo -e "${cyan}dbhost : ${white}$dbhost${neutral}" 
 +echo -e "${cyan}dbname : ${white}$dbname${neutral}" 
 +echo -e "${cyan}dbuser : ${white}$dbuser${neutral}" 
 +#echo -e "${cyan}dbpassword : ${white}$dbpassword${neutral}" 
 +read -t 10 -p "The backup will start after 10 seconds" || true 
 +# Destinations creation 
 +mkdir -p $filesDestinationPath 
 +mkdir -p $databaseDestinationPath 
 +chmod -R o-rwx /backups/ 
 +# Maintenance mode activation 
 +sudo -u www-data php $occPath maintenance:mode --on 
 +# Database backup 
 +mysqldump --single-transaction -h $dbhost -u $dbuser -p$dbpassword $dbname > $databaseDestinationPath\nextcloud-sqlbkp_`date +"%Y%m%d_%H%M%S"`.bak 
 +# Files backup 
 +rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/ --exclude={'data/*','*/files_trashbin/files/*'
 +#rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/ 
 +# Maintenance mode deactivation 
 +sudo -u www-data php $occPath maintenance:mode --off 
 +exit 0 
 +</code> 
 + 
 + 
 +Sauvegarde de base de données **MySql/MariaDB**. 
 + 
 +Exemple de restauration : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html?highlight=restore|Nextcloud – Restoring backup]] 
 + 
 +=====  Mise à jour de Nextcloud ===== 
 + 
 +**Source** : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/upgrade.html|Nextcloud Upgrade]] 
 + 
 +== Lancement du programme de mise à jour : == 
 + 
 +sudo -u www-data php /var/www/nextcloud:updater/updater.phar 
 + 
 + 
 +Pour un lancement **sans interaction utilisateur**, il faudra le lancer en mode Batch en rajoutant l’argument **''%%--no-interaction%%''** 
 + 
 +{{nextcloud:Upgrade-Nextcloud_9f2fa73b7b4d4e5f90ce4c038df25445.png|Update}} 
 + 
 +Faire le choix **y** 
 + 
 +{{nextcloud:Upgrade-Nextcloud-2_742066967e444a888d5b85b6119c57.png|Update}} 
 + 
 +Appuyer sur la touche **Entrée** 
 + 
 +La ligne **''%%Update of code successful%%''** confirme que la mise à jour des fichiers est terminée. 
 + 
 +{{nextcloud:Upgrade-Nextcloud-3_fbce7574f07b4d4a973f11f09b5837.png|Update}} 
 + 
 +Appuyer sur **Entrée** pour désactiver le mode maintenance. 
 + 
 +La ligne **''%%Update successful%%''** confirme que la mise à jour est terminée. 
 + 
 + 
 +---- 
 + 
 +**Voilà ! C’est terminé !** 
 + 
 +Vous avez enfin créé **votre Cloud personnel** grâce à [[http://www.freenas.org/|]][[https://nextcloud.com/|Nextcloud]].\\ 
 +**Il ne reste plus qu’à :** 
 + 
 +  * Créer vos propres utilisateurs 
 +  * Configurer votre routeur pour que nextcloud soit accessible depuis l’extérieur 
 + 
serveur_maison/installer_nextcloud.1721407493.txt.gz · Dernière modification : 2024/07/19 16:44 de jpg