Installer Nextcloud 11 sous Debian 8 (Jessie) avec Nginx

Prérequis

Installer MariaDB : Se rapporter au tutoriel : "Installer MariaDB 10.1 sur Debian 8 (Jessie)"

Installer Nginx : Se rapporter au tutoriel : "Installer Nginx 1.9 sur Debian 8 (Jessie)"

Vérifier la version de Nginx

:$ nginx -v
nginx version: nginx/1.10.2

Vérifier les prérequis pour PHP et l’installation de Nextcloud 11.0.1

La liste des prérequis pour Nextcloud 11 peut être lu ici : Nextcloud : Admin Manual – Installation

Module Générique :

PHP et modules requis :

Module Générique Installé
php5 (>= 5.6, 7.0 or 7.1) 7.1.2-2
PHP module ctype enabled
PHP module dom 2.9.1
PHP module GD 2.1.1-dev
PHP module iconv 2.19
PHP module JSON 1.5.0
PHP module libxml (Linux package libxml2 must be >=2.7.0) 2.9.1
PHP module mb multibyte 1.3.2 (mbstring)
PHP module posix Id: b691ca925e7a085e6929579c4eba8fed0732e0ef
PHP module SimpleXML Id: 7e5516dcdf2fe6ded7970eaeb6abd8d07df39a2a
PHP module XMLWriter enable
PHP module zip 1.13.5
PHP module zlib 1.2.8
Module Base de Donnée (en séléctioner un) Installé
PHP module sqlite (>= 3, usually not recommended for performance reasons) Not installed
PHP module pdo_mysql (MySQL/MariaDB) mysqlnd 5.0.12-dev – 20150407
PHP module pgsql (requires PostgreSQL >= 9.0) No installed
PHP modules recommendés Installé
PHP module curl 7.38.0
PHP module fileinfo (highly recommended, enhances file analysis performance) 1.0.5
PHP module bz2 (recommended, required for extraction of apps) 1.0.6, 6-Sept-2010
PHP module intl (increases language translation performance and fixes sorting of non-ASCII characters) 1.1.0
PHP module mcrypt (increases file encryption performance) 2.5.8
PHP module openssl (required for accessing HTTPS resources) OpenSSL 1.0.2k 26 Jan 2017
PHP modules requis pour certaines applications Installé
PHP module ldap (for LDAP integration) API Version 3001 – Vendor Version 20444
PHP module smbclient (SMB/CIFS integration, see SMB/CIFS) Not installed
PHP module ftp (for FTP storage / external user authentication) enabled
PHP module imap (for external user authentication) 2007f
PHP modules recommendés pour certaines applications Installé
PHP module exif (for image rotation in pictures app) 1.4
PHP module gmp (for SFTP storage) Not installed
Pour améliorer les performances du serveur (selectioner l’un des memcaches) Installé
PHP module apc Not installed
PHP module apcu Not installed
PHP module memcached Not installed
PHP module redis (>= 2.2.5, required for Transactional File Locking) Not installed
Pour la génération d’apperçu Installé
PHP module imagick 3.4.3RC1
avconv or ffmpeg Not installed
OpenOffice or LibreOffice Not installed

Pour les commande en ligne :

PHP module pcntl (enables command interruption by pressing ctrl-c)  

La version de php et des différants modules peuvent être obtenu en créant un fichier ‘index.php’ a la racine du serveur contenant : <?php phpinfo();?>

Installer les fichier Nextcloud 11.0.2 sur Debian

:$ cd /websites/<hostname>/www
:$ wget https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip
:$ unzip nextcloud-11.0.2.zip
:$ rm nextcloud-11.0.2.zip
:$ chown -R www-data:www-data nextcloud/

Vérifier les prérequis et configurer MariaDB pour Nextcloud 11.0.1
La liste des prérequis pour Nextcloud 11 peut être lu ici : Nextcloud : system_requirements

les fichiers dans le répertoire conf.d sont automatiquement ajouté à la configuration – voir /etc/mysql/my.cnf

Désactiver les log binaire de MariaDB :

:$ echo -e "[mysqld]nskip-log-bin" >> /etc/mysql/conf.d/disable_binary_log.cnf

Configurer le niveau d’isolation des transactions à "READ-COMMITTED" :

