Table of Contents

Installation serveur Nextcloud (Debian)

Prérequis

Requirements officiel de Nextcloud


Installation des paquets

Installation des paquet pour un serveur LAMP (Linux Apache MariaDB PHP) ainsi que les les modules php demander par nextcloud

Remplacer les X.X par la version disponible avec APT

sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-phpX.X
sudo apt install phpX.X-gd phpX.X-mysql phpX.X-curl phpX.X-mbstring phpX.X-intl
sudo apt install phpX.X-gmp phpX.X-bcmath php-imagick phpX.X-xml phpX.X-zip

Utiliser "Secure_installation" de mysql

Exécuter cette commande

sudo mysql_secure_installation

Cette commande lance un script interactif qui vous guidera à travers plusieurs étapes de configuration initiale pour sécuriser votre installation MariaDB

Le script vous permettra de :

  • Définir un mot de passe root pour MariaDB
  • Supprimer les utilisateurs anonymes
  • Désactiver la connexion root à distance
  • Supprimer la base de données de test et l'accès à celle-ci
  • Recharger les tables de privilèges

Il est fortement recommandé d'exécuter cette commande immédiatement après l'installation de MariaDB pour renforcer la sécurité de votre serveur de base de données.


Créer la base de donnée de Nextcloud

Rentrer dans la console de mysql

sudo mysql -uroot -p

Créer l'utilisateur de la base de donnée

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Créer la base de donnée

CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Attribuer les droits a l'utilisateur

GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';

Recharger la table des privilèges

FLUSH PRIVILEGES;

Quitter la console mysql

Quit;

Télécharger la dernière archive Nextcloud

Se rendre sur la page de téléchargment de nextcloud

Récupérer le lien du bouton, ce lien télécharge directement le dernier ZIP de Nextcloud

Se rendre dans le répertoire temporaire du système et télécharger l'archive

cd /tmp/ && wget https://download.nextcloud.com/server/releases/latest.zip

Extraire l'archive dans le dossier d'apache (/var/www)

sudo unzip latest.zip -d /var/www

Configuration du site WEB

Changement du propriétaire du site

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

Configuration du Virtual Host Apache2

Création du fichier de configuration du site Nextcloud

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

Exemple de virtualhost pour Nextcloud

<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  your.server.com

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

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

Désactiver la configuration par défaut + activer le nouveau fichier de conf et recharger Apache2

sudo a2dissite 000-default
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2

Module Apache2 Additionnel

Il est recommander d'activer ces modules pour le fonctionnement de Nextcloud

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

Fin de configuration en interface WEB

Se rendre sur le site du nextcloud avec : http://ip_du_serveur_nextcloud

Remplir les champs pour la construction de la base de données avec :

Choisir les applications souhaiter.

L'installation de Nextcloud est terminer !

Fichier de configuration config.php

Afin de pouvoir mettre le serveur Nextcloud sur internet, il faudra changer des paramètres sur le fichier config.php

Pour cela éditer le fichier avec :

sudo vim /var/www/nextcloud/config/config.php

Modifer la partition du domaine avec votre adresse IP source ou bien le domaine utilisé pour le serveur : (Ici le nom de domaine est cloud.fr et son ip est 192.168.0.10)

'trusted_domains' => [
    'cloud.fr',
    '192.168.0.10',
],

Configurer derrière un proxy

Pour le bon fonctionnement derrière un reverse proxy (Exemple HAProxy), configurer également ces attributs :

(Ici le nom de domaine est cloud.fr l'ip du proxy est 192.168.0.200 pour du https)

'trusted_proxies' => [
    '192.168.0.200',
],
'overwritehost' => 'cloud.fr',
'overwriteprotocol' => 'https',
'overwrite.cli.url' => 'https://cloud.fr',