Redis Memcache für Owncloud / Nextcloud unter Ubuntu einrichten

Um die Geschwindigkeit der eigenen Owncloud bzw. Nextcloud Installation mithilfe eines Cache aufzubessern gibt es mehrere Techniken die eingesetzt werden können. Hier beschreibe ich kurz wie man Redis einsetzt. Als Betriebssystem wurde ein Ubuntu 17.04 sowie Nextcloud 12.0.3 eingesetzt.

  1. Redis und Modul für PHP installieren
    apt-get install redis-server php7.0-redis
  2. Redis Konfigurieren
    Redis kann entweder über auf einem eigenem Server installiert werden und per IP/Port (6379) angesprochen werden oder aber direkt auf dem gleichen System wie eure Owncloud. In dem Fall bietet sich an die Kommunikation über ein unix Socket einzustellen. Hier folgenden Bereich auskommentieren und die Berechtigungen 770 setzen.

    vi /etc/redis/redis.conf
    # Unix socket.
    #
    # Specify the path for the Unix socket that will be used to listen for
    # incoming connections. There is no default, so Redis will not listen
    # on a unix socket when not specified.
    #
    unixsocket /var/run/redis/redis.sock
    unixsocketperm 770
  3. Apache Benutzer der Redis Gruppe hinzufügen
    Damit nun das PHP-Modul auch auf das unix Socket zugreifen kann, müssen wir den Benutzer des Webservers in die Gruppe „redis“ aufnehmen.

    vi /etc/group

    Unter Ubuntu ist dies für apache2 der Benutzer: www-data.

    redis:x:119:www-data
  4. Owncloud/Nextcloud config.php anpassen
    In der Config fügen wir nun folgende Zeilen ein, damit auch Redis als Caching Software verwendet wird.

    vi config/config.php
     'memcache.locking' => '\OC\Memcache\Redis',
     'memcache.local' => '\OC\Memcache\Redis',
     'redis' => array(
                   'host' => '/var/run/redis/redis.sock',
                   'port' => 0,
                   'dbindex' => 0,
                   'password' => 'secret',
                   'timeout' => 1.5,
                  ),
    
  5. Dienste neustarten
    Schlussendlich nochmal den Redis-Server sowie Apache2 neustarten, damit auch alle Änderungen aktiv werden.

    service redis-server restart
    service apache2 restart

Mögliche Fehler:
Am Anfang hatte ich noch folgenden Fehler, welcher aber auf die fehlende Gruppenzugehörigkeit zurückzuführen war:

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.

Schaut man genau ins error.log sieht man, dass es ein Berechtigungsfehler ist und hier bei Punkt 2 und 3 nochmal angesetzt werden sollte.

[Thu Dec 14 11:34:25.451617 2017] [core:notice] [pid 3333] AH00094: Command line: '/usr/sbin/apache2'
[Thu Dec 14 11:38:05.020250 2017] [:error] [pid 3338] [client 10.0.0.55:32848] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82, referer: https://cloud.domain.info/
[Thu Dec 14 11:38:08.363190 2017] [:error] [pid 3339] [client 10.0.0.55:32851] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82
[Thu Dec 14 11:38:10.320506 2017] [:error] [pid 3339] [client 10.0.0.55:32851] PHP Warning:  Redis::connect(): connect() failed: Permission denied in /var/www/owncloud/lib/private/RedisFactory.php on line 82, referer: https://cloud.domain.info/
ls /var/run/redis/ -al
total 4
drwxrwsr-x  2 redis redis   80 Dec 14 11:39 .
drwxr-xr-x 32 root  root  1200 Dec 14 11:21 ..
-rw-r--r--  1 redis redis    5 Dec 14 11:39 redis-server.pid
srwxrwx---  1 redis redis    0 Dec 14 11:39 redis.sock

2 Gedanken zu „Redis Memcache für Owncloud / Nextcloud unter Ubuntu einrichten“

  1. heyhey
    ich habe das Problem, dass sobald ich
    ‚memcache.local‘ => ‚\OC\Memcache\Redis‘,
    ‚redis‘ => array(
    ‚host‘ => ‚/var/run/redis/redis.sock‘,
    ‚port‘ => 0,
    ‚dbindex‘ => 0,
    ‚password‘ => ’secret‘,
    ‚timeout‘ => 1.5,
    ),
    “ in die config.php einfüge, meine nextcloud nur noch Fehlermeldungen schmeißt, und ich keine Verbindung mehr aufbauen kann.
    die Fehlermeldung auf der Website ist leider nichtssagend, im Log steht leider nichts aus dem man schlau raus wird. :-/
    Anleitung alles so befolgt, wie es oben geschildert ist…
    Hoffe auf eine Rückmeldung, gerne sonst auch per eMail.
    Dankeschön

    Antworten

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.