PHP umstellen auf FPM/FastCGI unter Ubuntu 16.04 LTS mit Apache2 und Nextcloud

Heute zeige ich Euch wie einfach es ist auf php FPM/FastCGI umzustellen und unser Nextcloud damit arbeiten zu lassen. Voraussetzung für die Optimierung ist, dass wir meine beiden Tutorials Installation Nextcloud und Nextcloud beschleunigen abgearbeitet haben.

Zuerst müssen wir die php-fpm Module installieren, da wir ja planen bald auf Nextcloud 13 umzusteigen, installieren wir die php7.1- und php7.2-fpm-Module. Davor legen wir uns aber eine vorläufige info.php an, damit wir auch prüfen können, ob das Modul später aktiv ist:

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

Diese füllen wir mit dem folgenden Code und speichern sie ab:

<?php
phpinfo();
?>

Jetzt geben wir unserem Apache noch die Berechtigung auf die Datei, damit wir Sie in unserem Browser anzeigen lassen können:

chown www-data:www-data /var/www/html/nextcloud/info.php

Diese können wir nun später mit https://nextcloud.meine-domain.tld/info.php aufrufen.

Jetzt installieren wir die Module:

sudo apt-get install php7.1-fpm php7.2-fpm

und müssen im Apache noch etwas nachhelfen, damit diese aktiv werden:

sudo a2dismod php7.1
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.1-fpm

Wir erinnern uns daran, dass wir noch in der php.ini Direktiven setzen müssen, die wir für die Nextcloud Installation benötigen. Dazu müssen wir die folgende ini-Datei bearbeiten:

sudo nano /etc/php/7.1/fpm/php.ini

dort fügen wir wieder die folgenden Zeilen ein:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Diesmal reicht es nicht den Apache neu zu starten, wir müssen zusätzlich noch den Service php7.1-fpm neu starten. Dazu nutzen wir die beiden folgenden Befehle:

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

Im Anschluss rufen wir unsere info.php unter https://nextcloud.meine-domain.tld/info.php auf und vergewissern uns, dass FPM aktiv ist:

Sollte alles funktionieren, löschen wir die info.php:

sudo rm /var/www/html/nextcloud/info.php

Jetzt rufen wir nur noch unsere Nextcloud-Instanz auf und prüfen unter Verwaltung, ob Fehler angezeigt werden. Ist das nicht der Fall, sind wir fertig 🙂

Viel Spaß damit. Wenn Ihr Fragen oder Probleme habt, dann meldet Euch.

4 Gedanken zu „PHP umstellen auf FPM/FastCGI unter Ubuntu 16.04 LTS mit Apache2 und Nextcloud

  1. Danke für die klasse Anleitung!

    Mir ist aufgefallen, dass seit der Umstellung von php7.2 auf php7.2-fpm (mit und ohne http2) beim Nutzen von Talk/Spreed das Web-UI extrem langsam wird. Auch gibt es gehäuft Verbindungsprobleme.
    Hat hier jemand ähnliche Erfahrungen gemacht?
    Ist das auf ein Performance Problem meines Servers zurückzuführen?
    (Intel NUC mit Intel Celeron CPU J3455 4x @ 1.50GHz, RAM 8 GB, SSD 250 GB)

    Bin jetzt wieder zurück und nun funktioniert wieder alles.

    1. Hallo, wenn Du umgeschaltet hast, solltest Du mal während der Nutzung z.B. htop mitlaufen lassen und die Auslastung beobachten. Bei mir sind solche Phänomene noch nicht aufgetreten, aber meine CPUs fangen alle erst bei 2,4 GHz an.

      Gruß Markus

  2. Super Anleitung, ich habe aber zwei Fragen:
    * Wozu installierst Du php7.2-fpm zusätzlich, was hat das für einen Benefit?
    * Ich musste bei mir noch /etc/php/7.1/fpm/conf.d# ln -s /etc/php/7.1/mods-available/apcu.ini 20_apcu.ini ausführen, da APCU nicht aktiv war.

    1. Hallo. Danke für Dein Feedback 🙂

      Zu Deinen Fragen bzw. Hinweisen.

      Nextcloud 12 hatte noch keine php7.2 Unterstützung, aber der Release-Termin stand bevor. Deshalb php7.2-fpm mit installiert.

      Wenn Du weitere php-extensions hast, musst Du die natürlich mit der neuen php-Version in die Konfiguration aufnehmen.
      Das ist aber in diesem Artikel nicht Bestandteil.
      Gruß Markus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.