Installer Nextcloud 21 – Ubuntu et Debian


Présentation

Nextcloud 21 – Interface de connexion

Nous allons, dans ce tutoriel, créer un Cloud personnel en installant Nextcloud.
Nous verrons par la suite comment connecter Nextcloud à un annuaire LDAP ou Active Directory.
Pour finir, nous optimiserons notre installation afin d’améliorer les performances de notre Cloud Personnel.

Ce tutoriel a été prévu pour Debian 10 et Ubuntu Server 20.04.



1) 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

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


1.4) Ajout d’un nouveau dépôt pour php8.0

La version 8.0 de php n’est pour le moment pas disponible dans le dépôt officiel de Debian 10 et Ubuntu 20.04.
On ajoute donc un dépôt qui contient la version 8.0 :

Pour Debian 10 :


Pour Ubuntu 20.04 :


1.5) Installation des prérequis pour Nextcloud 21



2) Installation de NextCloud 21

2.1) Création du Site Nextcloud dans Apache

Téléchargement de Nextcloud 21 :
Extraction dans le répertoire /var/www/ :
Edition du fichier de configuration du site :

Contenu :

Activation du site et des modules nécessaires :
Changement du propriétaire du répertoire nextcloud :
Vérifications versions :


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.

Attention : Remplacer “VotreMotDePasse” par le mot de passe que vous aurez choisi.

Création de la base de données :

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

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”.



3) Configuration de Nextcloud 21

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

Remplacer FR par votre code pays ISO 3166-1.


3.1) Configuration de Pretty URLs

Pretty URLs permet de supprimer le “index.php” dans la barre d’adresse.


3.2) Forcer HTTPS

Edition du fichier .htaccess :

Se rendre à la fin du fichier et renseigner les lignes suivantes juste avant la balise <IfModule mod_env.c> et avant l’instruction RewriteBase / :

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/

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 :

Application permettant de se connecter à des partages externes (SMB, FTP etc…).

LDAP user and group backend :

Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory).

Mise à jour de toutes les applications


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 :

A noter : Si aucune valeur n’est retournée, la configuration par défaut sera utilisée.

Modification du paramètre trashbin_retention_obligation :

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
Forcer la suppression définitive de tous les fichiers supprimés

Il est possible de remplacer --all-users par le nom des utilisateurs séparés par des espaces.
Pour les utilisateurs provenant de l’annuaire LDAP, il faudra utiliser leur ID.

Pour aller plus loin : Nextcloud – Deleted Items (trash bin) et 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 Cron afin d’exécuter ces tâches de manière régulière sans intervention humaine.

Création de la tâche Cron :

Ajouter la ligne suivante à la fin du fichier :

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 :

Pour aller plus loin, vous pouvez consulter la page Background jobs de la documentation officielle.


3.6) Configuration de la langue du profil

Rentrer dans le menu “Paramètres” :


Dans le panneau de gauche, sélectionner “Informations personnelles”.


Régler la Langue et les Paramètres régionaux :

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”.



4) Connexion à LDAP ou Active Directory

Cette étape et facultative, si vous n’avez pas d’annuaire LDAP, passez à l’étape suivante.

Grâce à l’application LDAP user and group backend, il est possible de connecter Nextcloud à un Annuaire LDAP (Exemple : Active Directory avec Samba 4).

4.1) Configuration LDAP

Se rendre dans le menu Paramètres puis Intégration LDAP/AD et renseigner les informations de connexion au serveur LDAP ou Active Directory.

Serveur

Petite parenthèse :
Si votre annuaire LDAP est sur un Serveur AD Samba 4.
Il faudra rajouter la ligne ldap server require strong auth = no dans la section [global] du fichier de configuration de samba 4 (Généralement /etc/samba/smb.conf).
Un redémarrage du service Samba sera necessaire : systemctl restart samba.service


Utilisateurs
Il s’agit d’un exemple.
Pour des raisons d’organisation, un groupe “Nextcloud Users” a été créé sur le Contrôleur de Domaine.


Attributs de login


Groupes

Les utilisateurs et les groupes de l’AD sont maintenant disponibles dans Nextcloud.



5) Utilisateurs et Groupes

5.1) Création Utilisateurs et Groupes

Se rendre dans le menu 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”.



6) Stockages Externes

6.1) Configuration générale

Grâce à l’application 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 Tutoriel TrueNAS).

Se rendre dans Paramètres, Stockages externes :
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 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”.



7) 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 : Documentation Nextcloud – MariaDB/MySQL

Edition du fichier mysql.cnf :

Contenu :

Attention, il s’agit de la section mysqld.

Exemple :

Il est possible d’aller plus loin dans l’optimisation en utilisant cette documentation : Documentation Nextcloud – Configuring a MySQL or MariaDB database


Edition du fichier my.cnf :

Contenu :

Exemple :


Redémarrage MariaDB :


7.2) PHP – Modification memory_limit et désactivation output_buffering

Valeur initiale :
Modification :

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 :


7.3) Configuration de Redis

Source : Documentation Nextcloud – Redis

Ajout de l’utilisateur www-data au groupe redis :
Configuration du fichier redis.conf :
Vérification :
Redémarrage de Redis :


