Einige Leser haben eine Nextcloud nach meinen Anleitungen und Vorgaben auf einem Raspberry Pi installiert, um ihre Daten nicht in fremde Hände zu geben, sondern diese in den eigenen vier Wänden zwischenzuspeichern. Seit Ende November verhangenen Jahres besteht hier jedoch ein Sicherheitsrisiko, da PHP 7.4 nicht mehr mit Sicherheits-Updates versorgt wird. Im Artikel „PHP 8.2 auf Raspberry Pi OS“ hatte ich bereits darauf hingewiesen.
Da sich PHP 8.2 nicht mit der aktuellen Version Nextcloud 25 verträgt, möchte ich heute zeigen, wie man PHP7.4-fpm mit PHP8.1-fpm ersetzen kann. Dabei gehe ich auch noch auf die spezifische Konfiguration der Nextcloud auf dem Raspberry Pi ein.
Installation
Zuerst wird der Key für die neu einzubindende Paketquelle heruntergeladen.
1 |
sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg |
Danach wird diese in das System eingebunden.
1 |
sudo echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list |
Es erfolgt ein Upgrade.
1 |
sudo apt update && sudo apt upgrade -y |
Ein erster Check zeigt die neue PHP-Version.
1 |
php -v |
Hier wird im Moment noch PHP 8.2 ausgegeben. Um jedoch auf PHP 8.1 downzugraden, lädt man die entsprechenden Pakete nach.
1 |
sudo apt install php8.1 php8.1-mbstring php8.1-gd php8.1-curl php8.1-imagick php8.1-intl php8.1-bcmath php8.1-gmp php8.1-mysql php8.1-zip php8.1-xml php8.1-apcu libapache2-mod-php8.1 |
Mit folgendem Befehl muss nun die Version 8.1 manuell als aktuelle Version gesetzt werden.
1 |
sudo update-alternatives --config php |
in meinem Fall ist das die Option 3.
1 |
php -v |
Ein erneuter Check zeigt die gesetzte PHP-Version.
Nun wird PHP7.4-fpm deaktiviert, PHP8.1-fpm heruntergeladen und aktiviert.
1 2 3 |
sudo a2disconf php7.4-fpm sudo apt install php8.1-fpm sudo a2enconf php8.1-fpm |
Ein nachfolgender Restart des Webservers führt die Änderungen abschließend aus.
1 |
sudo service apache2 restart |
Nextcloud-Konfiguration
Jetzt muss die Nextcloud noch an die neue PHP-Version angepasst werden, um alle internen Checks zu bestehen. Dazu öffnet man die neue php.ini
1 |
sudo nano /etc/php/8.1/fpm/php.ini |
setzt das memory_limit hoch auf 512MB
1 |
memory_limit = 512M |
und fügt folgende Einträge am Ende für den Zwischenspeicher OPchache ein.
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 |
Zur Optimierung von PHP8.1-fpm werden speziell für das Modell Raspberry Pi 4 mit 4GB RAM in der Datei www.conf mit
1 |
sudo nano /etc/php/8.1/fpm/pool.d/www.conf |
folgende Einträge angepasst.
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 |
Ein Restart des Dienstes aktiviert diese anschließend.
1 |
sudo service php8.1-fpm restart |
Jetzt wird in der apcu.ini
1 |
sudo nano /etc/php/8.1/mods-available/apcu.ini |
noch am Ende diese Zeile eingetragen
1 |
apc.enable_cli=1 |
und abschließend der Webserver ein letztes Mal neu gestartet.
1 |
sudo service apache2 restart |
Fazit
Mit ein wenig zeitlichem Aufwand lässt sich die eigene Cloud seitens der Skriptsprache wieder absichern. Auf das neue Release von Raspberry Pi OS zu warten, welches wieder eine mit Sicherheitspatches unterstützte PHP-Version mitbringt, wäre nicht ratsam.
[…] Beitrag baut auf dem Artikel „PHP7.4-fpm auf PHP8.1-fpm für Nextcloud“ […]