====== Installation serveur Nextcloud (Debian) ======
===== Prérequis =====
* Minimum 512Mib RAM
* OS Linux
[[https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html|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 [[https://nextcloud.com/install/#instructions-server|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
{{ :wiki:nextcloud:installation_serveur_linux_nextcloud_1.png?400 |}}
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
DocumentRoot /var/www/nextcloud/
ServerName your.server.com
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
Dav off
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 :
* Définir l'identifiant administrateur de l'application Nextcloud avec son mot de passe
* Laisser par défaut le stockage & de données
* Remplir les champs de l'utilisateur/mot de passe et le nom de la base de données précédemment créer en ligne de commande mysql.
* Enfin laisser localhost en hôte de base de données.
{{ :wiki:nextcloud:installation_serveur_linux_nextcloud_2.png?400 |}}
Choisir les applications souhaiter.
{{ :wiki:nextcloud:installation_serveur_linux_nextcloud_3.png?400 |}}
L'installation de Nextcloud est terminer !
{{ :wiki:nextcloud:installation_serveur_linux_nextcloud_4.png?400 |}}
===== 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',