Créer votre espace cloud personnel avec Nextcloud.

Aujourd’hui nous allons voir l’installation complète de NextCloud, un cloud personnel, sur un VPS tournant sous Ubuntu 16.04 LTS. Vous disposerez ainsi d’un dropbox like à vous et sécurisé. Vous pourrez alors synchroniser vos fichiers et photos, partager vos documents en toute sérénité. Avec Nextcloud vous n’aurez plus besoin de service comme DropBox, Box, Google Drive, etc.

Présentation.

Nextcloud est un logiciel de cloud collaboratif, libre et open source. C’est ce qu’on appelle un fork (version dérivée) de Owncloud qui est supporté par Nextcloud GmbH, une société allemande soutenue par une grande communauté d’utilisateurs. Il est utilisé dans de nombreuses organisations privées ou publiques de toutes tailles.

Présentation de Nextcloud

Ce logiciel permet de placer ses données sur Internet de telle sorte qu’elles soient accessibles depuis n’importe quel appareil connecté au web. Un logiciel collaboratif ou groupware est un logiciel qui facilite le travail collaboratif par le partage de documents, d’agendas, de contacts, par la gestion de groupes d’accès etc…

Nextcloud est gratuit, c’est à dire qu’il est exempt de licence d’utilisation. L’investissement se porte sur la location ou l’achat d’un serveur pour l’héberger type VPS.

Nextcloud est un logiciel libre, open source et s’appuie sur des standards ouverts. Cela offre de nombreuses garanties :

  • Les données stockées restent votre propriété et vous pouvez décider des conditions de leur hébergement.
  • Le modèle économique est garanti si bien que vous ne serez jamais confronté à une obligation onéreuse lors d’une montée en version par exemple.
  • Il est interopérable ce qui permet de l’intégrer dans votre système d’information sans remettre en question les autres composants.

Pour les entreprises, vous pouvez mettre en place facilement avec NextCloud :

  • Une gestion des utilisateurs et des groupes avec OpenID ou LDAP
  • L’accès de vos données existantes sur un serveur FTP ou un NAS interne et/ou externe
  • Le support d’une authentification en deux étapes
  • La synchronisation des clients Nextcloud (mobiles, ordinateurs) avec le serveur
  • Une interface centralisée de gestion
  • Superviser l’ensemble des services dans un logiciel comme Centreon

Installation de la couche LAMP.

Pour fonctionner, NextCloud a besoin de plusieurs briques logiciels dont le fameux LAMP (Linux Apache MySQL PHP).

Avant toute installation, je commence par mettre à jour mon système Linux Ubuntu avec la commande :

# apt-get update -y && apt-get upgrade -y

Nous allons maintenant procéder à l’installation de tous les composants nécessaires pour faire tourner NextCloud. Comme Apache, PHP et différentes librairies utiles avec les commandes suivantes :

# apt-get install apache2 libapache2-mod-php7.0 -y
# apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring -y
# apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip zip -y

Installation de la couche LAMP sous Ubuntu

Enfin, installez MariaDB:

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

Installer MariaDB sous Ubuntu

Toutes les étapes précédentes ne posent aucunes difficultés et tout devrait bien se passer.

Configuration de MariaDb (Ex MySQL)

L’installation de MariaDB n’est pas sécurisée par défaut. Vous devez exécuter le script mysql_secure_installation après l’installation.

# mysql_secure_installation
Répondez aux questions (en rouge) qui vous seront proposés comme dans l’image ci-dessous.

Sécuriser l'installation de MariaDB pour Nextcloud sous Ubuntu

Maintenant nous devons créer la base de données de l’application NextCloud ainsi que son utilisateur d’admin et affecter les bons privilèges.

Attention !!! Toutes les données que vous verrez en gras doivent être personnalisées pour correspondre à votre installation

Entrez dans la base de données :

# mysql -u root -p

Se connecter à un MariaDB

Création de la base de données Nextcloud:

# MariaDB [(none)]> CREATE DATABASE nextclouddb;

Créer la base MariaDB pour Nextcloud

Création d’un utilisateur avec son mot de passe pour Nextcloud:

