====== 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',