Installer Nextcloud
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
- Téléchargez l'archive depuis la page d'accueil : https://nextcloud.com/install/#instructions-server
- Téléchargez aussi le fichier de somme de contrôle SHA256 : fichier nextcloud-version.sha256
- Téléchargez en suivant le fichier d'authenticité de la version que vous avez téléchargé: fichier nextcloud-version.asc.
- 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)