Installation de Nextcloud sur Debian 13 (Trixie)
Documentation technique pour le déploiement d'une solution de Cloud privé au sein de l'infrastructure mpr-if.infra
1. Informations Générales
- IP Serveur :
10.192.193.101 - URL d'accès :
http://cloud.mpr-if.infra/ - Domaine Infrastructure :
mpr-if.infra - Version Nextcloud : 30.x (Hub 9)
- Base de données : MariaDB 11.x
- Moteur de script : PHP 8.2 (mod_php)
1.1 Objectifs
- Fournir un service de stockage et de partage de fichiers sécurisé.
- Assurer l'intégrité des données via une base de données relationnelle.
- Permettre l'évolutivité via l'installation de modules complémentaires (Talk, Calendar).
2. Sommaire
- Préparation du système et dépendances PHP
- Configuration de MariaDB
- Téléchargement et mise en place de Nextcloud
- Configuration du VirtualHost Apache
- Optimisation de PHP (php.ini)
- Finalisation de l'installation via OCC
- Sécurisation et maintenance
3. Préparation du système et Dépendances
Nextcloud nécessite une pile LAMP complète avec de nombreuses extensions PHP pour le traitement d'images et la gestion des archives.
3.1 Mise à jour et dépôts
apt update && apt upgrade -y
apt install -y apache2 mariadb-server libapache2-mod-php php8.2 \
php8.2-gd php8.2-mysql php8.2-curl php8.2-xml php8.2-zip \
php8.2-intl php8.2-mbstring php8.2-bz2 php8.2-ldap php8.2-bcmath \
php8.2-gmp php8.2-imagick unzip wget curl
4. Configuration de la base de données MariaDB
4.1 Création de la base et de l'utilisateur
mariadb -u root -p
CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'Nexussolo10!';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. Déploiement de Nextcloud
5.1 Téléchargement des sources
Nous installons Nextcloud dans /var/www/cloud.mpr-if.infra.
cd /tmp
wget [https://download.nextcloud.com/server/releases/latest.zip](https://download.nextcloud.com/server/releases/latest.zip)
unzip latest.zip
mkdir -p /var/www/cloud.mpr-if.infra
mv nextcloud/* /var/www/cloud.mpr-if.infra/
5.2 Création du répertoire de données (Data)
Pour des raisons de sécurité, le répertoire de stockage des fichiers utilisateurs doit être distinct de la racine web.
mkdir -p /var/nextcloud_data
chown -R www-data:www-data /var/www/cloud.mpr-if.infra/
chown -R www-data:www-data /var/nextcloud_data/
chmod -R 750 /var/nextcloud_data/
6. Configuration d'Apache
6.1 Création du VirtualHost
Fichier : /etc/apache2/sites-available/cloud.mpr-if.infra.conf
<VirtualHost *:80>
ServerName cloud.mpr-if.infra
DocumentRoot /var/www/cloud.mpr-if.infra
<Directory /var/www/cloud.mpr-if.infra/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
6.2 Activation du site
a2ensite cloud.mpr-if.infra.conf
a2enmod rewrite headers env dir mime
systemctl restart apache2
7. Optimisation de PHP
Nextcloud nécessite des réglages spécifiques pour gérer les fichiers volumineux et le cache.
Fichier : /etc/php/8.2/apache2/php.ini
memory_limit = 512M
upload_max_filesize = 2G
post_max_size = 2G
date.timezone = Europe/Paris
output_buffering = Off
# Optimisation OPcache
opcache.enable=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
systemctl restart apache2
8. Finalisation via la ligne de commande (OCC)
Au lieu d'utiliser l'assistant web, nous finalisons l'installation via occ pour automatiser le processus.
cd /var/www/cloud.mpr-if.infra/
sudo -u www-data php occ maintenance:install \
--database "mysql" --database-name "nextcloud_db" \
--database-user "nextcloud_user" --database-pass "Nexussolo10!" \
--admin-user "admin" --admin-pass "AdminPass123" \
--data-dir "/var/nextcloud_data"
8.1 Configuration des domaines de confiance
sudo -u www-data php occ config:system:set trusted_domains 1 --value="cloud.mpr-if.infra"
9. Sécurisation et Maintenance
9.1 Ajout des indices manquants
Après une installation, il est courant que la base de données nécessite une optimisation.
sudo -u www-data php occ db:add-missing-indices
9.2 Configuration du Cron
Pour les tâches de fond (nettoyage, rappels), Nextcloud doit utiliser le Cron système plutôt que le mode AJAX.
# Ajouter à la crontab de www-data
echo "*/5 * * * * php -f /var/www/cloud.mpr-if.infra/cron.php" | crontab -u www-data -
sudo -u www-data php occ background:cron