Heute geht es um das Fein-Tuning unserer Nextcloud-Installation, genauer gesagt, um die Umstellung des Systems von PHP auf PHP-FPM. Hierzu wird der Webserver Apache2 konfiguriert und auf HTTP/2 umgestellt.
Installation
Auf dem aktuellen System, Raspberry Pi OS Bookworm, läuft derzeit standardmäßig PHP 8.2. Diese Version werden wir mit den folgenden Schritten umstellen: Zunächst installieren wir PHP-FPM 8.2. Anschließend deaktivieren wir PHP 8.2, aktivieren PHP-FPM 8.2 und HTTP/2. Die erforderlichen Befehle werden nacheinander in der angegebenen Reihenfolge ausgeführt.
1 2 3 4 5 6 7 |
sudo apt install php-fpm -y sudo a2dismod php8.2 sudo a2enconf php8.2-fpm sudo a2enmod proxy_fcgi sudo a2dismod mpm_prefork sudo a2enmod mpm_event sudo a2enmod http2 |
Anschließend fügen wir im VirtualHost die folgende Zeile über den Editor Nano
1 |
sudo nano /etc/apache2/sites-available/raspi.conf |
unter VirtualHost *:443>
1 |
Protocols h2 http/1.1 |
hinzu (siehe Screenshot).
Mit einem Neustart des Webservers aktivieren wir nun PHP-FPM 8.2.
1 |
sudo service apache2 restart |
In der Nextcloud treten nun, nach der Umstellung, allerdings wieder einige bekannte Fehler auf. Diese beheben wir indem wir, mit
1 |
sudo nano /etc/php/8.2/fpm/php.ini |
folgenden Eintrag
1 |
memory_limit = 128M |
in
1 |
memory_limit = 512M |
ändern. Am Ende der Datei wird zudem ein weiterer Block mit den spezifischen Einstellungen zu OPcache eingefügt.
1 2 3 4 5 6 |
opcache.enable=1 opcache.interned_strings_buffer=64 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 |
Zum Abschluss muss dann der PHP-FPM 8.2-Dienst neu gestartet werden.
1 |
sudo service php8.2-fpm restart |
Tipp
Für eine zusätzliche Optimierung können die FPM-Einstellungen angepasst werden. Dazu werden die folgenden Parameter mit dem Editor auf die spezifischen Anforderungen des Systems eingestellt:
1 |
sudo nano /etc/php/8.2/fpm/pool.d/www.conf |
1 2 3 4 5 |
pm = dynamic pm.max_children = 120 pm.start_servers = 12 pm.min_spare_servers = 6 pm.max_spare_servers = 18 |
Diese Werte sind auf ein System mit 4 GB RAM abgestimmt (siehe Link).
Zum Abschluss wird der Dienst ein letztes Mal gestartet, damit die Änderungen wirksam werden.
1 |
sudo service php8.2-fpm restart |
Vorschau
Der nächste Artikel dieser Reihe wird sich damit befassen, das Datenverzeichnis von der MicroSD auf eine externe SSD auszulagern, um so den Speicher der Nextcloud zu erweitern.