:$ echo -e "[mysqld]ntransaction-isolation = READ-COMMITTED" >> /etc/mysql/conf.d/transaction_isolation.cnf

Appliquer les modifications en redémarant MariaDB :

:$ /etc/init.d/mysql restart

Créer l’utilisateur et la base de donnée dans MariaDB pour Nextcloud :

:$ mysql -uroot -p

MariaDB [(none)]> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '<PASSWORD>';
CREATE DATABASE IF NOT EXISTS nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY '<PASSWORD>';

MariaDB [(none)]> quit

Activer le support des Emoji dans Nextcloud en activant le support de UTF8 4-byte dans MariaDB :

:$ echo -e "[mysqld]ninnodb_large_prefix=trueninnodb_file_format=barracudaninnodb_file_per_table=1" >> /etc/mysql/conf.d/enable_emoji.cnf

:$ /etc/init.d/mysql restart

Se connecter avec l’utilisateur administrateur de la base de donnée de Nextcloud pour configurer le support de UTF8 4-byte

:$ mysql -unextcloud -p

MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

MariaDB [(none)]> quit

Il faut modifier la configuration de Nextcloud pour activer UTF8 4-byte. Cette étape ne peut être faite qu’une fois nextcloud installé.

Optimiser Nginx pour Nextcloud

Nextcloud: performance-tuning

Nextcloud: Nginx Example Configurations

Nginx: http2 module

ATTENTION : l’utilisation de http_v2 ne fonctionne pas avec nginx 1.10.3 et php-fsm 7.1.4.

Vérifier que le module Nginx http_v2 est installé

:$ nginx -V 2>&1 | grep http_v2 -o
http_v2

ATTENTION : l’utilisation de http_v2 ne fonctionne pas avec nginx et php-fsm.

Nginx config doit être mis à jour pour utiliser http2 sur le port 443

:$ nano /etc/nginx/sites-available/https_mon.domaine.fr
# [...]
listen 443 ssl http2;

Le module ngx_cache_purge n’est pas installé par défaut avec Nginx sur Debian et Rasbian (il faut compiler Nginx avec le module – PAS FAIT).
Ce module permet d’optimiser l’affichage des images dans la gallerie de Nextcloud

:$ nginx -V 2>&1 | grep ngx_cache_purge -o

Configure Nginx 1.10.2 pour Nextcloud 11.0.0

Nextcloud : Nextcloud in a subdir of nginx

Mettre à jour la configuration de Nginx pour inclure à la fin du fichier la configuration de Nextcloud

:$ nano /etc/nginx/sites-available/http_mon.domaine.fr
upstream php-handler {

    #server 127.0.0.1:9000;
    server unix:/var/run/php/php7.0-fpm.sock;
}

# Default server configuration
#
server {

        # [...]

        #
        # Nextcloud
        #
        include snippets/nextcloud.conf;
}

Copier la configuration de l’exemple dans le fichier nextcloud.conf qui est inclus dans la configuration principale :

:$ nano /etc/nginx/snippets/nextcloud.conf
    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    # rewrite ^/.well-known/host-meta /nextcloud/public.php?service=host-meta
    # last;
    #rewrite ^/.well-known/host-meta.json
    # /nextcloud/public.php?service=host-meta-json last;

    location = /.well-known/carddav {
      return 301 $scheme://$host/nextcloud/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host/nextcloud/remote.php/dav;
    }

    location /.well-known/acme-challenge { }

    location ^~ /nextcloud {

        # set max upload size
        client_max_body_size 512M;
        fastcgi_buffers 64 4K;

        # Disable gzip to avoid the removal of the ETag header
        gzip off;

        # Uncomment if your server is build with the ngx_pagespeed module
        # This module is currently not supported.
        #pagespeed off;

        location /nextcloud {
            rewrite ^ /nextcloud/index.php$uri;
        }

        location ~ ^/nextcloud/(?:build|tests|config|lib|3rdparty|templates|data)/ {
            deny all;
        }
        location ~ ^/nextcloud/(?:.|autotest|occ|issue|indie|db_|console) {
            deny all;
        }

        location ~ ^/nextcloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34]).php(?:$|/) {
            fastcgi_split_path_info ^(.+.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param HTTPS on;
            #Avoid sending the security headers twice
            fastcgi_param modHeadersAvailable true;
            fastcgi_param front_controller_active true;
            fastcgi_pass php-handler;
            fastcgi_intercept_errors on;
            fastcgi_request_buffering off;
        }

        location ~ ^/nextcloud/(?:updater|ocs-provider)(?:$|/) {
            try_files $uri/ =404;
            index index.php;
        }

        # Adding the cache control header for js and css files
        # Make sure it is BELOW the PHP block
        location ~* .(?:css|js|woff|svg|gif)$ {
            try_files $uri /nextcloud/index.php$uri$is_args$args;
            add_header Cache-Control "public, max-age=7200";
            # Add headers to serve security related headers  (It is intended
            # to have those duplicated to the ones above)
            # Before enabling Strict-Transport-Security headers please read
            # into this topic first.
            # add_header Strict-Transport-Security "max-age=15768000;
            # includeSubDomains; preload;";
            add_header X-Content-Type-Options nosniff;
            add_header X-Frame-Options "SAMEORIGIN";
            add_header X-XSS-Protection "1; mode=block";
            add_header X-Robots-Tag none;
            add_header X-Download-Options noopen;
            add_header X-Permitted-Cross-Domain-Policies none;
            # Optional: Don't log access to assets
            access_log off;
        }

        location ~* .(?:png|html|ttf|ico|jpg|jpeg)$ {
            try_files $uri /nextcloud/index.php$uri$is_args$args;
            # Optional: Don't log access to other assets
            access_log off;
        }
    }

