web-dev-qa-db-de.com

PHP Schwerwiegender Fehler beim Versuch, auf phpmyadmin mb_detect_encoding zuzugreifen

Ich bin mir nicht sicher, was passiert ist, aber das Protokoll gibt mir beim Versuch, auf phpmyadmin zuzugreifen, Hilfe. Beim Versuch, ein anderes Problem zu debuggen, stieß es auf dieses Problem. Es ist nicht wirklich möglich, auf den Zeitpunkt zurückzugreifen, an dem es funktionierte. 

PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion mb_detect_encoding () in /usr/share/php/gettext/gettext.inc in Zeile 177

Beim Versuch, die Website aufzurufen, erhalte ich diesen Fehler. Ich denke, es sind wahrscheinlich die beiden Fehler: 

Datenbankverbindungsfehler (1): Der MySQL-Adapter 'mysqli' ist nicht verfügbar.

18
milan

Der erste Fehler wird durch PHP verursacht, weil die Erweiterung mbstring entweder nicht installiert oder nicht aktiv ist.

Der zweite Fehler ist eine Ausgabe von phpMyAdmin/Ihrer Site, in der Sie zur Installation/Aktivierung der mysqli-Erweiterung aufgefordert werden.

Um mbstring und mysqli zu aktivieren, bearbeiten Sie Ihre php.ini und fügen Sie die beiden Zeilen mit mbstring.so und mysqli.so unter Unix oder mbstring.dll und mysqli.dll unter Windows hinzu

Unix /etc/(phpX/)php.ini

extension=mysqli.so
extension=mbstring.so

Windows PHP Installationsordner\etc\php.ini

extension=mysqli.dll
extension=mbstring.dll

Vergessen Sie nicht, Ihren Webserver danach neu zu starten.

BEARBEITEN: Benutzer fügte hinzu, dass er Redhat in den Kommentaren verwendete. So installieren Sie Erweiterungen in allen auf CentOS/Fedora/RedHat/Yum basierenden Linux-Distributionen

Sudo yum install php-mysqli
Sudo yum install php-mbstring

restart your werbserver
Sudo /etc/init.d/httpd restart

sie können Ihre Installation mit einem kleinen PHP-Skript im Dokumentstammverzeichnis überprüfen. Hier werden alle Einstellungen, Versionen und aktiven Erweiterungen aufgelistet, die Sie für PHP installiert haben

test.php

<?php
phpinfo();
26
Michel Feldheim

Nachdem ich über extension_dir = "ext" gelesen hatte, fügte ich die Zeile zu php.ini hinzu, arbeitete aber nicht, dann fing ich an, das Apache-Fehlerprotokoll zu durchsuchen und sah, dass PHP die DLLs im angegebenen Verzeichnis "ext" nicht finden konnte ". Ich kommentierte die extension_dir-Zeile, starte Apache neu und schaute das Fehlerprotokoll erneut an. Ich sah, dass PHP nun die DLLs in C:/PHP/ext (standardmäßig schätze) sucht. Aber da ich andere Ordner verwende, ist das nicht der Fall der richtige Pfad, also habe ich die extension_dir-Zeile auskommentiert und folgendes geschrieben:

extension_dir = "C:/Apache24/PHP/ext" 

In meiner Konfiguration ist das der richtige Pfad zur DLL.

und natürlich unkommentiert: 

extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll

Der Apache-Server und der Internet-Browser wurden neu gestartet, und phpMyAdmin funktioniert jetzt mit meinem mySQL-Login.

Also, der falsche Pfad der DLL und die in php.ini kommentierten DLLs waren das Problem.

Denken Sie daran, Apache und den Internet-Browser nach dem Bearbeiten der Konfigurationsdateien neu zu starten.

Systemspezifikation: Windows 7 HB 64bit Httpd-2.4.4-win32-ssl_0.9.8.Zip Php-5.4.16-Win32-VC9-x86.Zip PhpMyAdmin-4.0.4.1 -all-languages.Zip mysql-installer-community-5.6.11.0.msi

Ich hoffe das hilft. Danke auch für Ihre Kommentare.

10
phpNoob

in ubuntu 16.04, als ich versuchte, sich mit phpmyadmin zu verbinden, erschien eine weiße leere Seite, so dass ich den obigen Befehl ausführte und phpmyadmin funktioniert 

Sudo apt-get install php-mbstring php7.0-mbstring php-gettext

für MySQL-Support installieren

Sudo apt-get install php7.0-mysql

getestet in Ubuntu 16.04 mit Version von PHP 7 

Es sieht so aus, als hätte Ihre PHP - Installation nicht die Erweiterung mbstring und die mysqli-Adaptererweiterung installiert.

