3.Télécharger et installer Nextcloud

Télécharger Netxcloud

Lançons la commande wget qui sert à télécharger en ligne de commande.

clouduser@cloudserver:~ wget https://download.nextcloud.com/server/releases/nextcloud-XX.XX.XX.tar.bz2

XX.XX.XX est la dernière verskion du serveur Nextcloud. Voir le site de Nextcloud. Vous obtiendrez un fichier nextcloud-XX.XX.XX.tar.bz2 dans le répertoire de base de l'utilisateur (ici clouduser).
Ce fichier est une archive qu'il faut décompresser.

clouduser@cloudserver:~ tar -x -f nextcloud-XX.XX.XX.tar.bz2

Le répertoire de clouduser contient maintenant un répertoire nextcloud qui contient tous les fichiers nécessaires. Nous allons créer le répertoire /var/www/nextcloud et y copier les fichiers nécessaires.

clouduser@cloudserver:~ sudo mkdir /var/www/nextcloud
clouduser@cloudserver:~ sudo cp -R nextcloud/* /var/www/nextcloud

Mais, pour que le serveur Nextcloud fonctionne, il faut que le propriétaire:groupe de ces fichiers soit l’utilisateur web, soit www-data.

clouduser@cloudserver:~ sudo chown -R www-data:www-data /var/www/nextcloud

Créer le site Web

Il faut faire de ce répertoire un site Web en créant le fichier de configuration qui lui correspond : /etc/apache2/sites-available/nextcloud.conf.

clouduser@cloudserver:~ sudo nano /etc/apache2/sites-available/nextcloud.conf

Une fois dans l'éditeur nano, collez ou saisissez le texte suivant :

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

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

Pour enregistrer avec nano, [Ctrl] + [O] puis [Ctrl] + [X] pour quitter.
Ensuite on ajoute ce site au serveur apache et on relance celui-ci.

clouduser@cloudserver:~ a2ensite nextcloud.conf
clouduser@cloudserver:~ sudo systemctl restart apache2

Configurer Nextcloud

En principe tout est prêt pour lancer le "Installation Wizard". Celui-ci va créer l'administrateur de Nextcloud et la base de données. Ouvrir un navigateur et donner l'adresse de nextcloud, par exemple XX.XX.XX.XX/nextcloud (XX.XX.XX.XX = adresse IP).

Les renseignements à fournir

Administrateur : le login de l'administrateur de Nextcloud et son mot de passe.
Répertoire des données : le répertoire où seront stockées les données de Nextcloud. Plutôt à l'extérieur du serveur Web, donc pas dans pas dans /var/www.
Base de données : le nom de l'utilisateur de la base de données nextcloud et son mot de passe. Vous pouvez modifier le nom de la base de données. Le serveur de base de données et son port (par défaut 3306).

Si ça ne marche pas

Si, comme pour moi, le "Wizard" n'arrive pas à créer la base de données, il faut la créer manuellement. Pour commencer nous allons sécuriser les accès à mysql ou maria-db. Reprenez le terminal et saisissez la commande :

clouduser@cloudserver:~ sudo mysql_secure_installation

Répondre [Y]es à toutes les questions.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yDropping test database…
Success.

Removing privileges on test database…
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Ensuite relancer le serveur mysql :

clouduser@cloudserver:~ sudo service mysql reload

Créons maintenant la base de données pour Nextcloud et son utilisateur. Pour cela entrons dans l'interface en ligne de commande de mysql puis saisissons les commandes nécessaires (ne pas oublier ; après chaque commande) :

clouduser@cloudserver:~ sudo mysql -u root -p

mysql> create database nextcloud;
mysql> create user nextcloudadmin@localhost identified by 'motdepasse';
mysql> grant all privileges on nextcloud.* to nxtcloudadmin@localhost identified by 'motdepasse';
mysql> flush privileges;
mysql> exit;

Vous avez maintenant le nom de la base de données, le nom d'utilisateur et son mot de passe. Vous pouvez relancer le "Installation Wizard".

Faire de Nextcloud le site par défaut du serveur apache

Pour l'instant, l'adresse du serveur Nextcloud comporte le répertoire nextcloud : hhtp://XX.XX.XX.XX/nextcloud ou https://XX.XX.XX.XX/nextcloud.
Plus tard une adresse du type http://moncloud.com/nextcloud ou https://moncloud.com/nextcloud.

Pour ne pas avoir à ajouter à chaque fois /nextcloud dans l'adresse, faisons de Nextcloud le site par défaut du serveur Apache. Modifions pour cela le fichier 000-default.conf.

clouduser@cloudserver:~ sudo nano /etc/apache2/sites-available/000-default.conf

Dans la directive DocumentRoot, modifions le répertoire en nextcloud plutôt que html : DocumentRoot /var/www/nextcloud.
[Ctrl] + [O] pour enregistrer puis [Ctrl] + [X] pour quitter nano.

Même manœuvre pour le fichier default-ssl pour que les adresses en https:// pointent également vers nextcloud.

clouduser@cloudserver:~ sudo nano /etc/apache2/sites-available/default-ssl.conf

Pour finir nous allons rendre Nextcloud accessible par Internet et améliorer la sécurité :

4.Rendre Nextcloud accessible par Internet