このチュートリアル に従ってLAMPを設定しようとするとこのエラーが表示され、phpmyadminを設定しようとすると上記のエラーが表示されます。
致命的なエラー:C:\ WebServer\Apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.incの177行目の未定義関数mb_detect_encoding()の呼び出し
ここでアドバイスに従いました: phpmyadmin mb_detect_encodingにアクセスしようとすると、PHPの致命的なエラー .
phpinfo()
を実行すると、次のようにMySQLとmb_string
のサポートが有効になっていることがわかります。
Gdライブラリもインストールします。
このリンクを確認してください http://www.php.net/manual/en/mbstring.installation.php
PHPを再コンパイルするよりもはるかに簡単な方法があります。必要なmbstringライブラリをインストールするだけです:
例: CentOS 6.2にPHP mbstringをインストールする方法
yum --enablerepo=remi install php-mbstring
ああ、後でApacheを再起動することを忘れないでください。
Mbstringは、デフォルト以外の拡張子です。これは、デフォルトでは有効になっていないことを意味します。 configureオプションでモジュールを明示的に有効にする必要があります。
PHPバージョンが7.0の場合:
Sudo apt-get install php7.0-mbstring
Sudo service Apache2 restart
PHPバージョンが5.6の場合:
Sudo apt-get install php5.6-mbstring
Sudo service Apache2 restart
Windowsでは、ファイルphp.iniを開き、次の変更を行います。
コメントを削除し、extディレクトリをポイントします
; extension_dir = "./"-> extension_dir = "C:/ Php/ext"
この拡張機能のコメントを削除
Apacheサービスを再起動します
httpd -k restart
Php.iniファイルを開いたとき、「extension_dir」行は次のようになりました。
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
変更後:
extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"
そしてそれは働いた。
Windows/WAMPでは、Gd2拡張機能、MySQL拡張機能、外部dll/libsにphp_mbstring.dllの依存関係はないようです。
deplister.exe ext\php_mbstring.dll
php5ts.dll,OK
MSVCR110.dll,OK
KERNEL32.dll,OK
deplister.exe ext\php_Gd2.dll
php5ts.dll,OK
USER32.dll,OK
GDI32.dll,OK
KERNEL32.dll,OK
MSVCR110.dll,OK
Php_mbstringが既に必要としているものは何でも、組み込みです(静的にDLLにコンパイルされます)。
未定義関数mb_detect_encoding()の呼び出し
このエラーも非常に具体的かつ決定的です...
関数mb_detect_encoding()
は、php_Gd、php_mysql、php_mysqli、または別の拡張機能がロードされていないため失敗しませんでした。単に見つかりませんでした。
有効であると報告されたすべての回答(Windows/WAMPの場合)、つまり他の拡張機能をロードし、php.ini extension_dir
パスを変更すること(これが最初に間違っていた場合、拡張機能なし)読み込みなど)、a)extension = php_mbstring.dll
行のコメント解除、またはb)Apacheまたはコンピューターの再起動(変更を有効にするため)。
Windowsでは、ほとんどの場合、php_mbstring.dllは次のいずれかです。
Windowsによってブロックされました。右クリックしてブロックを解除し、[プロパティ]をチェックします。
または、PHPは、別のバージョンがロードされるためにphp_mbstring.dllをロードできません(たとえば、一部の不適切なPHP DLLがC:\ Windows\system32にインストールされる)、バージョンの不一致、欠落ランタイムDLLなど。最初に、ApacheおよびPHPのエラーログファイルを調べて、手がかりを探します。
詳細な回答はこちら: 未定義関数mb_detect_encodingの呼び出し
Ubuntu 17でも同じ問題がありました。Ispconfig
はあらゆる種類のキュー操作を処理していませんでした。また、server.sh
コマンドも機能していませんでした。 OSのアップグレード後の実行中のPHPバージョンを確認し、7.1であったため、解決策は次のように入力することでした。
apt-get install php7.1-mbstring
そして今は大丈夫です
問題は、PHPIniDirを正しく設定しないと、Apacheがphp.iniを見つけられないことです。鉱山は次のように設定されました:PHPIniDir "c:/ php7"しかし、フォルダは実際には "php"です。手掛かりはphpinfo()を表示していました。
すべての言語を使用している場合は、php.inファイルですべての言語mbstringを有効にする必要があります。英語バージョンのphpmyadminのみを使用する必要があります。
これがいくつかのPPLに役立つことを願っています.php.iniファイルの「docref_root」「docref_ext」にパスと拡張子を追加したときにこのエラーが発生し、それをコメントアウトして大丈夫でしたが、今すぐ助けてもらうことはできません。
Fedoraの場合:
yum install php-mbstring
次に、Apacheを再起動します