Bitte überprüfen Sie Ihre phpinfo(); oder führen Sie php -i | grep 'mbstring\|mysqli' in einem Terminal aus.

3
Koen.

Ich hatte das gleiche Problem auf meinem Windows7-32-Bit: 

1. "Fataler PHP-Fehler: Aufruf der undefined-Funktion mb_detect_encoding () in /usr/share/php/gettext/gettext.inc in Zeile 177"

als ich meine php.ini-Datei öffnete, sah die Zeile "extension_dir" wie folgt aus:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

was ich geändert habe:

extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"

und es hat funktioniert.

3
Rajeev Ranjan

In php.ini musste ich mich ändern

extension_dir = "ext"

zu

extension_dir = "C:/PHP/ext"

da mein PHP in C:\PHP installiert wurde. Ich musste / anstelle von \ verwenden, und dann hat es funktioniert. 

Unkommentiert auch die Erweiterungen mbstrings, mysqli und mysql.

2

Rekompilieren Sie PHP mit mbstring.

./configure --enable-http --with-apxs2 --with-mysql --with-Gd --with-curl --with-mbstring

make 

make install
1
Harikrishnan

Was mir geholfen hat (mit XAMPP unter Windows), war:

  • stellen Sie sicher, dass mein Pfad den korrekten Pfad für PHP enthält (ich hatte zwei PHP-Installationen, eine unter c:\php und die XAMPP-Installation in c:\xampp\php, die ich verwenden wollte.
  • Überprüfen Sie die Zeilen
    extension_dir="C:\xampp\php\ext"
    extension=php_mbstring.dll
    extension=php_exif.dll ; Must be after mbstring as it depends on it
    wurden in der php.ini-Datei unkommentiert (d. h. kein ; am Anfang)
  • starten Sie den Apache-Server neu
  • löschen Sie außerdem den Cache, wenn Sie die Seite http://localhost/phpmyadmin/ neu laden (z. B. mit Strg-F5 in Chrome).
1
user2314737

Versuchen Sie install mysqli und pdo . Legen Sie es in das Terminal:

./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
0
RDK

Ich hatte das gleiche Problem, das hat bei mir funktioniert. 

Sie können auf das Wampserver-Symbol und dann auf das Fehlerprotokoll PHP klicken. Überprüfen Sie, ob es dies sagt: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll'

Wenn ja, können Sie Ihre PHP-Version erneut laden, indem Sie auf das Wampserver-Symbol, dann auf PHP, dann auf Version klicken und dann auf Ihre Version klicken. Warten Sie, bis wieder alles online ist, und versuchen Sie, auf phpmyadmin zuzugreifen.

0
DBr
  1. Einige Windows-Versionen enthalten nicht die Datei libmysql.dll, die zum Laden der Erweiterungen mysql und mysqli erforderlich ist. Prüfen Sie, ob es in C:/Windows/System32 verfügbar ist (Windows 7, 32 Bit). Wenn nicht, können Sie es DLL-files.com herunterladen und unter C:/Windows/System32 installieren. 
  2. Wenn dies fortbesteht, überprüfen Sie Ihre Apache-Protokolldateien und suchen Sie nach einer Lösung, über die der von Ihrem Server protokollierte Fehler reagiert.
0
che-azeh

Meine Vermutung wäre zu prüfen, ob die mysqli-Erweiterung in Ihrer PHP -Konfiguration aktiviert ist. Weitere Informationen wären großartig (zB Betriebssystem, AMP-Stack usw.).

Überprüfen Sie in Ihrer php.ini-Konfiguration nach mysqli, und stellen Sie sicher, dass kein ';' vor der Verlängerung. Die in meinem Setup aktivierte ist php_mysqli_libmysql.dll.

0
thorne51

In Windows 2008 Server.

ich entfernte ";" vor der Erweiterung = php_mbstring.dll in der php.ini-Datei und es hat funktioniert ... ich folgte dem Link ... 

https://bugs.php.net/bug.php?id=64965

0
shashikanth

Ich habe es unter Windows versucht und bekam das gleiche Problem, nachdem ich dies in PHP installation folder\etc\php.ini aktiviert hatte:

extension=mysqli.dll 
extension=mbstring.dl

Sie sollten auch Folgendes in der Ini-Datei aktivieren:

extension_dir = "ext"

phpMyadmin arbeitet jetzt!

0
amitgoswami

Eine Option ist: Deaktiviert this extension_dir = "ext"

und das andere ist:

gehen Sie zum Wamp-Symbol und sehen Sie PHP und den Klick auf PHP-Fehlerprotokolle. Dann finden Sie im Fehlerprotokoll u.

dieser Fehler tritt nur auf, wenn die Pfade nicht richtig eingestellt sind.

0
S Ali Khan