Gestion de projet
Projet « Installation et sécurisation de Nextcloud Hub »

Projet « Installation et sécurisation de Nextcloud Hub »

Un Cloud personnel : le rêve… ; gérer le stockage de fichiers, le partage de fichiers entre amis, la création de liens publics, la création de galeries photos, le streaming de vidéos ou de musiques, la synchronisation d’un dossier entre plusieurs appareils, etc…

Les données ne sont plus stockées sur les serveurs des GAFAM je ne sais où, elles sont désormais chez vous,  dans votre garage ou le bureau . Vous êtes le seul maître de vos données. Vous pouvez réunir sur à un seul endroit toutes les données de tous vos appareils et y accéder depuis la maison ou l’extérieur, en évitant ainsi les publicités, la surveillance des masses etc. Bref, le rêve !

Alons-y!

Nous allons l’installer sur un Cent OS 8 (ou derivés AlmaLinux, RockyLinux)

Step 1 – Désactivez SELinux

Avant de commencer, nous devons désactiver SELinux sur le système.

Pour désactiver SELinux, ouvrez le fichier /etc/selinux/config :

nano /etc/selinux/config

Modifiez la ligne suivante :

SELINUX=disabled

Step 2 – Installez la stack LAMP

Tout d’abord, pour configurer Nextcloud, vous devez avoir un serveur LAMP en cours d’exécution sur votre système CentOS 8. Si vous avez déjà exécuté la stack LAMP, ignorez cette étape, sinon utilisez les commandes suivantes pour l’installer.

Installez Apache2

sudo dnf install httpd

Installez MySQL

sudo dnf install @mysql
sudo mysql_secure_installation

Installez PHP

NextCloud 23 required PHP 7.3 or higher version. Let’s install PHP on your system using below comamnd.

sudo dnf install php php-gd php-curl php-zip php-dom php-xml php-simplexml php-mbstring php-intl php-json

Step 3 – Download Nextcloud

After successfully configuring lamp server on your system, Let’s download latest Nextcloud from its official website.

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.zip

Now extract downloaded archive under website document root and set up appropriate permissions on files and directories.

cd /var/www
sudo unzip /tmp/nextcloud-23.0.0.zip
sudo chown -R apache:apache nextcloud
sudo chmod -R 755 nextcloud

Nextcloud required a directory to keep its data. So create a data directory and set the proper permissions on nextcloud directory

mkdir -p /var/nextcloud/data
sudo chown -R apache:apache nextcloud
sudo chmod -R 755 nextcloud

Step 4 – Create MySQL User and Database

After extracting code, let’s create a MySQL database and user account for configuring Nextcloud. Use following set of command to login to MySQL server and create database and user.

mysql -u root -p
Enter password:
mysql> CREATE DATABASE nextcloud; mysql> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL ON nextcloud.* to 'nextcloud'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit

Step 5 – Configure Apache

Now configure Apache server to host Nextcloud. Create a configuration file with an Alias to Nextcloud directory.

sudo vim /etc/httpd/conf.d/nextcloud.conf

Add below values:

Alias /nextcloud"/var/www/nextcloud"

<Directory /var/www/nextcloud> Options +FollowSymlinks AllowOverride All Dav off

SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud

Save file and close it. Now, restart Apache service to reload changes.

sudo systemctl restart httpd

Step 6 – Run Nexctloud Web Installer

Now access the Nextcloud directory on a web browser as below. Change localhost to your server IP address or domain name.

http://server_ip/nextcloud/

OCC : Script d’administration Il existe un script dans nextcloud nommé « occ » à la racine de Nextloud.

sudo -u apache php occ list

sudo -u apache php occ upgrade

sudo -u apache php occ db:convert-type --all-apps mysql mysqluser mysqlhost mysqlbase

Si on souhaite monter la limite à 512Mo par exemple, il faut éditer le fichier /etc/php.ini et modifier les lignes suivantes :

Code BASH :

upload_max_filesize = 512M post_max_size = 512M

Pour solutionner le problème « default phone region incorrect », editez le fichier « config/config.php » et d’ajouter la ligne:

'default_phone_region' => 'FR',

Installation d’un certificat SSL

Lors de son installation, Apache vient avec des certificats auto-signés. Nous utiliserons dans ce guide l’un d’entre eux:

a2enmod ssl

a2ensite default-ssl

service apache2 reload

Activation du HSTS

Cette fonctionnalité permet de rediriger toutes vos connexions non chiffrées (HTTP) vers celles qui sont sécurisées (HTTPS).

dnf install mod_ssl

firewall-cmd --zone=public --permanent --add-service=https

success

firewall-cmd --reload

success

#openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/httpd.key -x509 -days 365 -out /etc/pki/tls/certs/httpd.crt #nano /etc/httpd/conf.d/ssl.conf change this lines FROM: SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key TO: SSLCertificateFile /etc/pki/tls/certs/httpd.crt SSLCertificateKeyFile /etc/pki/tls/private/httpd.key

#systemctl reload httpd

Créez la tache Cron avec:

crontab -u apache -e

Ajoutez cette ligne: */5 * * * * /usr/bin/php -f /var/www/nextcloud/cron.php

Vérifiez la tache:

crontab -u apache -l

Pour la tache cron ne pas oublier d’activer les options dans le fichier /etc/php.d/40-apcu.ini et decommentez/modifiez la ligne apc.enable_cli=1 :

; Enable APCu extension module extension = apcu.so

; This can be set to 0 to disable APCu apc.enabled=1

; Setting this enables APCu for the CLI version of PHP ; (Mostly for testing and debugging). apc.enable_cli=1

Si la tache cron ne se lance pas comme prévu, tentez de la lancer manuellement et consultez les logs.

#sudo -u apache php -f /var/www/nextcloud/cron.php

Et voila le travail !

Un peu de personnalisation, et notre Nextcloud tout neuf est maintenant prêt.


Télécharger Installation de Nextcloud TP_FD.pdf

Tags :