(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épondrelatest.tar.bz2: Réussi
On peut maintenant décompresser le fichier archive avecsudo tar -xvf latest.tar.bz2
(laissez tourner jusqu’à reprendre la main)
Si on fait unls
on voitindex.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) avecsudo 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 :
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 !)
Ensuite, vous pourrez suivre l’installation des applications et vous accéder à votre NextCloud.
Félicitations !
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/sslsudo mkdir /etc/ssl/nextcloud
On se déplace dans ce dossiercd /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 jourssudo 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 !
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,
Rétroliens : Installation de nextcloud 21 (avec apache, php et MariaDB) - TREVILLY.COM
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 😉
++
Salut Alban,
Merci pour ta réponse éclair!
Je regarde tout ça.
Richard
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,
Salut Alban,
Excellent, j’attends donc ton tuto avec impatience pour le mettre en oeuvre chez moi!!
Merci mille fois.
Richard
Rétroliens : Surveiller un service et le relancer automatiquement – TREVILLY.COM