Zum Inhalt

PHP-Module und Einstellungen

Diese Seite bündelt PHP-bezogene Meldungen und die bisherigen Lösungsbeispiele. Ersetze x.x durch Deine PHP-Version. Die Apache-Pfade gelten für mod_php; PHP-FPM und die Kommandozeile können eigene Konfigurationen verwenden.

PHP-Speicherlimit

Die PHP-Speichergrenze liegt unter dem empfohlenen Wert von 512 MB. Einige Funktionen oder Anwendungen, einschließlich des Updaters, funktionieren möglicherweise nicht ordnungsgemäß.

Speicher zuordnung für die PHP Module. Am Verfügbaren Speicher des Servers Orientieren.

root@nc:~# vi /etc/php/x.x/apache2/php.ini

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 2048M 
systemctl restart apache2

OPcache-Puffer anpassen

Das PHP OPcache-Modul ist nicht ordnungsgemäß konfiguriert. Der "OPcache interned strings"-Puffer ist fast voll. Um sicherzustellen, dass sich wiederholende Strings effektiv zwischengespeichert werden können, wird empfohlen, "opcache.interned_strings_buffer" mit einem Wert größer als "8" in der PHP-Konfiguration zu setzen..

root@nc:~# vi /etc/php/x.x/apache2/php.ini
opcache.interned_strings_buffer=16

Empfohlene PHP-Erweiterungen installieren

Dieser Instanz fehlen einige empfohlene PHP-Module. Für eine verbesserte Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren: - gmp Erforderlich für SFTP-Speicher und empfohlen für WebAuthn-Leistung - intl Erhöht die Sprach-Übersetzungsleistung und behebt ein Problem mit der Sortierung von Nicht-ASCII-Zeichen

root@nc:~# apt install php-gmp php-intl

root@nc:~# systemctl restart apache2

Imagick für die Theming-App einrichten

Das PHP-Modul "imagick" ist nicht aktiviert, die Theming-App hingegen schon. Damit die Favicon-Generierung korrekt funktioniert, müssen Sie dieses Modul installieren und aktivieren.

root@nc:~# apt install php-imagick librsvg2-common libmagickcore-7.q16-10-extra

root@nc:~# systemctl restart apache2

Ausgabepufferung deaktivieren

Pufferung von Ausgabedaten deaktivieren, die von einem PHP-Skript generiert werden, bevor sie an den Webbrowser gesendet werden.

root@nc:~# vi /etc/php/x.x/apache2/php.ini

; output_buffering = 4096
output_buffering = Off
systemctl restart apache2

PCRE-JIT-Fehler untersuchen

PHP-Meldung: Fehler

PHP

preg_match(): Allocation of JIT memory failed, PCRE JIT will be disabled.

Lösung: 
root@nc:~# vi /etc/php/x.x/apache2/php.ini

pcre.jit=0

....

root@nc:~# truncate -s 0 /var/www/nextcloud/data/nextcloud.log

PHP nach einem Update prüfen

Nach einem Update wird PHP nicht richtig erkannt. Das folgende Beispiel gilt nur für Apache mit installiertem PHP-8.5-Modul (mod_php). Passe die Versionsnummer an das tatsächlich installierte Modul an. Bei PHP-FPM ist stattdessen dessen Dienst und Apache-Anbindung zu prüfen; a2enmod php8.5 ist dort keine passende Lösung.

a2enmod php8.5
systemctl restart apache2
  • Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.
  • Das PHP OPcache-Modul ist nicht richtig konfiguriert. Weitere Informationen findest du in der Dokumentation ↗.
    • Der OPcache-Zwischenspeicher für interne Zeichenfolgen ist fast voll. Um sicherzustellen, dass sich wiederholende Zeichenfolgen effektiv zwischengespeichert werden können, wird empfohlen, opcache.interned_strings_buffer mit einem Wert größer als 8 in deiner PHP-Konfiguration anzuwenden.
vi /etc/php/x.x/apache2/php.ini

; Maximum amount of memory a script may consume
; https://php.net/memory-limit
memory_limit = 2048M 

root@nc:~# a2enmod php8.5
Considering dependency mpm_prefork for php8.5:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.5:
Module php8.5 already enabled