ATTENTION : la commande fastcgi_params HTTPS on; dans le fichier /etc/nginx/snippets/nextcloud.conf doit être commentée si HTTPS n’est pas utilisé.

Vérifier la configuration avant de redémarrer le serveur

:$ nginx -t

Redémarrer le serveur

:$ /etc/init.d/nginx restart

Installer Nextcloud 11.0.0 avec le Wizard

Nextcloud : installation wizard

Il est possible de stoquer les données utilisateurs sur un répertoire distant, voir les notes :

  • Monter répertoire partagé Freebox avec Samba depuis le RaspberryPi
  • Monter un répertoire partagé QNAP depuis raspberry avec samba

Depuis le navigateur web : http://local.mon.domaine.fr/nextcloud

Si le répertoire de donnée des utilisateurs est stoqué sur une machine distante, configurer le répertoire de donnée (data folder) avec le chemin du point de montage.

Par example : /media/pi/Nextcloud

Modifier la configuration de Nextcloud pour activer UTF8 4-byte (ne peut pas être fait avant d’avoir fini l’installation de nextcloud)

:$ cd /websites/mon.domaine.fr/www/nextcloud

:$ su -s /bin/sh www-data -c 'php occ config:system:set mysql.utf8mb4 --type boolean --value="true"'
System config value mysql.utf8mb4 set to boolean true

Authentification des utilisateurs avec LDAP

Nextcloud : user auth ldap

Activer l’application Nextcloud ‘LDAP user and group backend’ depuis le gestionaire d’application Nextcloud

Activer LDAP

Configure le client LDAP depuis la console d’administration de Nextcloud

Configurer LDAP

Cette configuration est basé sur la RFC 1274: COSINE and Internet X.500 Schema qui définie un certain nombre de paramètres LDAP qui font partis de RFC :Definition of the inetOrgPerson LDAP Object Class. Nous utilisons le paramètre mail de inetOrgPerson pour les utilisateurs Nextcloud. Pour plus de détail, se rapporter au wiki "Installer OpenLDAP sous Debian 8 (jesie) avec Webmin"

Configuration du serveur :

  • Host : localhost
  • User DN : cn=client,dc=mon,dc=domaine,dc=fr
  • Password :
  • Base DN : dc=mon,dc=domaine,dc=fr

Configuration des utilisateurs :

  • Only these object classes : posixAccount

Configuration de la connection :

  • LDAP / AD Username : x

Configuration des groupes :

  • Only these object classes : posixGroup

Configuration avancée :

  • User Display Name Field : cn
  • 2nd User Display Name Field : mail
  • Base User Tree : ou=users,dc=mon,dc=domaine,dc=fr
  • Group Display Name Field : cn
  • Base Group Tree : ou=groups,dc=mon,dc=domaine,dc=fr
  • Group-Member association : memberUid
  • Email Field : mail

Configuration expert

  • Internal Username: uid

