Installer Nextcloud sur Debian / Raspberry PI 3

Choose from our wide range of portfolio layouts

Cet article se focalise sur le processus d’installation de Nextcloud sur les distributions Debian 10 (Buster) et Debian 11 (Bullseye). Nextcloud, dérivé du projet ownCloud, est un serveur de partage de fichiers open-source que vous pouvez héberger vous-même. Il offre la possibilité de centraliser le stockage de documents, images, vidéos, films et autres médias, à la manière des fonctionnalités proposées par Dropbox.

La plateforme permet de partager aisément les fichiers stockés avec vos amis, collègues ou clients. Conçu avec une attention particulière à la sécurité, Nextcloud veille à ce que vos données sensibles demeurent à l’abri des regards indésirables. Grâce à sa fonction de synchronisation, il assure la cohérence de vos fichiers, contacts et calendriers entre différents appareils.

Pour réussir l’installation de Nextcloud, il est impératif de satisfaire à plusieurs dépendances préalables. Afin de vous offrir une expérience fluide, cet article couvrira en détail la mise en place de toutes les dépendances nécessaires. Sans plus tarder, entamons le processus d’installation de Nextcloud sur les systèmes Debian 10/11.

Étape 1 : Installer le serveur de base de données MariaDB

Un serveur de base de données est un composant essentiel de NextCloud. Installez-le sur Debian en utilisant les commandes ci-dessous :

sudo apt update
sudo apt -y install mariadb-server mariadb-client

Sécurisez l’installation de votre base de données en définissant un mot de passe pour la racine, en désactivant la connexion à la racine à distance et en supprimant les bases de données de test :

sudo mysql_secure_installation

Suivez les étapes suivantes pour configurer la sécurité de votre serveur SQL (Maria-DB) :

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
… Success!

Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
… Success!

By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Créez une base de donnée que vous allez nommer Nextcloud et un user lui aussi nommer Nextcloud :

sudo mysql -u root -p
CREATE USER ‘nextcloud’@’localhost’ IDENTIFIED BY ‘P@sswOrd123’;
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’@’localhost’;
FLUSH PRIVILEGES;
QUIT

Les commandes MySQL exécutées à l’aide de la commande sudo mysql -u root -p accomplissent plusieurs tâches pour préparer l’installation de Nextcloud. Elles créent un utilisateur ‘nextcloud’ avec un mot de passe sécurisé, établissent une base de données ‘nextcloud’ pour stocker les données, octroient à l’utilisateur ‘nextcloud’ tous les privilèges nécessaires sur cette base de données et actualisent les privilèges pour les rendre effectifs. Ces étapes fondamentales garantissent une configuration appropriée de la base de données pour accueillir Nextcloud avec les autorisations adéquates.

Étape 2 : Installation de PHP et du serveur web Apache

Nous avons également besoin de PHP et du serveur web Apache pour faire fonctionner Nextcloud. Exécutez les commandes ci-dessous pour vous assurer que ces dépendances sont installées.
Attention : la version PHP 8.2 via le repo packages.sury.com ne supporte pas l’architecture armel (Raspberry 1)

Désinstallez les anciennes versions de php, et installez la nouvelle, ainsi que ses dépendances

# Remove old PHP
sudo apt -y remove php php-{cli,xml,zip,curl,gd,cgi,mysql,mbstring}

# Install PHP 8.2
sudo apt update
sudo apt install lsb-release apt-transport-https ca-certificates software-properties-common
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c ‘echo « deb https://packages.sury.org/php/ $(lsb_release -sc) main » > /etc/apt/sources.list.d/php.list’
sudo apt update
sudo apt install php8.2
sudo apt install vim php8.2-{bcmath,xml,fpm,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
sudo apt install apache2 libapache2-mod-php8.2

Editez le fichier php.ini

sudo vim /etc/php/*/apache2/php.ini

Définissez ces valeurs en fonction de votre utilisation.

memory_limit = 512M: Augmente la limite de mémoire allouée à PHP à 512 Mo, ce qui peut être bénéfique pour les applications nécessitant davantage de ressources.

upload_max_filesize = 1000M: Établit la taille maximale autorisée pour les fichiers téléchargés à 1Go, ce qui permet de traiter des fichiers plus volumineux.

post_max_size = 1000M: Fixe la taille maximale autorisée pour les données postées à 1Go, en alignant cette valeur avec la limite de téléchargement.

max_execution_time = 300: Augmente le temps d’exécution maximal des scripts à 300 secondes, ce qui est utile pour les opérations plus longues.

Redémarrez le service apache2 :

Étape 3 : Télécharger l’archive Nextcloud

Avec toutes les dépendances installées, téléchargez la dernière archive Nextcloud sur votre système local, et décompresser le fichier avec unzip :

sudo apt -y install wget curl unzip
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
rm -f latest.zip

Déplacez le fichier obtenu dans le dossier web d’Apache, puis définissez les droits de propriété et d’accès corrects :

sudo mv nextcloud /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo sudo chmod -R 755 /var/www/html/nextcloud

Désactiver la configuration par défaut du serveur Apache :

sudo a2dissite 000-default.conf
sudo rm /var/www/html/index.html
sudo systemctl restart apache2

Étape 4 : Exécuter le programme d’installation Web de Nextcloud

Pour l’étape suivante, nous allons le faire sur la console web. Ouvrez votre navigateur préféré et tapez l’URL http://{serverip|hostname]/nextcloud

Créez un compte administrateur en fournissant un nom d’utilisateur et un mot de passe.

Définir le répertoire de données – Il est recommandé d’utiliser une partition séparée du système.

Fournissez également les informations d’identification correctes pour la base de données.

Les identifiants qu’on a utilisé précédemment sont :

Database name: nextcloud
Database password: nextcloud
Database user: P@sswOrd123

Cliquez sur le bouton « Finish setup » pour terminer l’installation de Nextcloud sur Debian 10 / Debian 11.

Vous serez alors dirigé vers le tableau de bord d’administration de Nextcloud où vous pourrez créer des utilisateurs, des groupes, paramétrer l’authentification à deux facteurs, le serveur de messagerie et installer les plugins supplémentaires que vous jugerez nécessaires.

Étape 5 : Configurez Apache Proxy

sudo apt install apache2
sudo nano /etc/apache2/sites-available/nextcloud.conf

Adaptez le fichier selon vos besoins :

Sans SSL :

DocumentRoot /var/www/html/nextcloud/
ServerName cloud.votredomaine.com

<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>

Avec SSL :

<VirtualHost *:80>
ServerName cloud.votredomaine.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</virtualhost>
<VirtualHost *:443>
ServerAdmin admin@example.net
DocumentRoot /var/www/html/nextcloud/
ServerName cloud.votredomaine.com
<Directory /var/www/html/nextcloud/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog /var/log/apache2/nextcloud-error.log
CustomLog /var/log/apache2/nextcloud-access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/nextcloud/fullchain.pem
SSLCertificateKeyFile /etc/ssl/nextcloud/privkey.pem
</VirtualHost>

Activez les modules apache requis :

# Enable ssl and mod_rewrite
a2enmod rewrite
a2enmod ssl

# Additional recommended modules are mod_headers, mod_env, mod_dir and mod_mime:
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Vérifiez la configuration :

sudo apachectl -t

Redémarrez Apache2

sudo systemctl restart apache2