Installation de NextCloud sur Debian 10.7

(Article non encore relu totalement)

A titre personnel, j’ai un serveur YunoHost avec une instance de NextCloud. Ceci me donne entière satisfaction. Cela me permet d’avoir des données disponibles depuis n’importe où dans le monde. En outre, mon PC LinuxMint se synchronise avec mon serveur au moindre changement.

Quoi ? Je ne voyage jamais ?

C’est vrai ! Et alors ? Je fais ce que je veux (non, pas avec mes cheveux)

Quand je suis à 12 km de chez moi pour les cours (reconversion à 45 ans), j’aime que mes données soient synchronisées et disponibles.

Bon, bref, dans le cadre de ma reprise d’étude, je dois réaliser des projets. Et, l’un d’eux sera de mettre en production un NextCloud en mode « je colle les mains dans le cambouis plutôt que de me reposer sur YunoHost ».

Une technique (il en existe d’autre) est d’installer Debian10 puis apache et php ainsi que MariaDB puis NextCloud.

Pour jouer (travailler, c’est s’amuser, donc c’est jouer) sans souci, j’utilise un serveur ESXI sur machine de récupération un peu chargée en RAM (merci aux gens qui me donnent du matériel) car les VM sont rapides à monter.

Première étape, création d’une VM de Debian10 en créant une machine la plus basique possible et en utilisant l’iso de la Netinstall de Debian10.7

On colle 4096 MB de RAM mais on supprime les périphériques qui ne servent à rien.

Au moment de la sélection des logiciels, on décoche TOUT !

Ben oui, on est des puristes ; on va tout gérer en lignes de commande et faire « rien qu’à qu’est ce qu’on veut ». Hein Maël 😉

Hop ; une installation plus tard (6 minutes pour moi ; merci la fibre), connexion en root.

En cas d’utilisation de l’ISO NetInstall, tout est déjà à jour.

Si vous avez utilisé une version DVD1, faites

nano /etc/apt/sources.list

Commentez la ligne « deb cdrom:… » en ajoutant un « # » devant

Quitter avec « Ctrl »+ »x »

Rechargez les dépôts avec

apt update

Vous pouvez vérifier que le système est à jour avec

apt upgrade

Bon, évidemment, avant de commencer on se fait un

ip addr

pour connaître notre IP car cela sera utile après (notez la dans votre mémoire humaine ou sur un papier)

Ensuite, on va faciliter la gestion du système avec

apt install ssh sudo wget -y

Pourquoi ?

– On installe sudo pour ne pas avoir à bosser en « root » et ainsi pouvoir prendre la main en SSH depuis un autre poste.

– On installe SSH … parce que perso je ne peux pas vivre sans faire de la prise en main ssh au moins une fois par jour ; chacun ses dépendances.

– On installe wget pour récupérer des trucs sur le Web alors qu’on est en interface console uniquement.

Maintenant, on ajoute notre utilisateur dans le groupe sudo

adduser alban sudo

Heu … alban, c’est moi, et moi, c’est moi, mais toi, tais-toi 😀 (OK, je sors).
Sinon, on peut aussi utiliser Pascal ou Pablo (Private Joke)

A partir de maintenant, on peut passer en connexion SSH depuis son terminal si on est un amoureux des Manchots ou via Putty si on préfère les Fenêtres (et ceux qui (croient qu’ils) n’aiment pas Linux mais sont sous Mac OS comme Maël … Ben c’est de l’Unix alors le Terminal est déjà là 😀 )

Allez, pour le fun, je vous le fais depuis une autre VM Linux ; mais sinon, je le fais depuis mon PC en dur

ssh alban@192.168.0.45

(ça, c’est dans mon cas ; vous, vous utilisez votre prénom (ou Pascal ou Pablo) et votre IP récupérée plus tôt).

A partir de maintenant, on va pouvoir user du copier/coller ; plus cool.

On installe apache

sudo apt-get install apache2 libapache2-mod-php -y

Et voilà ; maintenant, on vérifie si Apache tourne bien ?

Hop, on ouvre un navigateur et on tape http://192.168.0.45 (puisque c’est mon IP)

Donc, ça tourne ; on passe à la suite et on installe php

sudo apt-get install php php-gd php-curl php-zip php-dom php-xml php-simplexml php-mbstring -y

Dès que le système vous rend la main, vous pouvez installer Mariadb (une base de données) et mysql

sudo apt-get install mariadb-server php-mysql -y

Après l’installation, il convient maintenant de sécuriser la base de données

sudo mysql_secure_installation

Là, on tape sur Entrer pour ne pas mettre de mot de passe puis ça propose

set root password ? [Y/n]

Là, vous dites « Y » pour mettre un mot de passe.

