====== Nextcloud 28 – Installation Debian ======
===== Présentation =====
{{nextcloud:Presentation_59984293557d4210bab18ad287fba0c6.png?300 }}
Nextcloud 28 //(Nextcloud Hub 7)// – Interface de connexion
Nous allons, dans ce tutoriel, créer un **Cloud** personnel en installant **Nextcloud**.\\
Pour finir, nous **optimiserons** notre installation afin d’améliorer les performances de notre **Cloud Personnel**.\\
jjworld.fr[[https://www.jjworld.fr/installer-nextcloud-creer-son-cloud-personnel/]]
----
===== Préparation de l’environnement =====
Avant d’installer Nextcloud et de créer notre Cloud Personnel, il faut s’assurer que le système est correctement configuré.\\
**Important :** A partir d’ici, toutes les commandes seront exécutées en tant que **root**.
=== 1.1) Configuration de l’heure ===
timedatectl set-timezone Europe/Paris
hwclock -w
timedatectl status
Vous pouvez obtenir la liste des fuseaux horaire acceptés en utilisant la commande : ''%%timedatectl list-timezones%%''
=== 1.2) Mise à jour du dépôt et des paquets ===
''%%apt -y update && apt -y upgrade%%''
=== 1.3) Ajout d’un nouveau dépôt pour php8.2 ===
La version 8.2 de php n’est pour le moment pas disponible dans le dépôt officiel de Debian 12 et Ubuntu 22.04.\\
On ajoute donc un dépôt qui contient la version 8.2 :
== Pour Debian 11 et Debian 12 ==
apt install -y lsb-release apt-transport-https ca-certificates && \
wget -O /etc/apt/trusted.gpg.d/php.gpg https:%%//%%packages.sury.org/php/apt.gpg && \
echo “deb https:%%//%%packages.sury.org/php/ $(lsb_release -sc) main” |\
tee /etc/apt/sources.list.d/php.list && \
apt update -y
== Pour Ubuntu 22.04 : ==
apt install -y software-properties-common\
add-apt-repository -y ppa:ondrej/php\
apt update -y
=== 1.4) Installation des prérequis pour Nextcloud 28 ===
export DEBIAN_FRONTEND=noninteractive
# Installation des paquets (dont sudo pour Debian 11 et Debian 12)
apt-get install -y apache2 mariadb-server libapache2-mod-php8.2 imagemagick \
php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring \
php8.2-intl php8.2-imagick php8.2-xml php8.2-zip \
php8.2-apcu redis-server php8.2-redis \
php8.2-ldap smbclient php8.2-bcmath php8.2-gmp \
sudo
===== Installation de NextCloud 28 =====
=== 2.1) Création du Site Nextcloud dans Apache ===
== Téléchargement de Nextcloud 28 : ==
wget https:%%//%%download.nextcloud.com/server/releases/latest-28.tar.bz2
== Extraction dans le répertoire /var/www/ : ==
tar -xvf latest-28.tar.bz2 -C /var/www/
== Edition du fichier de configuration du site : ==
nano /etc/apache2/sites-available/nextcloud.conf
{{nextcloud:Nextcloud-Configuration-Site-Apa_9c8eb3866db5480ea.png}}
Contenu :
Alias / “/var/www/nextcloud:”
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
Dav off
Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
== Attention à l’indentation. Problème constaté lors du copier/coller sous Firefox 107.0.1. ==
== Activation du site et des modules nécessaires : ==
# Activation du site nextcloud
a2ensite nextcloud.conf
Activation des modules
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
# SSL
a2enmod ssl
a2ensite default-ssl
# Redémarrage service apache
systemctl restart apache2
== Changement du propriétaire du répertoire nextcloud : ==
chown -R www-data:www-data /var/www/nextcloud
== Vérifications versions : ==
sudo -u www-data php /var/www/nextcloud:occ -V
sudo -u www-data php /var/www/nextcloud:occ status
=== 2.2) Création de la base de données Nextcloud ===
== Pré-configuration de la base MariaDB : ==
Les commandes qui suivent sont l’équivalent du script interactif **mysql_secure_installation**.
mysql –user=root <<-EOF
SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘VotreMotDePasse’);
DELETE FROM mysql.user WHERE User=‘root’ AND Host NOT IN (‘localhost’, ‘127.0.0.1’, ‘::1’);
DELETE FROM mysql.user WHERE User=’‘;
DELETE FROM mysql.db WHERE Db=’test’ OR Db=‘test_%’;
FLUSH PRIVILEGES;
EOF
**==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi.
== Création de la base de données : ==
mysql –user=root –password=VotreMotDePasse <<-EOF
CREATE DATABASE nextcloud;
CREATE USER ‘nextcloud’@‘localhost’ IDENTIFIED BY ‘VotreMotDePasse’;
GRANT ALL PRIVILEGES ON nextcloud.* TO “nextcloud”@“localhost”;
FLUSH PRIVILEGES;
EOF
**==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi.
=== 2.3) Finalisation de l’installation ===
Pour terminer l’installation, il va falloir se connecter à l’URL de votre serveur Nextcloud.\\
Exemple : **https:%%//%%192.168.1.203**
{{nextcloud:Nextcloud-Finalisation-Installat_9de8df90f336463e8.png}}
1 : Nom du compte Administrateur Nextcloud\\
2 : Mot de passe du compte Administrateur\\
3 : Nom de l’utilisateur de base de données\\
4 : Mot de passe de la base de données\\
5 : Nom de la base de données\\
6 : Serveur hébergeant la base de données
Cliquer sur **« Terminer l’installation »**.
----
===== Configuration de Nextcloud 28 =====
Une fois l’installation terminée, retourner dans l’invite de commande.
=== 3.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 [[https://en.wikipedia.org/wiki/ISO_3166-1|ISO 3166-1]].
=== 3.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.2) Forcer HTTPS ===
== Edition du fichier .htaccess : ==
nano /var/www/nextcloud:.htaccess
Se rendre à la fin du fichier et renseigner les lignes suivantes juste avant la balise ''%%%%'' et avant l’instruction ''%%RewriteBase /%%'' :
RewriteCond %{HTTPS} !=on\\
RewriteRule (.*) https:%%//%%%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
{{nextcloud:Nextcloud-htaccess-forcer-https_8e3f02b24efd4bb2a0.png}}
La première ligne **RewriteCond** est la condition.\\
La seconde est la **règle** de réécriture.
=== 3.3) Suppressions des fichiers par défaut ===
Le répertoire modèle utilisé lors de la création d’un profil utilisateur se trouve dans : ''%%/var/www/nextcloud:core/skeleton/Documents/%%''
rm -r “/var/www/nextcloud:core/skeleton/Documents/”
rm -r “/var/www/nextcloud:core/skeleton/Photos/”
rm “/var/www/nextcloud:core/skeleton/Nextcloud intro.mp4”
rm “/var/www/nextcloud:core/skeleton/Nextcloud.png”
L’exemple ci-dessus supprime les répertoires et les fichiers et ne garde que le fichier ''%%Nextcloud Manual.pdf%%''\\
Bien entendu, de nouveaux fichiers et répertoires peuvent être rajoutés en fonction du besoin.
=== 3.4) Installation et Activation d’applications dans Nextcloud ===
== External storage support : ==
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
Application permettant de se connecter à des partages externes (SMB, FTP etc…).
== LDAP user and group backend : ==
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
Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory).
== Mise à jour de toutes les applications ==
sudo -u www-data php /var/www/nextcloud:occ app:update –all
=== 3.5) 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%%''.
== Vérification du paramètre trashbin_retention_obligation : ==
sudo -u www-data php /var/www/nextcloud:occ config:system:get \
trashbin_retention_obligation
**A noter :** Si aucune valeur n’est retournée, la configuration par défaut sera utilisée.
== 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.
== 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
== 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 : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#deleted-items-trash-bin|Nextcloud – Deleted Items (trash bin)]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#trashbin|Nextcloud – Occ Trashbin]]
=== 3.6) 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 [[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 : ==
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.
== Configuration du type de tâche dans Nextcloud : ==
sudo -u www-data php /var/www/nextcloud:occ background:cron
**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 :
[mysqld]\\
innodb_buffer_pool_size=512M\\
innodb_io_capacity=4000
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 :
[mysqld]\\
transaction_isolation = READ-COMMITTED\\
binlog_format = ROW
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 : ==
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
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 : ==
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
== 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
sudo -u www-data php /var/www/nextcloud:occ config:system:set filelocking.enabled –value=“true”
# Configuration du Redis
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”
# Configuration de memcache.distributed (à effectuer après la configuration de Redis)
sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.distributed –value=“\OC\Memcache\Redis”
# Configuration de memcache.local et memcache.locking
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”
== Vérification : ==
cat /var/www/nextcloud:config/config.php | \
egrep “’filelocking\.enabled|’memcache\.local\
’memcache\.locking|’host|’port|’timeout|’memcache\.distributed”
{{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
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
== Vérification : ==
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*=”
{{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 : ==
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
== 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\\
**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 : ==
#!/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
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