Installer Nextcloud

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher
Installer Nextcloud
Domaine(s): Logiciels, Réseau
Action(s) effectuée(s): Gestion
Paquet(s):
Version debian:
Branche:
Support sur lequel Debian est installé: Serveur
Niveau de difficulté: Expérimenté
Langage(s) de programmation utilisé(s):


Nextcloud

Pré-requis

  • RAM :: minimum: 128 Mo, recommandée: 512 Mo
  • OS :: supporté: Debian 7, 8
  • SQL :: recommandée: MySQL/MariaDB, supportée: SQLite
  • Web :: recommandé: Apache 2.4, avec mod_php, supporté: nginx avec PHP_FPM
  • PHP :: minimum: 5.4, recommandée: 5.6, supporté: 7.x

Les modules PHP recommandés sont affichés sur cette page : https://docs.nextcloud.org/server/9.0/admin_manual/installation/deployment_recommendations.html

Pour les recommandations entreprises, lire cette page : https://docs.nextcloud.org/server/9.0/admin_manual/installation/deployment_recommendations.html


 ATTENTION : Ce tutoriel ne s'occupe pas d'installer le serveur web nécessaire, ni PHP ou la DB nécessaires. De même, il est hautement recommandé que SSL soit actif avant de commencer l'installation. Donc, paramétrez votre serveur web pour que cela soit opérationnel !


Téléchargement

  1. Téléchargez l'archive depuis la page d'accueil : https://nextcloud.com/install/#instructions-server
  2. Téléchargez aussi le fichier de somme de contrôle SHA256 : fichier nextcloud-version.sha256
  3. Téléchargez en suivant le fichier d'authenticité de la version que vous avez téléchargé: fichier nextcloud-version.asc.
  4. Téléchargez, pour finir, le fichier de clé GPG de Nextcloud : https://nextcloud.com/nextcloud.asc


 ATTENTION : Préférez les téléchargements des archives .tar.bz2, et du fichier de somme de contrôle sha256 ; le premier consommera moins de bande passante, le second apporte plus de confiance dans la somme de contrôle et des fichiers vérifiés


Vérification

On commence par importer le fichier de clé GPG, puis à vérifier l'archive téléchargée :


$ gpg --import nextcloud.asc
gpg: clef 0xD75899B9A724937A : clef publique « Nextcloud Security <security@nextcloud.com> » importée
gpg: Quantité totale traitée : 1
gpg: importées : 1 (RSA: 1)


$ gpg --verify nextcloud-x.y.z.tar.bz2.asc nextcloud-x.y.z.tar.bz2
gpg: Signature faite le lun. 18 juil. 2016 16:36:57 CEST
gpg: avec la clef RSA 0xD75899B9A724937A
gpg: Bonne signature de « Nextcloud Security <security@nextcloud.com> » [inconnu]
gpg: Attention : cette clef n'est pas certifiée avec une signature de confiance.
gpg: Rien n'indique que la signature appartient à son propriétaire.
Empreinte de clef principale : 2880 6A87 8AE4 23A2 8372 792E D758 99B9 A724 937A


Installation

Décompressez l'archive et envoyez-là dans le répertoire racine de votre site web !

Remplissez les informations et suivez les indications fournies par l'interface web.

Configuration

 ATTENTION : Il est hautement recommandé de mettre les données relatives au répertoire '/data' en-dehors de la racine web de votre domaine. Faites-le ... puis suivez les recommandations ci-dessous !


Durcir le système de fichiers

 ATTENTION : Pour des raisons de sécurité, il est hautement recommandé que les permissions sur les fichiers et autres répertoires n'appartiennent qu'à l'utilisateur web sur les répertoires '/apps', '/config', et '/data'. De même, les permissions sur ces répertoires devraient être de 0750, et sur les fichiers à 0640 !


 NOTE : Par défaut, l'utilisateur web, sous Debian, est 'www-data' ... mais peut-être, avez-vous pris la précaution de le changer, voire de faire en sorte que ce soit un utilisateur sans droits particuliers, qui appartient au groupe web ... quoiqu'il en soit, tenez-en compte au besoin, pour la modification recommandée de ces répertoires !