Et ensuite, il faut répondre « Y » à toutes les questions et on obtient cela

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Après cette sécurisation, on peut maintenant configurer la chose

sudo mysql -u root -p

Il faudra taper les réponses après MariaDB [(none)]> Mais attention, il faudra toujours un « ; » en fin de ligne !!!

CREATE DATABASE nextcloud;

(oui, je sais, ma base de données s’appelle nextcloud, mais je n’avais pas d’autre idée)

CREATE USER "nextcloud"@"localhost";

(Ben oui, on continue ; on colle du nextcloud partout 😀 …)

SET password FOR "nextcloud"@"localhost" = password("MOT-DE-PASSE");

(évidemment, changez MOT-DE-PASSE par ce que vous voulez)

GRANT ALL PRIVILEGES ON nextcloud.* TO "nextcloud"@"localhost" IDENTIFIED BY "MOT-DE-PASSE";

(évidemment, changez MOT-DE-PASSE par ce que vous avez noté avant)

FLUSH PRIVILEGES;

EXIT;

Après ces travaux préparatoires, vous pouvez attaquer le vif du sujet = installe NextCloud.

Pour cela, on se déplace dans /var/www/html avec

cd /var/www/html/

On récupère la dernière version :

sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2

Puis, on récupère le sha256 de cette version :

sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256

Et bien sûr, on vérifie :

sudo sha256sum -c *.sha256

Ça doit répondre
latest.tar.bz2: Réussi

On peut maintenant décompresser le fichier archive avec
sudo tar -xvf latest.tar.bz2
(laissez tourner jusqu’à reprendre la main)

Si on fait un
ls
on voit
index.html latest.tar.bz2 latest.tar.bz2.sha256 nextcloud

Donc on a bien le dossier nextcloud qui a été crée.
Le fichier latest.tar.bz2 peut alors être supprimé (ainsi que son sha256) avec
sudo rm latest*

On change le propriétaire du dossier nextcloud (/var/www/html/nextcloud) avec -R (de façon récursive)

sudo chown -R www-data:www-data nextcloud

Puis on donne les droits ; 7 = tous les droits au propriétaire, 5 = droits de lecture et d’accès aux membres du groupe et aux autres (globalement, c’est ce qui est utilisé pour les répertoires). Évidemment, le -R applique les changements de manière récursive.

sudo chmod -R 755 nextcloud

On peut également si faire une petite activation du module SSL/TLS

sudo a2enmod ssl

sudo a2ensite default-ssl

Attention, ne pas oublier de recharger la configuration d’Apache2 :

sudo systemctl reload apache2

Maintenant … Suspense …

Allons-y ; on se tente un http://192.168.0.45 pour revoir Apache … puis … un http://192.168.0.45/nextcloud (oui, oui, vous, vous notez votre IP ; très bonne question 😉 )

Vous devez voir ceci :

Bienvenue dans VOTRE NextCloud 😉

Dans « Créer un compte administrateur », notez un nom et un mot de passe assez robuste (surtout si vous voulez ouvrir l’accès au monde sauvage qu’est le Net).

Ensuite, si vous avez fait comme moi, c’est « nextcloud » comme Utilisateur et comme « Nom de la base de données ». Pour le mot de passe, à vous de vous souvenir de celui utilisé lors de la création de l’utilisateur de la base de données 😉

Je vous laisse choisir si vous voulez ou pas installer les applications recommandées.

Et je vous invite à cliquer sur « Terminer l’installation » (on ne va pas flancher si près du but !)

Finalisation de l’installation de NextCloud sur un serveur Web Debian10 avec Apache2

Ensuite, vous pourrez suivre l’installation des applications et vous accéder à votre NextCloud.

Félicitations !

Tableau de bord avec le choix de toutes les applications recommandées
Page d’accueil en mode simple (sans toutes les applications recommandées)

Ensuite, vous pouvez choisir d’ouvrir ou pas votre box et d’installer un certificat auto-signé (voire un certificat Lets Encrypt) afin de passer en https

Installation de openssl (normalement, c’ets déjà installé)
sudo apt install openssl

Création du dossier nextcloud dans /etc/ssl
sudo mkdir /etc/ssl/nextcloud

On se déplace dans ce dossier
cd /etc/ssl/nextcloud/

Création d’une clé privée avec l’algorithme RSA (en 2048 bits)
sudo openssl genrsa -out nextcloud.key 2048

Lancement d’une demande de CRS (signature de certificat)
sudo openssl req -new -key nextcloud.key -out nextcloud.csr

Génération du certificat auto-signé au format x509 pour 365 jours
sudo openssl x509 -req -days 365 -in nextcloud.csr -signkey nextcloud.key -out nextcloud.crt

Copie de sauvegarde du fichier default-ssl.conf

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.confORIGINE