les boutons "Clear Username-LDAP User Mapping" et/ou "Clear Username-LDAP Group Mapping" doivent être cliqué pour prendre en compte les changements dans la configuration expert.

Configuration de la mémoire-cache

Nextcloud : caching configuration

Nextcloud supporte les gestionnaire de mémore-cache suivants:

  • APCu (>= 4.0.6) : Pour la gestion de la mémoire-cahce locale du système.
  • Memcached : Gestion de la mémoire-cache distribuée pour plusieurs serveurs Nextcloud.
  • Redis avec un module PHP >= 2.2.6 : Gestion de la mémoire-cache distribué (plus résent de Memcached et gére mieux la réservation des resources fichiers)

Pour un petit serveur, l’utilisation d’APCu est suffisant.

Installation de PHP APCu et configuration de Nextcloud

Sous Debian Jessie il faut utiliser le dépôt deb.sury.org pour installer le paquet php-apcu qui fournit php-user-cache, php5.6-apcu, php7.0-apcu et php7.1-apcu.

:$ apt-get update

:$ apt-cache policy php-apcu
php-apcu:
  Installé : (aucun)
  Candidat : 5.1.8+4.0.11-1+0~20170123102543.11+jessie~1.gbpcbae00
 Table de version :
     5.1.8+4.0.11-1+0~20170123102543.11+jessie~1.gbpcbae00 0
        500 https://packages.sury.org/php/ jessie/main amd64 Packages

:$ apt-get install php-apcu

Redémarrer php-fpm et le serveur Nginx et ajouter la ligne "’memcache.local’ => ‘OCMemcacheAPCu’," au fichier "config.php" de Nextcloud.

:$ /etc/init.d/php7.1-fpm restart && /etc/init.d/nginx restart

:$ nano /websites/binaryworld.fr.eu.org/www/nextcloud/config/config.php
:$ nano /websites/binaryworld.fr.eu.org/www/nextcloud/config/config.php
<?php
$CONFIG = array (

  'memcache.local' => 'OCMemcacheAPCu',
);

Recharger la page d’administration de Nextcloud. L’avertissement à propos de la mémoire-cache devrait avoir disparu.

La page avec phpinfo() retourne bien la version apcu 5.1.7 (compatible apc 1.0.3) avec les fichiers de configuraitons : /etc/php/7.1/fpm/conf.d/20-apcu.ini et /etc/php/7.1/fpm/conf.d/20-apcu_bc.ini

Installation de PHP Redis et conifguration de Nextcloud

Installer PHP Redis

Mettre à jour la liste des applications du gestionnaire d’applications

$: apt-get update

Vérifier les versions disponibles de redis

$: apt-cache policy redis-server
redis-server:
  Installé : (aucun)
  Candidat : 2:2.8.17-1+deb8u5
 Table de version :
     3:3.2.8-2~bpo8+1 0
        100 http://ftp.fr.debian.org/debian/ jessie-backports/main amd64 Packages
     2:2.8.17-1+deb8u5 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
        500 http://security.debian.org/ jessie/updates/main amd64 Packages

Installer la dernière version disponible (3.2.8) de redis depuis jessie-backports

$: apt-get -t jessie-backports -y install redis-server
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  linux-image-3.16.0-4-amd64 linux-image-4.9.0-0.bpo.2-amd64 python-ldap3
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets supplémentaires suivants seront installés :
  redis-tools
Paquets suggérés :
  ruby-redis
Les NOUVEAUX paquets suivants seront installés :
  redis-server redis-tools
