Installation Nextcloud sur un serveur Ubuntu 22.04 LTS

BUT : Installation d’un serveur Nextcloud sur un serveur Ubuntu 22.04 LTS

Installation des modules utiles à Nextcloud. Un serveur web (apache/PHP) et une base de donnée (MariaDB). MariaDB est compatible avec MySQL, avec de meilleurs performances et stabilité. Ouverture d’un terminal avec les touches CTRL-ALT-T :

sudo apt update && sudo apt upgrade
sudo apt install apache2 mariadb-server libapache2-mod-php \
   php-gd php-mysql php-curl php-mbstring php-intl php-gmp \
   php-bcmath php-xml php-imagick php-zip php-bz2 php-imap php-smbclient php-ldap

Lancement de MariaDB :

MariaDB affichera son message de bienvenu, puis une ligne d’attente pour entrer les commandes SQL :

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.7-MariaDB-2ubuntu1.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Création de l’utilisateur de la base de donnée : ‘nextcloud_user’.
Le nom de l’utilisateur peut être modifié.
Il faut changer ‘password’ par un autre mot de passe :

CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;

Sorti de la base de donnée par la commande :

Téléchargement du fichier d’archive, de la somme de contrôle et de la clé GPG de Nextcloud depuis le serveur officiel :

wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.md5
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.asc
wget https://nextcloud.com/nextcloud.asc
# vérification du bon téléchargement de nextcloud
md5sum latest.tar.bz2 ; cat latest.tar.bz2.md5
# contrôle de l'authenticité du fichier
gpg --import nextcloud.asc
gpg --verify latest.tar.bz2.asc latest.tar.bz2
# un message Good signature doit apparaitre

Extraction de l’archive puis copie du résultat dans le répertoire du serveur web.
Changement d’utilisateur par ‘www-data’ (utilisateur du serveur web) :

tar -xjvf
sudo cp -r nextcloud /var/www
sudo chown -R www-data:www-data /var/www/nextcloud

Configuration du serveur web. Il existe deux options soit l’utilisation d’une adresse de type « https://nom_de_domaine.ext/nextcloud » (ou http://192.168.0.200/nextcloud) ou une adresse de type « https://nextcloud.nom_de_domaine.ext ». Dans le premier cas il n’y a pas besoin de gérer la DNS du serveur contrairement au deuxième cas qui nécessite la configuration du domaine chez le provider du nom de domaine (OVH, GANDI, IONOS, etc).

Création du fichier de configuration du serveur web (apache) avec une adresse de type « https://nom_de_domaine.ext/nextcloud » (ou http://192.168.0.200/nextcloud) :

sudo nano /etc/apache2/sites-available/nextcloud.conf

Copie du code :

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>

Sorti de l’éditeur en utilisant CTRL-O (pour enregistrer le fichier avec validation du nom par la touche ‘Entrée’) puis CRTL-X (pour sortir de l’éditeur) :

édition du fichier de configuration web (apache)

Création du fichier de configuration du serveur web (apache) avec une adresse de type « https://nextcloud.nom_de_domaine.ext » (ou http://nextcloud.nom_de_domaine.ext) :

sudo nano /etc/apache2/sites-available/nextcloud.conf

Copie du code suivant (en modifiant nextcloud.nom_de_domaine.ext par le vrai nom de domaine) :

<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  nextcloud.nom_de_domaine.ext

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

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

Sorti de l’éditeur en utilisant CTRL-O (pour enregistrer le fichier avec validation du nom par la touche ‘Entrée’) puis CRTL-X (pour sortir de l’éditeur) :

édition du fichier de configuration

Activation du site :

sudo a2ensite nextcloud.conf

Activation des modules utiles au bon fonctionnement du site :

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo a2enmod setenvif

Redémarrage du serveur web :

sudo service apache2 restart

Si un certificat SSL est nécessaire voir l’article sur l’installation d’un certificat Let’s Encrypt :

Installation d’un certificat SSL

La configuration de nextcloud est prête à être lancée via l’adresse du site
http://nom_de_domaine.ext ou https://nextcloud.nom_de_domaine.ext
ou
http://nom_de_domaine.ext/nextcloud ou https://nom_de_domaine.ext/nextcloud
ou
http://192.168.0.1/nextcloud (avec 192.168.0.1 à remplacer par l’adresse IP locale du serveur)
Une page de configuration s’affiche :

Configuration de Nextcloud

Répondre aux diverses questions pour finir la configuration :
Nom d’utilisateur : admin
Mot de passe : password_admin (à replacer par un autre mot de passe)
Répertoire de données : /var/www/nextcloud/data (aucune raison de le changer)
Utilisateur de la base de données : nextcloud_user (voir la config en début de tuto)
Mot de passe de la base de données : password (celui de la config dans MariaDB)
Nom de la base de données : nextcloud
Cliquer sur le bouton « Installer »

Après quelques minutes l’installation de base est terminée

Nextcloud propose les applications recommandées, sachant que l’installation , le paramétrage ou la désinstallation peut se faire à tout moment depuis la console d’administration.

Bravo, le serveur Nextcloud est opérationnel