Et modification de celui-ci

sudo nano /etc/apache2/sites-available/default-ssl.conf

J’ai modifié :

DocumentRoot /var/www/html/nextcloud

SSLCertificateFile /etc/ssl/nextcloud/nextcloud.crt
SSLCertificateKeyFile /etc/ssl/nextcloud/nextcloud.key

Et ajouté :

SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC4
SSLCompression off

Ensuite

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/

sudo service apache2 restart

Et on teste.

Avec http://192.168.0.45, on tombe toujours sur la page par défaut Apache2 … mais … avec https://192.168.0.45 (plus besoin de mettre /nextcloud) … Surprise 🙂

Bon, OK, on a une alerte effrayante de la part de FireFox :

Mais, en cliquant sur « Avancé… », on nous explique pourquoi (certificat auto-signé) et on nous propose de voir le certificat (pas utile puisque c’est le notre)

On accepte le risque (car pas de risque puisque c’est nous) et on accède au NextCloud après avoir ajouté notre exception :

Et voilà.

A vous de jouer maintenant !

A propos de Alban

Papa de 4 enfants étant lui-même resté un enfant. Diététicien-Nutritionniste tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide. Lassé de l'évolution du Monde de la Santé dans lequel les patients sont de plus en plus à traiter comme des clients (je suis un soignant !!!), j'ai opté pour une reconversion en repartant en Alternance... à... 44 ans D'abord dans le cadre d'un BTS SIO option SISR (Solutions d’Infrastructure, Systèmes et Réseaux) en Septembre 2019. Après l’obtention du BTS (16,57/20 ;-) ), j'ai décidé de poursuivre (toujours en alternance) en Bac+3 avec un Bachelor Concepteur de Systèmes d'Information. Depuis septembre 2022, je suis donc encore plus vieux, mais un jeune diplômé "Administrateur Systèmes et Réseaux". (Bac+3 obtenu avec 16,40/20) Citation personnelle : « Si la réussite facile flatte l’égo, C’est de la persévérance que nait le plaisir de la réussite. »

9 commentaires à propos de “Installation de NextCloud sur Debian 10.7”

  1. Bonjour,
    Grand merci pour ton tuto, je l’ai suivi à la lettre (Copier-Coller) !!!
    Installation en moins de 20 minutes avec le Debian 10.8 compris en VM sur un HP 380 Gen8.
    Il n’y a plus qu’a jouer avec.
    Merci encore, ça ma simplifié l’installation.
    A bientôt.

    • Hello,
      Merci pour ton retour.
      Si cela t’a été utile = c’est avec plaisir !
      Comme dans tous les concepts de partage libre, le but est bien que le temps passé par les uns soit bénéfique aux autres, mais le fait de la savoir est toujours sympathique 😉
      Je te souhaite de bons jeux … D’autant qu’avec les VM, c’est facile de prendre des risques ; il n’y a qu’à faire clic droit et supp puis recommencer 😀
      Au plaisir,

  2. Rétroliens : Installation de nextcloud 21 (avec apache, php et MariaDB) - TREVILLY.COM

  3. Bonjour Alban,

    Je vais relire ton tuto qui me paraît bien complet, je te remercie.
    J’ai déjà un serveur Debian, je dis serveur mais je l’utilise plus comme un NAS que comme un serveur. Je veux dire accès ssh à distance avec sshfs.
    Je souhaite installer NextCloud pour utiliser mon nouveau PinePhone Mobian pleinement (contacts et calendrier).
    J’en arrive à mon commentaire, tu n’as parlé de la partie nom de domaine et éventuellement DDNS, tu as une IP fixe?
    Merci pour le tuto!!!

    • Salut,

      Rapidement,
      Je te conseille YunoHost (base Debian) et NextCloud dessus.
      Une tuerie.
      J’ai un nom de domaine, la suite Collabora On Line, une synchro de mon PC portable (reprise d’études) en continue avec le serveur, … LE RÊVE !!!
      Mais tu peux tester NextCloud de diverses manière comme cette installation, ou via Flat ou via Docker aussi 😉

      ++

        • Hello,

          Petit retour :
          Pour un projet dans le cadre de ma reprise d’étude (à mon âge, on n’a pas idée …), je me suis monté un serveur NextCloud sur Debian 10.8 … en louant un VPS chez OnetSolutions.
          Du coup, j’ai pris un nom de domaine et installé un certificat Lets’Encrypt dessus.
          J’ai donc pensé à toi 🙂
          (oui, oui, tout fonctionne en https forcé)

          Bref, je vais te faire un tuto 😉

          A bientôt,

  4. Rétroliens : Surveiller un service et le relancer automatiquement – TREVILLY.COM

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.