0 mis à jour, 2 nouvellement installés, 0 à enlever et 86 non mis à jour.
Il est nécessaire de prendre 523 ko dans les archives.
Après cette opération, 1 394 ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://ftp.fr.debian.org/debian/ jessie-backports/main redis-tools amd64 3:3.2.8-2~bpo8+1 [109 kB]
Réception de : 2 http://ftp.fr.debian.org/debian/ jessie-backports/main redis-server amd64 3:3.2.8-2~bpo8+1 [414 kB]
523 ko réceptionnés en 0s (745 ko/s)  
Sélection du paquet redis-tools précédemment désélectionné.
(Lecture de la base de données... 88860 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../redis-tools_3%3a3.2.8-2~bpo8+1_amd64.deb ...
Dépaquetage de redis-tools (3:3.2.8-2~bpo8+1) ...
Sélection du paquet redis-server précédemment désélectionné.
Préparation du dépaquetage de .../redis-server_3%3a3.2.8-2~bpo8+1_amd64.deb ...
Dépaquetage de redis-server (3:3.2.8-2~bpo8+1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
Traitement des actions différées (« triggers ») pour systemd (230-7~bpo8+2) ...
Paramétrage de redis-tools (3:3.2.8-2~bpo8+1) ...
Paramétrage de redis-server (3:3.2.8-2~bpo8+1) ...
Traitement des actions différées (« triggers ») pour systemd (230-7~bpo8+2) ...

Vérifier l’installation

$: redis-server --version
Redis server v=3.2.8 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=bb0ba4e36835f109

$: systemctl status redis-server
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since dim. 2017-12-03 18:25:45 CET; 2min 8s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
 Main PID: 17055 (redis-server)
   CGroup: /system.slice/redis-server.service
           └─17055 /usr/bin/redis-server 127.0.0.1:6379       

déc. 03 18:25:45 monnas systemd[1]: Starting Advanced key-value store...
déc. 03 18:25:45 monnas run-parts[17049]: run-parts: executing /etc/redis/redis-server.pre-up.d/00_example
déc. 03 18:25:45 monnas run-parts[17056]: run-parts: executing /etc/redis/redis-server.post-up.d/00_example
déc. 03 18:25:45 monnas systemd[1]: Started Advanced key-value store.

Noter le port découte du serveur redis (ici 6379)

Tester redis

$: redis-cli
127.0.0.1:6379> set test "HelloRedis"
OK
127.0.0.1:6379> get test
"HelloRedis"

Normalement php-redis est disponible avec la version 8 de debian.
Pour le vérfier :

$: apt-cache policy php.*-redis
php5.6-redis:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php5-redis:
  Installé : (aucun)
  Candidat : 2.2.5-1
 Table de version :
     2.2.5-1 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
php7.0-redis:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php7.1-redis:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :
php-redis-dbgsym:
  Installé : (aucun)
  Candidat : 3.1.4~rc1.really.3.1.2-1+0~20170912061752.3+jessie~1.gbpba69c3
 Table de version :
     3.1.4~rc1.really.3.1.2-1+0~20170912061752.3+jessie~1.gbpba69c3 0
        500 https://packages.sury.org/php/ jessie/main amd64 Packages
php-redis:
  Installé : (aucun)
  Candidat : 3.1.4~rc1.really.3.1.2-1+0~20170912061752.3+jessie~1.gbpba69c3
 Table de version :
     3.1.4~rc1.really.3.1.2-1+0~20170912061752.3+jessie~1.gbpba69c3 0
        500 https://packages.sury.org/php/ jessie/main amd64 Packages
php7.2-redis:
  Installé : (aucun)
  Candidat : (aucun)
 Table de version :

Installer le module PHP pour redis (compatible aussi avec php-fpm).

$: apt-get -y install php-redis

Redémarrer php-fpm

$: systemctl restart php7.1-fpm
$: systemctl status php7.1-fpm
● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since dim. 2017-12-03 18:41:55 CET; 3s ago
     Docs: man:php-fpm7.1(8)
 Main PID: 18023 (php-fpm7.1)
   Status: "Ready to handle connections"
    Tasks: 3
   Memory: 48.5M
      CPU: 315ms
   CGroup: /system.slice/php7.1-fpm.service
           ├─18023 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)                      
           ├─18024 php-fpm: pool www                                                            
           └─18025 php-fpm: pool www                                                            

déc. 03 18:41:55 monnas systemd[1]: Starting The PHP 7.1 FastCGI Process Manager...
déc. 03 18:41:55 monnas systemd[1]: Started The PHP 7.1 FastCGI Process Manager.

Configurer Nextcloud avec PHP Redis

APCu est plus rapide que Redis pour gérer le cache local. Il est donc préférable
d’utiliser APCu pour gérer le cache local et Redis pour la réservation des ressources (files locking).
Comme APCu demande plus de mémoire que Redis, si vous êtes dans un environnement avec peu de mémoire, utiliser Redis pour la gestion du cache local.

Editer le fichier de configuration de Nextcloud

$: nano /www/nextcloud/config/config.php

Modifier la configuration du memcache

  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.local' => '\OCMemcache\APCu',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
      'host' => 'localhost',
      'port' => 6379,
  ),