# MariaDB [(none)]> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'Password';

Création d'un utilisateur Admin pour la base MariaDB de Nextcloud

Affectation des privilèges à l’utilisateur créé :

# MariaDB [(none)]>GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';
# MariaDB [(none)]>FLUSH PRIVILEGES;

Affectation des privilèges à l’utilisateur de la base Nextcloud

Enfin, quittez l’éditeur de la base de données:

# MariaDB [(none)]>\q

Installation de NextCloud.

Maintenant que notre socle est installé. Nous allons passer à l’installation de NextCloud.

A l’heure où j’écris ce tutoriel (09/02/2019) la dernière version disponible est V15.0.3.
Astuce : Vous pouvez consulter les dernières versions et release à cette url : Release Nextcloud

Dans ce tutoriel de démonstration, nous installerons NextCloud dans le dossier root d’Apache. Mais vous pouvez l’installer dans l’emplacement de votre choix.

# cd /var/www/html/
# wget https://download.nextcloud.com/server/releases/nextcloud-15.0.3.zip
# unzip nextcloud-15.0.3.zip
# rm nextcloud-15.0.3.zip

Installation de Nextcloud dans les dossiers d'Apache.

Maintenant il faut donner les bonnes permissions d’Apache au dossier NextCloud.

# chown -R www-data:www-data /var/www/html/nextcloud

Permissions Linux sur le dossier Nextcloud

Création d’un hôte virtuel pour l’instance NextCloud.

Pour réaliser cette opération, il vous faudra créer un fichier nextcloud.conf dans le dossier /etc/apache2/sites-available.

Rappel : Un hôte virtuel ou virtual host (vhost) en anglais est un système permettant au serveur web d’héberger plusieurs sites, avec des paramètres personnalisés, sur un seul et même serveur. Sans ce système, nous serions obligés d’utiliser un serveur différent par site.
# vi /etc/apache2/sites-available/nextcloud.conf

Puis copier dans ce fichier cet exemple.

<VirtualHost *:80>

DocumentRoot /var/www/html
ServerName Votre_IP_ou_Nom_Domaine
ErrorLog ${APACHE_LOG_DIR}/nextcloud-error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud-access.log combined

<Directory /var/www/html/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/html
SetEnv HTTP_HOME /var/www/html

Satisfy Any

</Directory>

</VirtualHost>

Dans la directive ServerName, il faudra rajouter votre IP publique de votre VPS ou bien votre nom de domaine.

Quelques explications pour les directives les plus importantes :

  • ServerName
    La première directive est le ServerName . Dans notre cas, il indiquer le FQDN ou l’adresse IP publique que nous souhaitons utiliser pour cet hôte. Vous pouvez également utiliser la directive ServerAlias pour indiquer plusieurs autres FQDN qu’il faut utiliser pour cet hôte.
  • ServerAdmin
    Nous avons ensuite la directive ServerAdmin . Il faut indiquer l’adresse email de l’administrateur du serveur pour qu’elle apparaisse dans les pages d’erreur.
  • DocumentRoot
    C’est LA directive qui est la plus importantes dans la configuration de l’hôte : elle permet de définir vers quel dossier pointe l’hôte virtuel. Sinon, le dossier par défaut (/var/www/html) sera utilisé.
    Comme beaucoup de gens, je place tous les dossiers de mes sites dans un dossier commun (/var/www par exemple), puis je crée un sous-dossier par hôte, portant le nom du FQDN de l’hôte. Cela permet de savoir d’un coup d’œil quel dossier appartient à quel hôte.
  • ErrorLog et CustomLog
    Les deux dernières directives concernent l’emplacement des fichiers de log. ErrorLog permet de définir l’emplacement du fichier de journalisation d’erreur et CustomLog, permet de définir le fichier des journaux des requêtes envoyées au serveur. Je modifie le nom des fichiers de logs avec comme préfixe le nom de mon site, nous avons comme cela des fichiers de log séparés par hôte virtuel.

Il faut maintenant activer la configuration pour NextCloud avec la commande (le fichier de configuration à activer correspond au fichier de conf de votre virtual host, ici nextcloud.conf) :