7.4) File Locking et Memory Cache

Source : File Locking et Memory Caching

Configuration avec la commande occ:
Vérification :
Redémarrage d’Apache :


7.5) Activation de PHP OPcache

Source : Documentation Nextcloud – Enable PHP OPcache

Edition du fichier php.ini :
Vérification :
Redémarrage d’Apache :


7.6) Taille limite de téléchargement

Source : Documentation Nextcloud – Uploading big files

Edition du fichier php.ini :
Vérification :
Redémarrage d’Apache :



8) Certificat SSL avec Let’s Encrypt

8.1) Explications

Pour accéder au serveur Nextcloud depuis l’extérieur, il est fortement recommandé de le faire au travers du protocole HTTPS.
Grâce aux étapes précédentes, le serveur Nextcloud force l’utilisation du protocole HTTPS.
Cependant, le certificat SSL utilisé est un certificat auto-signé et n’est pas considéré comme fiable par les navigateurs. Ces derniers afficheront donc un avertissement.

Exemple d’avertissement :

Avertissement en cas d’utilisation d’un certificat non-fiable

Afin de ne pas faire fuir les futurs visiteurs, nous utiliserons Let’s Encrypt pour générer et mettre en place gratuitement un certificat reconnu.


8.2) Génération d’un certificat SSL avec Let’s Encrypt

Le procédure d’obtention de certificat que nous utiliserons nécessite que le serveur soit joignable depuis l’extérieur via le port 80.
Généralement, cela est possible en effectuant une redirection de port depuis votre Routeur ou Box Internet.

Source : https://certbot.eff.org/lets-encrypt/ubuntubionic-apache.html

Activation du dépôt universe :
Installation de Certbot et du plugin pour Apache :
Génération et installation du Certificat :

Remplacer nextcloud.mondomaine.dom par le nom de votre domaine.
Remplacer monadresse@mail.fr par votre adresse mail.
no-redirect car plus haut dans le tutoriel, nous avons déjà forcé la redirection vers HTTPS.
Si vous n’avez pas suivi la méthode de redirection du tuto ou si vous souhaitez quand même que Certbot se charge de la redirection il faudra utiliser le paramètre --redirect.

Test renouvellement automatique :
Visualisation de la tâche de renouvellement :
Visualisation des noms de domaine autorisés dans Nextcloud :
Ajout d’un nom de domaine dans Nextcloud :

Le 1 est l’index dans la liste des domaines autorisés (0 étant le 1er)
–value= est suivi du nom de domaine à autoriser.



9) Sauvegarde de Nextcloud

Source : Nextcloud Backup

Création des répertoires de sauvegarde :


Activation du mode Maintenance :


Sauvegarde des fichiers dans un répertoire /backups/nextcloud/ :

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 :

-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 :


Exemple de script de sauvegarde :

Sauvegarde de base de données MySql/MariaDB.

Exemple de restauration : Nextcloud – Restoring backup



Voilà ! C’est terminé !

Vous avez enfin créé votre Cloud personnel grâce à Nextcloud.
Il ne reste plus qu’à :

  • Créer vos propres utilisateurs
  • Configurer votre routeur pour que nextcloud soit accessible depuis l’extérieur
  • Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
  • Visiter la page de la documentation officielle pour aller encore plus loin.

10 Comments Posted

  1. Super Kévin !
    Ayant déjà pratiquer une installation manuelle de NextCloud, toutes les instructions sont présentes et bien détaillées 🙂
    Utilisant également Debian comme OS, il manque pour être totalement complet une préconisation pour sizer correctement les différentes partitions LVM du système (je ne suis pas sûr d’avoir fait les bons choix…)

  2. Bonjour, je suis novice dans les commande de line (toujours été sur windows)
    J’ai un un message d’erreur quand je rentre ses lignes
    mysql -u root <<-EOF
    UPDATE mysql.user SET Password=patate WHERE User='root';

    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?) WHERE User='root'' at line 1

    Comme vous pouvez voir j'ai modifier le mot de passe mais est ce la seule chose a modifier?
    Merci d'avance :p

    • Bonjour yandesiles974,
      Il faut modifier uniquement la chaine de caractères indiquée.
      Dans ton exemple ça serait plutôt :
      UPDATE mysql.user SET Password=PASSWORD(‘patate’) WHERE User=’root’;

  3. Bonjour,

    Excellent tuto, mais je suis bloqué à l’activation de Redis ! Je reçois une “Internal server error” après avoir fait les modifs indiquées, mais je n’ai aucun répertoire \OC\Memcache\Redis, car j’utilise Virtualmin et ce chemin n’existe pas. Vers quoi dois-je pointer mes variables memcache.local, .locking et .distributed ?

    Par ailleurs, à quoi sert exactement OPcache ?

    Merci d’avance pour toute aide !

  4. Bonjour,
    Je ne sais quoi dire à part MERCI , merci pour ce fabuleux tuto, je vais pas dire que c est le seul qui est parfait mais pas loin; Alors merci à toi du temps que tu as passé à le faire

Laisser un commentaire

%d blogueurs aiment cette page :