====== 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)