# a2ensite nextcloud

activer la configuration Apache pour NextCloud

Pour plus de sécurité, désactivez le fichier virtuel hôte par défaut :

# a2dissite 000-default

Désactivez le fichier virtuel hôte par défaut

Puis, on active les modules d’Apache pour un fonctionnement optimal de la suite NextCloud :

# a2enmod rewrite headers env dir mime setenvif

Activation des modules d’Apache pour un fonctionnement optimal de la suite NextCloud

Voici quelques explications sur les différents modules Apache activés :

  • Le module Apache mod_rewrite est un module puissant et sophistiqué qui permet la réécriture des URLs.
  • Le module optionnel d’en-têtes (headers) permet la personnalisation des en-têtes HTTP de réponse. Des champs d’en-têtes peuvent être ajoutés, remplacés ou supprimés.
  • Ce module mod_env, permet de contrôler les variables d’environnement internes utilisées par divers modules du serveur HTTP Apache. Ces variables sont aussi accessibles aux scripts CGI en tant que variables d’environnement système natives, et disponibles dans les pages SSI.
  • Mod_dir permet la redirection des adresses se terminant par un répertoire sans slash de fin et la mise à disposition des fichiers index de répertoire
  • Le module mod_dir permet d’assigner des métadonnées aux contenus sélectionnés pour une réponse HTTP, en associant des modèles d’URI ou de noms de fichiers aux valeurs des métadonnées. Par exemple, les extensions de noms de fichiers définissent souvent le type de médium Internet, la langue, le jeu de caractères et le codage du contenu.
  • Le module mod_setenvif vous permet de définir des variables d’environnement internes de manière conditionnelle en fonction de critères que vous pouvez spécifier. Ces variables d’environnement peuvent être utilisées par d’autres parties du serveur pour prendre des décisions quant aux actions à entreprendre, et pour déterminer si les scripts CGI et les pages SSI doivent pouvoir y accéder.

Et enfin pour prendre en compte toutes ces modifications il faut redémarrer le service Apache.

# service apache2 restart

Redémarrer le service Apache sous Ubuntu

Astuce : Si vous ne souhaitez pas saisir le /nextcloud après l’adresse de votre serveur vous devez vous assurez que le fichier de configuration par défaut d’Apache est bien désactivé grâce à ces commandes : a2dissite 000-default.conf && service apache2 restart. Puis rajouter ceci dans votre fichier de conf de Nextcloud (nextcloud.conf) en rouge. N’oubliez pas de recharger la config avec les commandes a2ensite nextcloud.conf && service apache2 restart.

Configuration avancée du fichier nextcloud.conf pour Nextcloud

Test d’accessibilité à NextCloud.

Maintenant, afin de vérifier que toutes nos modifications sont correctes, ouvrez votre navigateur, puis rendez-vous l’adresse : http://adresse-ip-de-votre-serveur/nextcloud

Si tout est bien configuré, vous verrez normalement s’afficher une page similaire à celle-ci-dessous :

Test d’accessibilité à NextCloud

Conclusion

Dans un deuxième tutoriel, nous verrons plus en détail la configuration de notre instance NextCloud, notamment l’ajout d’un certificat SSL à notre installation et quelques réglages de sécurités. Si vous avez déjà une installation Nextcloud et que vous souhaitez basculer ver la V16, vous pouvez consulter ce tutoriel : Comment migrer Nextcloud vers la version V16.

That’s All.

1 potin

  1. Bonjour,

    J’ai realise l’installation sur un ordinateur en suivant votre tutoriel. J’ai acces depuis le lan en tapant dans la barre internet ‘adresseIP’/nextcloud . Malheureusement, je n’arrive pas a rajouter un acces WAN. J’ai un DNS qui fonctionne (je l’utilise pour le serveur ssh), j’ai creer les regles de forwarding pour le port 80 et 443. J’ai modifie le fichier /var/www/html/nextcloud/config/config.php pour ajouter mon nom de domaine a trusted domain. Comment dois-je faire? Dois-je reprendre l’installation depuis le debut?
    Merci de votre comprehension et bonne journee.

Laisser un commentaire

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