====== Mise en place d'un Nextcloud avec apache2 et virtualhost====== {{ :wiki:linux:nextcloud_logo.png?400 |}} Dans cette documentation nous installerons une solution NextCloud sur base d'un apache2. Cette documentation est réalisée dans le cadre d'un TP guidé, il peut donc y avoir d'autre méthode plus ou moins simple pour y parvenir. Pour mieux s'y retrouver cette documentation disposera de plusieurs screenshots illustrant les consignes. ## Préambule Nous considérons que vous êtes équipé de cette manière : - Une VM sous Debian 11 vierge **[NextCloud]** Les allocations de matériel (CPU/RAM...) sont à allouer selon vos envies, attention à respecter la configuration minimale. C'est à dire : Pour **NextCloud** : - *2GB* de ram - *2* cœurs de CPU - *20GB* d'espace disque - *Debian 11* - *php 8.1* Nos IP pour notre infrastructure seront : - [NextCloud] : **10.192.43.10** Mot de passe par défaut sur toutes les sessions : **Not24get** Rappel des deux commandes essentiels : - ''ip a'' (connaitre son adresse IP) - ''nano /etc/network/interfaces'' (configuration de l'interface réseau) **Conseil :** Ajouter les deux machines dans un logiciel tel que mRemoteNG pour faciliter l'administration. # Installation de Nextcloud avec l'archive ## Installation des dépendances ### GIT apt install git Vérifier avec : git --version ### MariaDB apt install mariadb-server mysql_secure_installation Suivez la procédure d'installation de MariaDB. Vérifier la bonne exécution avec : systemctl status mariadb ### apache2 apt-get install apache2 ## Téléchargement du binary - Se placer dans le dossier 'www' cd /var/www - Telecharger le binary wget https://download.nextcloud.com/server/releases/latest.tar.bz2 - Extraction de l'archive tar xvf latest.tar.bz2 ## Création de l'utilisateur dans le SGBD mysql -uroot -p ```sql CREATE USER nextcloudUser IDENTIFIED BY 'Not24get'; CREATE DATABASE nextcloudDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON nextcloudDB.* TO nextcloudUser; FLUSH PRIVILEGES; ``` * Tester la connexion : mysql -u nextcloudUser -p -e "SHOW DATABASES;" ## Création structure de dossier ### Permissions dossiers chown -R www-data: /var/www/nextcloud ## Configuration du serveur SQL sur le client Nextcloud - Type : ''mysql'' - Hôte : ''127.0.0.1:3306'' - Nom : ''nextcloudDB'' - Nom d'utilisateur : ''nextcloudUser'' {{ :wiki:linux:nextcloud-gui-installation.jpg?400 |}} # Reverse proxy avec apache {{ :wiki:linux:656px-apache-load-balancer-mod-proxy-http.png?400 |}} ## Création de la config apache2 - Activer l'option reverse_proxy : ``` a2enmod proxy proxy_http service apache2 restart ``` - Créer la configuration dans les *sites-available* : nano /etc/apache2/sites-available/nextcloud.dom.vade.fr.conf ```sh DocumentRoot /var/www/nextcloud/ ServerName nextcloud.dom.vade.fr Require all granted AllowOverride All Options FollowSymLinks MultiViews Dav off ``` - Activer la configuration : a2ensite nextcloud.dom.vade.fr.conf systemctl apache2 reload - Puis vérifier : systemctl status apache2 ## Mes sources 1. [https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html/](https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html)