Ubuntu 16.04 LTS Installation APCu Object Cache für PHP7 und Einbindung in Nextcloud

Wir wollen heute unsere Nextcloud Installation mit PHP-APCu optimieren, dabei ist es egal welche Nextcloud- bzw. PHP7-Version wir benutzen. Je nach Version ersetzen wir das „x“ in den Commands.

Auf jeden Fall sollten PPAs für PHP, wie in meinem Beitrag Nextcloud 12 mit PHP 7.1 beschleunigen erläutert, bereits vorhanden sein. Ansonsten müssen wir dies noch nachholen. Für php7.0 ist das nicht notwendig, da wir hier mit den offiziellen Paket-Quellen arbeiten können.

Nachtrag:

Wer wie ich große, aber langsame Festplatten hat, kann hier auch mit einer RAM-Disk arbeiten. Voraussetzung ist, natürlich genügend RAM im System.

Dazu legen wir vorher eine RAM-Disk unter /tmp/ an:

sudo mkdir /tmp/apc

und mounten diese:

sudo mount -t ramfs ramfs /tmp/apc

damit diese nach jedem Reboot zur Verfügung steht, bearbeiten wir die /etc/fstab:

sudo nano /etc/fstab

und fügen die folgende Zeile ein:

ramfs   /tmp/apc     ramfs   defaults        0       0

Nachtrag ENDE

Wie immer bringen wir unser System auf aktuellen Stand:

sudo apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade

Danach installieren wir PHP-APCu

sudo apt-get install php-apcu

Je nach Version die php.ini bearbeiten (hier das x durch die Version ersetzen)

Für php-fpm:

sudo nano /etc/php/7.x/fpm/php.ini

Für php-Apache-Modul:

sudo nano /etc/php/7.x/apache2/php.ini

und die folgenden Werte hinterlegen:

apc.enabled=1
apc.file_update_protection=2
apc.optimization=0
apc.shm_size=256M
apc.include_once_override=0
apc.shm_segments=1
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl=3600
apc.num_files_hint=1024
apc.enable_cli=0
apc.max_file_size=5M
apc.cache_by_default=1
apc.use_request_time=1
apc.slam_defense=0
apc.mmap_file_mask=/tmp/apc/apc.XXXXXX
apc.stat_ctime=0
apc.canonicalize=1
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
apc.lazy_classes=0
apc.lazy_functions=0

Nun müssen wir Nextcloud noch beibringen mit dem APCu zu arbeiten, dazu passen wir die config.php an:

sudo nano /var/www/html/nextcloud/config/config.php

Hier passen wir die Werte „memcache.distributed“ und „memcache.local“ wie folgt an:

'memcache.distributed' => '\\OC\\Memcache\\APCu',
  'memcache.local' => '\\OC\\Memcache\\APCu',

Im Anschluß starten wir Apache2 und php-fpm (wenn verwendet) neu:

sudo systemctl restart php7.x-fpm
sudo systemctl restart apache2

Überprüfen können wir den Erfolg und auch die Nutzung mit einem php-Skript, dass wir in unseren Webspace hinterlegen:

cd /var/www/html/nextcloud/
sudo wget https://raw.githubusercontent.com/krakjoe/apcu/master/apc.php

In unserem Browser rufen wir unsere Domain und dort das Skript auf, also https://nextcloud.deine-domain.tld/apc.php:

Falls wir uns die „User Cache Entries“ anschauen möchten, müssen wir in dem Skript „apc.php“ noch das default Passwort ersetzen:

sudo nano /var/www/html/nextcloud/apc.php

diese Zeile suchen und entsprechend anpassen:

defaults('ADMIN_PASSWORD','password');          // Admin Password - CHANGE THIS TO ENABLE!!!

Bis zum nächsten Beitrag und bei Fragen wie immer fragen… 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert