Visualiser une révision

Tuto/HowTo - Nextcloud activer système de cache (memcache) avec redis

voxdemonix : révision n°19 (02 juin 2018 17:19:36)

# Introduction #
* Le [système de cache](https://openclassrooms.com/courses/comprendre-et-utiliser-un-systeme-de-cache-php) permet de stocker en mémoire RAM (ou en SWAP si trop de RAM utilisée) certaines informations régulièrement sollicitées, évitant ainsi de passer par la [base de données](https://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es) (MySQL, PostGreSQL, SQLITE, etc) et augmentant les performances.
Si vous utilisez un cache Redis sur une autre machine que le serveur web (par exemple en cluster), utilisez [php-apcu](http://php.net/manual/fr/book.apcu.php) pour stocker localement les scripts php précompilés et redis pour les informations qui doivent être partagées entre les serveurs.

Note : ce tuto devrait aussi fonctionner avec owncloud (à vérifier)

# Mise en place #
1. Sur la machine qui va servir de serveur de cache, installez [redis-server](https://fr.wikipedia.org/wiki/Redis).

```
sudo apt-get install redis-server
```

1. Sur votre serveur web, si ce n'est déjà fait, installez [php-redis](https://github.com/phpredis/phpredis).

```
sudo apt install php-redis
```

1. Sur votre serveur web, éditez le fichier de configuration de nextcloud/owncloud.


```
sudo nano /var/www/html/cloud/config/config.php
```
 
1. Ajoutez les lignes suivantes avant **_);_** qui se situe à la fin du fichier.

  * **Si Redis est sur la même machine que Nextcloud :**

```
'memcache.local' => '\\OC\\Memcache\\Redis', /* contient les scripts php précompilés */
'filelocking.enabled' => 'true',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
        array (
                'host' => 'localhost',
                'port' => 6379,
                'timeout' => 0,
                'dbindex' => 0,
                ),

```

  *  **Si Redis est sur une autre machine :**

```
        /* GESTION CACHE */
'filelocking.enabled' => 'true',
'memcache.local' => '\OC\Memcache\APCu', /* contient les scripts php précompilés */
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => '10.8.66.42', /* l'adresse ip de votre serveur redis */
     'port' => 6379,
     'dbindex' => 0,
     'password' => 'tape_un_mot_de_passe_super_solide_si_non_on_va_te_pirater',
     'timeout' => 1.5,
      ),
```

  * Dans ce dernier cas de figure, sur vos serveurs web pensez à avoir déjà installé [php-apcu](http://php.net/manual/fr/book.apcu.php) (déjà fait si vous avez suivis mes tutos).

```
sudo apt-get install php-acpu
```


1. Connectez-vous en tant qu'administrateur sur l'interface web de votre nextcloud/owncloud et rendez-vous dans l'espace d'administration. Si le message suivant n’apparaît pas, c'est que vous avez bien bossé :) 

  * _Aucun cache mémoire n'est configuré. Si possible, configurez un "memcache" pour améliorer les performances._


----------------------------------------------------------

# Informations supplémentaires #

###Si vous devez éditer le fichier de configuration de Redis###
```
sudo nano /etc/redis/redis.conf
```

### Afficher le [PID](https://fr.wikipedia.org/wiki/Identifiant_de_processus) de redis-server ###
```
sudo cat /var/run/redis/redis-server.pid
```


---------------------------------------------------------


# Foire Aux Questions #

####  En utilisation mono-serveur de Redis, que se passe-t-il pour Nextcloud si le serveur Redis n'est pas joignable ? 
  * **Réponse :** Nextcloud va retourner l'erreur suivante : 

```
Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

```

#### Les communications entre les clients et le serveur Redis sont-elles chiffrées ? 
  * **Réponse :** non ([source](https://redis.io/topics/security#data-encryption-support)) 


---------------------------------------------------------


# Farm Link #
* [[Tuto/HowTo] [GNU/Linux] Nextcloud activer système de cache (memcache) avec redis](https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=556&p=1191#p1191) (tuto d'origine)
* [[Tuto/HowTo] [GNU/Linux] installer Nextcloud avec apache2, mariadb et PHP7](https://www.0rion.netlib.re/forum4/viewtopic.php?f=63&t=401)
* [Tuto - chiffrer côté serveur les fichiers hébergés par Nextcloud](https://linuxfr.org/wiki/tuto-chiffrer-cote-serveur-les-fichiers-heberges-par-nextcloud)
* [Tuto - Comment synchroniser des dossiers-fichiers sur Nextcloud ou Owncloud](https://linuxfr.org/wiki/tuto-comment-synchroniser-des-dossiers-fichiers-sur-nextcloud-ou-owncloud)
* [[Tuto/HowTo] [Ubuntu/Debian] Configurer Redis pour connexion exterieur](https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=757)