Ubuntu: PHP-Fehler "Call to undefined function mb_internal_encoding()" beheben

English Deutsch

Problem:

Wenn du die folgende Fehlermeldung in deinem PHP-Log siehst:

php_mb_internal_encoding_error.txt
2022/12/22 12:57:20 [error] 1908680#1908680: *9092980 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function mb_internal_encoding() in /var/www/snappymail/v/0.0.0/include.php:90
Stack trace:
#0 /var/www/index.php(11): include()
#1 {main}
  thrown in /var/www/snappymail/v/0.0.0/include.php on line 90" while reading response header from upstream, client: ::ffff:77.7.108.195, server: mydomain.com, request: "GET /?admin HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php8.2-fpm.sock:", host: "mydomain.com"

Lösung

Die fehlende Funktion mb_internal_encoding() stammt vom PHP-Modul mbstring.

Um sie zu installieren, musst du zuerst die PHP-Version identifizieren, die das jeweilige Skript ausführt. Dies kann entweder durch Prüfen der Webserver-Konfigurationsdateien für die jeweilige Domain oder durch Prüfen des Fehlerlogs geschehen. In diesem Fall können wir erkennen, dass die PHP-Version 8.2 ist, anhand von upstream: "fastcgi://unix:/var/run/php/php8.2-fpm.sock:"

Falls du die korrekte Version nicht identifizieren kannst, empfehle ich, mbstring für jede installierte PHP-Version zu installieren, die du mit sudo dpkg --get-selections | grep php anzeigen kannst.

Mit der Versionsnummer können wir die mbstring-Erweiterung aus den Ubuntu/Debian-Paketquellen installieren:

install_php_mbstring.sh
sudo apt -y install php8.2-mbstring

Je nach Konfiguration musst du möglicherweise auch den Webserver und/oder den PHP-FPM-Dienst neu starten. Ich empfehle, es zuerst ohne Neustart zu versuchen, dann den Webserver neu zu starten und (wenn du PHP-FPM verwendest) den PHP-FPM für deine PHP-Version neu zu starten. Falls das nicht hilft, kannst du immer noch neu starten.

Danach sollte die Fehlermeldung verschwunden sein — manchmal musst du zusätzliche PHP-Module installieren und es ist am besten, das Fehlerlog auf weitere fehlende Funktionen oder andere Fehler im Zusammenhang mit fehlenden Erweiterungen zu überwachen.


Check out similar posts by category: PHP