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… 🙂