Skip to main content

3. Installation de Nextcloud 29 sur Ubuntu Server LAMP 22.04

Ce tutoriel est prévu pour Ubuntu Server LAMP 22.04.
Dans ce tutoriel, Nextcloud est installé sur une VM dans Unraid 6.12.13 mais vous pourrez l’installer sur un VPS disponible 24h/24.

image.png

Nous allons, dans ce tutoriel, créer un Cloud personnel en installant Nextcloud.
Nous verrons par la suite comment connecter Nextcloud à un annuaire LDAP ou Active Directory.

Important : A partir d’ici, toutes les commandes seront exécutées en tant que root.

Installation de Nextcloud 29

1. Création du Site Nextcloud dans Apache

Téléchargement de Nextcloud :
wget https://download.nextcloud.com/server/releases/latest-29.tar.bz2
Extraction dans le répertoire /var/www/ :
sudo tar -xvf latest-29.tar.bz2 -C /var/www/
Édition du fichier de configuration du site :
sudo nano /etc/apache2/sites-available/nextcloud.conf
Contenu :
Alias / "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews
  <IfModule mod_dav.c>
    Dav off
  </IfModule>
  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>
</Directory>
CTRL O pour enregistrer, ENTRER pour valider, et CTRL X pour sortir.

image.png

Activation du site nextcloud :
sudo a2ensite nextcloud.conf
Activation du site et des modules nécessaires :
sudo a2enmod rewrite headers env dir mime ssl
Activation du site default-ssl :
sudo a2ensite default-ssl
Vérifier votre configuration Apache :
sudo apache2ctl -t
Si vous avez le droit à un « syntax OK » alors tous les feux sont aux vert, continuer en redémarrant Apache pour que vos modifications prennent effets : 
sudo systemctl restart apache2
Changement du propriétaire du répertoire nextcloud :
sudo chown -R www-data:www-data /var/www/nextcloud/
Vérifications versions :
sudo -u www-data php /var/www/nextcloud/occ -V
sudo -u www-data php /var/www/nextcloud/occ status

2. Création de la base de données Nextcloud et un utilisateur spécifique pour Nextcloud sur MariaDB :

Depuis votre terminal, lancer mysql en admin : 
sudo mysql
Créez ensuite une base de données pour Nextcloud. Sur ce tutoriel j’appelle la base de données nextcloud. Vous pouvez utiliser le nom de votre choix :
create database nextcloud;
Créez l’utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez votre_mot_de_passe par votre mot de passe préféré.
create user nextclouduser@localhost identified by 'votre_mot_de_passe';
Accordez à cet utilisateur tous les privilèges sur la base de données nextcloud :
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';
Un petit « Flush Privileges » pour appliquer les changements : 
flush privileges;

image.png

3. Finalisation de l’installation : 

Pour terminer l’installation, il va falloir se connecter à l’URL de votre serveur Nextcloud.
Exemple : https://192.168.1.203

image.png

1 : Nom du compte Administrateur Nextcloud
2 : Mot de passe du compte Administrateur
3 : Nom de l’utilisateur de base de données
4 : Mot de passe de la base de données
5 : Nom de la base de données
6 : Serveur hébergeant la base de données
Cliquer sur « Terminer l’installation ».

4. Installation et Activation d’applications dans Nextcloud :

4.1 External storage support (Application permettant de se connecter à des partages externes  SMB, FTP etc…) :

installation :

sudo -u www-data php /var/www/nextcloud/occ app:install files_external

activation :

sudo -u www-data php /var/www/nextcloud/occ app:enable files_external
4.2 LDAP user and group backend Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory). :

installation :

sudo -u www-data php /var/www/nextcloud/occ app:install user_ldap

activation :

sudo -u www-data php /var/www/nextcloud/occ app:enable user_ldap
4.3 Mise à jour de toutes les applications :
sudo -u www-data php /var/www/nextcloud/occ app:update --all

5. Installez et configurez REDIS Cache pour Nextcloud 29 :
 Aucun cache mémoire n'est configuré...
Il est recommandé d’activer une solution de cache pour améliorer les performances. Ici nous utiliserons Redis. Lancer la commande suivante pour installer Redis depuis le repository Ubuntu : 
sudo apt install redis-server
Si besoin, vous pouvez vérifier la version de redis via la commande suivante : 
redis-server -v

image.png

Vous pouvez maintenant vérifier si Redis est correctement installer via la commande suivante : 
systemctl status redis
Ce qui devrait donner un résultat de ce type : 

image.png

Si malgré tout Redis n’est pas démarré, vous pouvez le lancer via la commande suivante : 
sudo systemctl start redis-server
Pour activer le démarrage de Redis-Server au boot du serveur, vous pouvez lancer la commande suivante : 
sudo systemctl enable redis-server
Pour configurer Redis correctement, il est nécessaire d’installer une extension qui servira d’interface entre php et redis, lancer la commande suivante : 
sudo apt install php-redis
Vous pouvez vérifier que l’extension est bien installée et activée via la commande suivante : 
php --ri redis
Ce qui devrait vous afficher quelque chose comme ça : 

image.png

Si l’extension n’est pas activée, lancer la commande suivante :
sudo phpenmod redis
Maintenant, il est nécessaire d’éditer la configuration de Nexcloud pour lui dire d’utiliser Redis pour le memcache. On édite le fichier de config.php : 
sudo nano /var/www/nextcloud/config/config.php
Puis on y ajoute ces lignes : 
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),

image.png

CTRL O pour enregistrer, ENTRER pour valider, et CTRL X pour sortir.
Relancer apache2 et php-fpm :
sudo systemctl restart apache2 php8.3-fpm
Maintenant, vous ne devriez plus avoir le message d’information concernant le cache ! 

6. Augmenter le PHP Memory Limit : 
Si vous jetez un coup d’œil dans la partie Administration > Vue d’ensemble de Nextcloud, vous verrez qu’il y a plein de petites recommandations.
 La limite de mémoire PHP est inférieur à la valeur recommandée de 512 Mo.
Nous allons vois ici comment augmenter le PHP Memory limit qu’il est conseillé d’avoir à 512Mo minimum.
PHP à une memory_limit de 128MB par défaut. Pour changer cette valeur, il est nécessaire d’éditer le fichier php.ini, c’est ce que nous allons faire ici : 
sudo nano /etc/php/8.3/apache2/php.ini
Puis, trouver la ligne suivante : 
memory_limit = 128M
Changer simplement sa valeur puis sauvegarder le fichier : 
memory_limit = 512M
CTRL O pour enregistrer, ENTRER pour valider, et CTRL X pour sortir.
Sous Ubuntu, vous pouvez également changer cette valeur, sans avoir à ouvrir le fichier, avec cette « simple » commande : 
sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.3/apache2/php.ini
Pour que cela prenne effet, redémarrer Apache : 
sudo systemctl reload apache2
Attention, si vous utilisez FPM, alors il est nécessaire également de changer la valeur dans le php.ini de php-fpm. Pour cela, même exercice que tout à l’heure, mais pas au même endroit : 
sudo nano /etc/php/8.3/fpm/php.ini
Recherchez le paramètre memory_limit et modifiez la valeur. Après avoir enregistré le fichier, rechargez PHP-FPM pour que la modification prenne effet.
sudo systemctl reload php8.3-fpm.service