Vous pouvez vous servir de ce script en le modifiant correctement pour paramétrer les droits corrects en lecture/écriture/exécution :

 #!/bin/bash
 ncpath='/var/www/nextcloud'
 htuser='www-data'
 htgroup='www-data'
 rootuser='root'
 
 printf "Creating possible missing Directories\n"
 mkdir -p $ncpath/data
 mkdir -p $ncpath/assets
 mkdir -p $ncpath/updater
 
 printf "chmod Files and Directories\n"
 find ${ncpath} -type f -print0 | xargs -0 chmod 0640
 find ${ncpath} -type d -print0 | xargs -0 chmod 0750
 
 printf "chown Directories\n"
 chown -R ${rootuser}:${htgroup} ${ncpath}
 chown -R ${htuser}:${htgroup} ${ncpath}/apps/
 chown -R ${htuser}:${htgroup} ${ncpath}/assets/
 chown -R ${htuser}:${htgroup} ${ncpath}/config/
 chown -R ${htuser}:${htgroup} ${ncpath}/data/
 chown -R ${htuser}:${htgroup} ${ncpath}/themes/
 chown -R ${htuser}:${htgroup} ${ncpath}/updater/
 
 chmod +x ${ncpath}/occ
 
 printf "chmod/chown .htaccess\n"
 if [ -f ${ncpath}/.htaccess ]; then
   chmod 0644 ${ncpath}/.htaccess
   chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
 fi
 if [ -f ${ncpath}/data/.htaccess ];  then
   chmod 0644 ${ncpath}/data/.htaccess
   chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess
 fi

PHP(-FPM)

=> Gestion de /dev/urandom :

NextCloud a besoin de la gestion du périphérique de génération de données aléatoires 'urandom'.

Si vous utilisez la variable d'environnement restrictive 'open_basedir', veillez à ajouter le périphérique pour autoriser son usage ! Telle que :

 php_admin_value[open_basedir] = /dev/urandom

=> Gestion de la variable d'environnement PATH :

Dans une console, exécutez la commande suivante :


$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:


Puis modifiez le fichier pool correspondant à votre domaine, en enlevant si besoin le symbole ';' devant la ligne correspondante :

 env[HOSTNAME] = $HOSTNAME
 env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 ;env[TMP] = /tmp
 ;env[TMPDIR] = /tmp
 ;env[TEMP] = /tmp


 ASTUCE : Profitez-en pour configurer les variables d'environnements liés aux répertoires temporaires à utiliser !


Redémarrez le serveur php-fpm !

SELinux

Vous utilisez SELinux ? Lisez la page officielle de NextCloud à ce propos : https://docs.nextcloud.com/server/9.0/admin_manual/installation/selinux_configuration.html


Erreurs

Ci-dessous, quelques erreurs courantes, régulières, lors de l'installation de NextCloud !

BINLOG_FORMAT = STATEMENT

L'interface NC vous informe de l'erreur suivante, ou le fichier log :

An unhandled exception has been thrown: exception ‘PDOException’ with message 'SQLSTATE[HY000]: General error: 1665 Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.'

Cela est dû au mode de gestion de base de données nécessaire pour NextCloud. Deux solutions sont proposées, soit :

  • désactiver l'enregistrement de MySQL/MariaDB
  • de modifier l'enregistrement BINLOG_FORMAT pour qu'il soit en mode MIXED.


 NOTE : Préférez cette seconde méthode, et, modifiez le fichier de configuration de la base de donnée, pour rajouter dans la section [mysqld], l'information suivante 'binlog-format = MIXED', enregistrez et redémarrez le serveur Mysql !



(à venir)