Nextcloud est une solution open source puissante pour héberger vos fichiers, calendriers, contacts et bien plus, le tout sur votre propre serveur. Voici un guide pas à pas pour installer Nextcloud sur une machine Debian 12.
Étape 1 : Mise à jour de votre système
Commencez par vous assurer que votre système est à jour :
sudo apt-get update && sudo apt-get upgrade -y
Étape 2 : Installation et configuration d’Apache
Installez le serveur web Apache :
sudo apt install apache2 -y
Activez Apache pour qu’il démarre automatiquement au démarrage :
sudo systemctl is-enabled apache2
Vérifiez que le service est actif :
sudo systemctl status apache2
Étape 3 : Configurer le pare-feu avec UFW
Installez UFW (Uncomplicated Firewall) pour sécuriser votre serveur :
sudo apt install ufw
Autorisez les connexions SSH et activez le pare-feu :
sudo ufw allow OpenSSH sudo ufw enable
Autorisez les connexions HTTP et HTTPS :
sudo ufw allow "WWW Full" sudo ufw reload
Vérifiez le statut du pare-feu :
sudo ufw status
Étape 4 : Installer PHP et ses modules requis
Nextcloud nécessite PHP et plusieurs modules. Installez-les en une commande :
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-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-dev php-redis php-memcached
Vérifiez la version de PHP et les modules installés :
php --version php -m
Étape 5 : Configurer PHP
Éditez le fichier de configuration PHP pour optimiser les performances et ajuster les limites nécessaires à Nextcloud :
sudo nano /etc/php/8.2/apache2/php.ini
Modifiez les paramètres suivants :
date.timezone = Europe/Zurich memory_limit = 4096M upload_max_filesize = 100000M post_max_size = 100000M max_execution_time = 3600 file_uploads = On allow_url_fopen = On display_errors = Off output_buffering = Off zend_extension=opcache opcache.enable = 1 opcache.interned_strings_buffer = 64 opcache.max_accelerated_files = 10000 opcache.memory_consumption = 128 opcache.save_comments = 1 opcache.revalidate_freq = 1
Redémarrez Apache pour appliquer les modifications :
sudo systemctl restart apache2
Étape 6 : Installer et configurer MariaDB
Installez MariaDB :
sudo apt install mariadb-server -y
Assurez-vous qu’il est activé :
sudo systemctl is-enabled mariadb
Vérifiez son statut :
sudo systemctl status mariadb
Configurez MariaDB avec l’assistant de sécurisation :
sudo mariadb-secure-installation
Créez une base de données et un utilisateur pour Nextcloud :
sudo mariadb -u root -p CREATE DATABASE nextcloud_db; CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'StrongPassword'; GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextclouduser'@'localhost'; FLUSH PRIVILEGES; SHOW GRANTS FOR 'nextclouduser'@'localhost'; quit
Étape 7 : Télécharger et configurer Nextcloud
Installez les outils nécessaires :
sudo apt install curl unzip -y
Téléchargez et décompressez Nextcloud :
cd /var/www/ curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip unzip nextcloud.zip
Assurez-vous que les permissions sont correctement définies :
sudo chown -R www-data:www-data nextcloud
Étape 8 : Configurer Apache pour Nextcloud
Créez un fichier de configuration pour le site Nextcloud :
sudo nano /etc/apache2/sites-available/nextcloud.conf
Ajoutez le contenu suivant, en ajustant les détails comme le nom de domaine :
<VirtualHost *:80> ServerName cloud.ait.hosting DocumentRoot /var/www/nextcloud/ ErrorLog /var/log/apache2/files.cloud.ait.hosting-error.log CustomLog /var/log/apache2/files.cloud.ait.hosting-access.log combined <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory> </VirtualHost>
Activez le site et redémarrez Apache :
sudo a2ensite nextcloud.conf sudo apachectl configtest sudo systemctl restart apache2
Étape 9 : Sécuriser avec Certbot
Installez Certbot pour générer un certificat SSL :
sudo apt install certbot python3-certbot-apache
Exécutez Certbot pour configurer HTTPS :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@ait.hosting -d cloud.ait.hosting
Conclusion
Votre installation de Nextcloud sur Debian 12 est maintenant terminée. Accédez à votre serveur via le navigateur en utilisant l’URL configurée (par exemple, https://cloud.ait.hosting), et suivez les instructions à l’écran pour finaliser la configuration. 🎉
Cron job
Créer un nouveau crontab qui sera utilisé pour exécuter le script crontab de Nextcloud
sudo crontab -u www-data -e
Ajoutez la configuration suivante au fichier crontab
*/5 * * * * php --define apc.enable_cli=1 -f /var/www/nextcloud/cron.php
Enregistrer et quitter le fichier
Bonus
Ouvrez le fichier de configuration de Nextcloud /var/www/nextcloud/config/config.php
sudo nano /var/www/nextcloud/config/config.php
et rajouter ces commandes
'memcache.local' => '\OC\Memcache\APCu',
'default_phone_region' => 'ch',
'maintenance_window_start' => 1,
Enregistrez les modifications et fermez le fichier lorsque vous avez terminé
OCC Commandes
Peut être utile
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:repair --include-expensive
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-columns
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-primary-keys