Redémarrer le server web (Nginx)

$: systemctl restart nginx
$: systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since dim. 2017-12-03 19:12:45 CET; 10s ago
     Docs: man:nginx(8)
  Process: 18533 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 18539 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 18535 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 18541 (nginx)
    Tasks: 3
   Memory: 4.2M
      CPU: 90ms
   CGroup: /system.slice/nginx.service
           ├─18541 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           ├─18542 nginx: worker process                           
           └─18543 nginx: worker process                           

déc. 03 19:12:45 monnas systemd[1]: Starting A high performance web server and a reverse proxy server...
déc. 03 19:12:45 monnas systemd[1]: Started A high performance web server and a reverse proxy server.

Configure Redis with Unix Socket

Pour améliorer les performances (~25%), il est possible de configurer Redis pour utiliser les socket unix plutôt que TCP.
TBC

How to Configure Redis to Use Unix Socket Speed Boost


Il faut modifier la configuration de Nextcloud
https://docs.nextcloud.com/server/12/admin_manual/configuration_server/caching_configuration.html#id3

Renforcer la sécurité

Nextcloud : strong permissions

Créer un script pour modifier les permissions des fichiers de Nextcloud. Modifier les paramètre ocpath avec le chemin vers le repertoire installation de Nextcloud. Remplacer websites avec le répertoire principale du serveur HTTP. Il faut adapter le script si le répertoire des données utilisateurs a été déplacé vers un autre répertoire que celui par défaut.

:$ cat > nextcloud_set_strong_permissions.sh << EOF
#!/bin/bash
# the Nextcloud script is updated to make it relative to the /websites/ folder in order to avoid to impact the root directory (/)
# if the ocpath parameter is empty
ocpath='mon.domain.fr/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directoriesn"
mkdir -p /websites/$ocpath/data
mkdir -p /websites/$ocpath/updater

printf "chmod Files and Directoriesn"
find /websites/${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find /websites/${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directoriesn"
chown ${rootuser}:${htgroup} /websites/${ocpath}
chown -R ${rootuser}:${htgroup} $(ls -1 /websites/${ocpath} | awk -vnpath=/websites/${ocpath}/ '{if($1 != "data" && $1 != "apps" && $1 != "config" && $1 != "themes"){print npath$1}}')
chown -R ${htuser}:${htgroup} /websites/${ocpath}/apps/
chown -R ${htuser}:${htgroup} /websites/${ocpath}/config/
chown -R ${htuser}:${htgroup} /websites/${ocpath}/data/
chown -R ${htuser}:${htgroup} /websites/${ocpath}/themes/
chown -R ${htuser}:${htgroup} /websites/${ocpath}/updater/

chmod +x /websites/${ocpath}/occ

printf "chmod/chown .htaccessn"
if [ -f /websites/${ocpath}/.htaccess ]
 then
  chmod 0644 /websites/${ocpath}/.htaccess
  chown -v ${rootuser}:${htgroup} /websites/${ocpath}/.htaccess
fi
if [ -f /websites/${ocpath}/data/.htaccess ]
 then
  chmod 0644 /websites/${ocpath}/data/.htaccess
  chown -v ${rootuser}:${htgroup} /websites/${ocpath}/data/.htaccess
fi

printf "chmod/chown .user.inin"
if [ -f /websites/${ocpath}/.user.ini ]
 then
  chmod 0644 /websites/${ocpath}/.user.ini
  chown ${rootuser}:${htgroup} /websites/${ocpath}/.user.ini
fi

Lancer le script

:$ ~/nextcloud_set_strong_permissions.sh



Références :

Nextcloud : instructions-server

Nextcloud : installation nextcloud 11

Nextcloud : source_installation

Nextcloud : Admin Manual – Installation

Nextcloud : system_requirements

Nextcloud : performance-tuning

Nextcloud : Nginx Example Configurations

Nextcloud : Nextcloud in a subdir of nginx

Nextcloud : Nextcloud in a subdir of nginx

Nextcloud : user auth ldap

Nextcloud : caching configuration

Nextcloud : files locking

Nextcloud : strong permissions

Nginx : http2 module

howtoforge.com : installing-nginx-with-php-fpm-and-mariadb-lemp-on-debian-jessie

Redis : documentation

Laisser un commentaire