Ich verwende PHP 5.6 auf meinem Server centos-release-6-8.el6.centos.12.3.x86_64.
Ich habe folgende Fehlermeldung von einer meiner PHP-Funktionen erhalten.
Fatal error: Call to undefined function mb_detect_encoding()
Also habe ich versucht, die MBstring-Erweiterung zu installieren. wenn ich ausführen
sudo yum install php-mbstring
CLI kehrt zurück
Package php-mbstring-5.6.25-1.el6.remi.x86_64 already installed and latest version
Nothing to do
Und ich habe auch versucht "sudo yum install php56-mbstring" Das kehrt zurück
No package php56-mbstring available. Nothing to do
Trotzdem gibt mir die PHP-Funktion diesen Fehler und es gibt kein "Mbsting" in phpinfo ().
Die folgende Zeile füge ich auch zu httpd.conf hinzu
LoadModule php5_module modules/libphp5.so
Server neu gestartet
Aktualisieren:
[~]# php -v
PHP 5.6.22 (cli) (built: Jun 13 2016 11:43:51)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[~]# php -m | grep mbstring
[~]# php -i | grep mbstring
Nichts kehrt zu php -m | zurück grep mbstring & amp; php -i | grep mbstring
[~]# rpm -qil php-mbstring
Name : php-mbstring Relocations: (not relocatable)
Version : 5.6.25 Vendor: Remi Collet
Release : 1.el6.remi Build Date: Wed 31 Aug 2016 18:33:05 BST
Install Date: Mon 05 Sep 2016 16:26:05 BST Build Host: builder.remirepo.net
Group : Development/Languages Source RPM: php-5.6.25-1.el6.remi.src.rpm
Size : 2856446 License: PHP and LGPLv2 and BSD and OpenLDAP
Packager : http://blog.remirepo.net/
URL : http://www.php.net/
/etc/php-zts.d/20-mbstring.ini
/etc/php.d/20-mbstring.ini
/usr/lib64/php-zts/modules/mbstring.so
/usr/lib64/php/modules/mbstring.so
/usr/share/doc/php-mbstring-5.6.25
/usr/share/doc/php-mbstring-5.6.25/libmbfl_LICENSE
/usr/share/doc/php-mbstring-5.6.25/oniguruma_COPYING
/usr/share/doc/php-mbstring-5.6.25/ucgendat_LICENSE
[~]# rpm -qa 'php*'
php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64
php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
php-mbstring-5.6.25-1.el6.remi.x86_64
php-common-5.6.25-1.el6.remi.x86_64
php -v
.php -m | grep mbstring
undphp -i | grep mbstring
.rpm -qa 'php*'
zur Frage. Es kann sich auch lohnen, die Ausgabe zu überprüfenrpm -qil php-mbstring
für etwas ungewöhnliches.rpm -qa 'php*'
?Antworten:
Durch die Installation von PHP-Erweiterungen / -Modulen über RPM werden die Bibliotheksdateien in installiert
/usr/lib64/php/modules/
. Laufenphp -i |grep ^extension_dir
Zeigt das Erweiterungsverzeichnis an, das derzeit konfiguriert ist.Ein Erweiterungsverzeichnis von
/usr/local/lib/php/extensions/no-debug-non-zts-20131226
weist darauf hin, dass PHP zu einem früheren Zeitpunkt aus dem Quellcode installiert wurde und dass aphp.ini
Die Datei, die sich auf diese Quellinstallation bezieht, wird derzeit anstelle der/etc/php.ini
bereitgestellt von derphp-common
Paket.Um dieses Problem zu beheben, sollten Sie die Reste dieser Quellinstallation entfernen. Leider enthält das mit PHP-Quellcode gelieferte Makefile kein
uninstall
Ziel, so dass Sie nicht einfach laufen könnenmake uninstall
. Ich würde vorschlagen, diefind
Befehl, um diese Dateien nach ihrem Änderungsdatum zu suchen.quelle