# Comment installer Nextcloud sous Debian 12 ?

L’installation de Nextcloud sous Debian se fait en quelques étapes. En plus de l’installation, il est nécessaire de protéger la solution Cloud par différents mécanismes de sécurité.

## Nextcloud pour Debian

[Nextcloud](https://www.ionos.com/fr-be/digitalguide/serveur/outils/quest-ce-que-nextcloud/) est une solution de Cloud computing qui vous offre de nombreuses possibilités aussi bien à des fins privées que commerciales. Parmi les nombreux avantages du logiciel, on peut citer les fortes caractéristiques de sécurité pour la protection des données, comme le chiffrement SSL/TLS, l’authentification à deux facteurs et la conformité au RGPD, ainsi que le choix entre des serveurs privés locaux ou des serveurs hôtes externalisés. Nextcloud et nombreuses de ses alternatives prennent en charge tous les systèmes d’exploitation courants et offre une intégration facile de nombreux services.

Dans ce qui suit, nous vous expliquons pas à pas comment configurer Nextcloud sous Debian 12. Pour cela, vous installerez un **serveur web Apache2**, un **serveur MariaDB** et **PHP 8.2**. Pour la sécurité, nous vous montrons comment configurer un ***Uncomplicated Firewall* (UFW)** et les **certificats SSL/TLS nécessaires**.

Conseil Si vous souhaitez installer Nextcloud sous Ubuntu, vous trouverez dans notre Digital Guide les instructions appropriées pour la [configuration de Nextcloud sous Ubuntu 22.04](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/nextcloud-ubuntu-2204/) correspondantes. Nous vous présentons également l’installation de Nextcloud avec Docker.

## Quelles conditions doivent être remplies ?

Pour l’installation de Nextcloud sous Debian 12, peu de conditions préalables sont nécessaires. Vous avez besoin d’un serveur sur lequel Debian 12 est déjà installé. Pour cela, il faut au moins **4 Go de RAM** et **deux CPU**. Il est également important que vous disposiez d’un **accès utilisateur non root avec des droits d’administrateur** et que vous configuriez un nom de domaine qui puisse faire référence à l’adresse IP du serveur.

## Installer le serveur Web Apache2

Tout d’abord, installez un serveur Web Apache2. Pour cela, mettez à jour l’index des paquets Debian afin de pouvoir télécharger la dernière version. Utilisez pour cela la commande `apt update` :

```bash
sudo apt update
```

Ensuite, installez le dernier paquet d’Apache2 à l’aide de la commande suivante :

```bash
sudo apt install apache2
```

Confirmez l’installation avec la touche \[Y\] et appuyez ensuite sur \[Entrée\] pour lancer l’installation.

Après l’installation, vérifiez l’état du service avec les commandes suivantes :

```bash
sudo systemctl is-enabled apache2
sudo systemctl status apache2
```

Sous la première commande, vous devriez voir que le service est automatiquement lancé lorsque vous démarrez le système. Le statut « active » vous indique qu’Apache2 est prêt à être utilisé.

## Configurer le pare-feu

Avec le pare-feu approprié, vous protégez votre système et vos données. Il est recommandé d’utiliser le pare-feu non simplifié (UFW), que vous pouvez configurer par défaut. Pour ce faire, vous devez ouvrir les ports pour OpenSSH, HTTP ainsi que HTTPS. Installez d’abord le paquet UFW avec la commande suivante :

```bash
sudo apt install ufw
```

Confirmez à nouveau avec \[Y\] et terminez l’installation avec \[Entrée\]. Ensuite, activez OpenSSH et UFW avec ces commandes :

```bash
sudo ufw allow OpenSSH
sudo ufw enable
```

Pour lancer UFW, confirmez avec \[Y\]. Le message « *Firewall is active and enabled on system startup* » (le pare-feu est actif et activé au démarrage du système) apparaît alors. Ensuite, ajoutez le port HTTP et le port HTTPS qui doivent être utilisés par le serveur Web. Pour cela, exécutez cette commande :

```bash
sudo ufw allow "WWW Full" (autoriser le WWW complet)
```

Rechargez ensuite UFW :

```bash
sudo ufw reload
```

Pour voir les règles activées, consultez le statut de UFW. Ici, `WWW Full` devrait être activé.

```bash
sudo ufw status
```

## Activer PHP 8.2

Pour les meilleures performances et une compatibilité maximale, Nextcloud lui-même recommande PHP 8.2, qui est inclus par défaut dans Debian 12, de sorte qu’il suffit d’installer les paquets nécessaires. Voici la commande correspondante :

```bash
sudo apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-dev
```

Confirmez avec \[Y\] et \[Entrée\]. Ensuite, vérifiez la version de PHP et activez les extensions :

```bash
php --version
php -m
```

Ouvrez maintenant le fichier de configuration de PHP avec l’éditeur Nano :

```bash
sudo nano /etc/php/8.2/apache2/php.ini
```

Adaptez ensuite la configuration à vos besoins. Selon la manière dont vous souhaitez utiliser Nextcloud avec Debian 12, d’autres valeurs peuvent être recommandées. Dans ce cas, modifiez les paramètres à votre convenance. Les commandes respectives se présentent comme suit.

Dans la première étape, réglez le fuseau horaire :

```bash
data.timezone = Europe/Amsterdam
```

Modifiez les paramètres `memory_limit`, `upload_max_filesize`, `post-max_size` et `max_execution_time` :

```bash
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
```

Activez maintenant file\_uploads et allow\_url\_fopen. Dans les deux cas, la valeur doit être définie sur « On » :

```bash
file_uploads = On
allow_url_fopen = On
```

Désactivez maintenant `display_errors` et `output_buffering` et réglez les valeurs respectives sur « Off » :

```bash
display_errors = Off
output_buffering = Off
```

Activez PHP OPCache avec cette commande :

```bash
zend_extension=opcache
```

Ajoutez la configuration dans la section `opcache` recommandée par Nextcloud pour Debian 12. Voici comment :

```bash
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
```

Pour finir, enregistrez le fichier et quittez l’éditeur Nano. Redémarrez maintenant le service Apache2 :

```bash
sudo systemctl restart apache2
```

## Mettre en place le serveur MariaDB

Nextcloud utilise un serveur MariaDB comme base de données. Vous pouvez l’installer et le vérifier avec ces commandes :

```bash
sudo apt install mariadb-server
```

Confirmez avec \[Y\] et \[Entrée\]. Une fois que l’installation est réussie, tapez le code suivant :

```bash
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
```

Si le serveur fonctionne correctement, sauvegardez le système. Utilisez la commande suivante pour créer un mot de passe root, supprimer les utilisateurs anonymes et effacer la base de données de test :

```bash
sudo mariadb-secure-installation
```

Effectuez les réglages en appuyant sur \[Y\] pour accepter et sur \[N\] pour refuser.

## Créer une base de données et des utilisateurs

Créez ensuite une nouvelle base de données ainsi que l’utilisateur correspondant. Pour vous connecter au serveur MariaDB, utilisez cette commande et saisissez votre mot de passe root :

```bash
sudo mariadb -u root -p
```

Utilisez les commandes suivantes pour créer une nouvelle base de données, un utilisateur et le mot de passe correspondant :

```bash
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'votremotdepasse';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;
```

Remplacez `'votremotdepasse'` par votre propre mot de passe, de préférence avec une forte sécurité. Enfin, vérifiez si « nextclouduser » a accès à la base de données « nextcloud\_db » :

``bash SHOW GRANTS FOR nextclouduser@localhost;

```none
## Télécharger les codes sources actuels
 
Téléchargez maintenant les codes sources actuels pour pouvoir utiliser Nextcloud de manière optimale sous Debian 12. Utilisez d’abord cette commande :
```bash
sudo apt install curl unzip -y
```

</div>Ensuite, allez dans le répertoire */var/www* et téléchargez le code source le plus récent :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
```

</div>Décompressez le fichier et changez ensuite les propriétaires du répertoire sous `www-data` :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud
```

</div>## Configurer l’hôte Apache2

Maintenant, configurez un hôte virtuel Apache2. Pour cela, utilisez cette commande Nano :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
```

</div>Personnalisez le nom de domaine et les deux paramètres `ErrorLog` et `CustomLog`. Pour cela, remplacez le caractère de remplacement « exemple » par votre nom de domaine.

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
&lt;VirtualHost *:80&gt;
ServerName nextcloud.exemple.io
DocumentRoot /var/www/nextcloud/

# log files
ErrorLog /var/log/apache2/files.exemple.io-error.log
CustomLog /var/log/apache2/files.exemple.io-access.log combined

&lt;Directory /var/www/nextcloud/&gt;
Options +FollowSymlinks
AllowOverride All

&lt;IfModule mod_dav.c&gt;
Dav off
&lt;/IfModule&gt;

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
&lt;/Directory&gt;
&lt;/VirtualHost&gt;
```

</div>Enregistrez les modifications et quittez l’éditeur. Activez ensuite la configuration avec la commande suivante et vérifiez-la :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
sudo a2ensite nextcloud.conf
sudo apachectl configtest
```

</div>Si vous obtenez le résultat « syntaxe OK », redémarrez Apache2 et appliquez-lui la configuration de l’hôte :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
sudo systemctl restart apache2
```

</div>## Sécurisation avec SSL/TLS

Sans autre configuration, vous utilisez maintenant Nextcloud sur Debian 12 via un protocole HTTP non sécurisé. Pour protéger vos données, il est donc préférable de configurer HTTPS. Pour cela, utilisez cette commande :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
sudo apt install certbot python3-certbot-apache
```

</div>Générez ensuite un certificat SSL. Pour cela, remplacez à nouveau le caractère de remplacement « exemple » par votre nom de domaine réel :

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```bash
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@exemple.io -d nextcloud.exemple.io
```

## Fin de l’installation de Nextcloud sous Debian 12

Maintenant, terminez l’installation de Nextcloud sous Debian 12. Pour cela, ouvrez votre navigateur Web et accédez au nom de domaine de votre installation Nextcloud. Saisissez un **nom d’utilisateur et votre mot de passe** pour créer un administrateur. Insérez ensuite le nom de votre base de données, le nom d’utilisateur et le mot de passe et cliquez sur « Install ». Vous pouvez ensuite choisir de télécharger quelques applications compatibles ou de sauter cette étape pour le moment. Vous serez alors redirigé vers votre tableau de bord et pourrez utiliser Nextcloud pour vos données.


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/serveur/configuration/installer-nextcloud-sous-debian-12/](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/installer-nextcloud-sous-debian-12/) for AI/LLM consumption.