【问题标题】:Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding()致命错误:未捕获错误:调用未定义函数 mb_detect_encoding()
【发布时间】:2017-01-27 04:11:08
【问题描述】:

我在尝试访问 http://localhost/phpmyadmin/ 时收到以下错误:

Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in C:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc:177 Stack trace: #0 C:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(282): _encode('The %s extensio...') #1 C:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc(289): _gettext('The %s extensio...') #2 C:\Apache24\htdocs\phpmyadmin\libraries\core.lib.php(306): __('The %s extensio...') #3 C:\Apache24\htdocs\phpmyadmin\libraries\core.lib.php(961): PMA_warnMissingExtension('mbstring', true) #4 C:\Apache24\htdocs\phpmyadmin\libraries\common.inc.php(102): PMA_checkExtensions() #5 C:\Apache24\htdocs\phpmyadmin\index.php(13): require_once('C:\\Apache24\\htd...') #6 {main} thrown in C:\Apache24\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc on line 177

在这里查看了类似的主题后,我做了以下事情:

  1. 检查(使用 info.php)我的 php.ini 文件的路径: 加载配置文件 C:\PHP\php.ini
  2. 修改并取消注释 php.ini 中的以下行:
    • extension_dir = "c:\PHP\ext"(也试过 "c:/PHP/ext")
    • extension=php_gd2.dll
    • extension=php_mbstring.dll
    • extension=php_exif.dll
    • extension=php_mysqli.dll
  3. 尝试了 32 位和 64 位 dll
  4. 确保所有 dll 都在 c:/PHP/ext 文件中,然后右键单击>属性>取消阻止它们。
  5. 多次重启httpd.exe,服务器也重启了。

这是我的 httpd.conf Apache 配置文件的内容:

这是我的 httpd.conf 的内容:

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

我一直收到同样的消息,不知道如何解决。

我正在运行 Windows 10,带有 Apache 2.4-64bits、PHP7-64bits 和 MysqlServer5.7。 Apache 运行良好,PHP 也运行良好(不用担心访问 info.php)

谢谢。

【问题讨论】:

  • 最好使用 unix 正斜杠,因为 Windows 版本的 PHP 等会自动进行任何转换,但在双引号字符串中使用 / 可以消除它与转义字符混淆的可能性
  • 运行&lt;?php phpinfo(); ?&gt; 并检查您是否正在编辑正确的php.ini 文件
  • @RiggsFolly,这就是我在第一点的意思。不过谢谢。所以“c:/PHP/ext”应该是最好的?
  • 你能在“c:\PHP\ext”下找到php_mbstring.dll吗?
  • 是的,php_mbstring.dll和php_mysqli.dll都在c:/PHP/ext/下

标签: php mysql phpmyadmin xampp wamp


【解决方案1】:

我听说Apache2.4 对PHPINIDir 有一些问题。所以尝试在http.conf中添加PHPIniDir "C:\PHP"

【讨论】:

  • 你的意思是httpd.conf?我用我的 httpd.conf 文件的内容更新了我的问题
  • 好。我暂时没有更多的想法
  • 好的。不过谢谢。另外我在想我从来没有以任何方式将我的 MySql 数据库链接到 phpMyAdmin(从来没有指定任何路径左右),问题可能来自于此吗?
  • 我不这么认为。如果你之前没用过,可能连接MySql有问题,但你现在的问题不一样
猜你喜欢
  • 2017-03-24
  • 2013-06-16
  • 2014-10-22
  • 2019-05-22
  • 2016-04-07
  • 2017-08-19
相关资源
最近更新 更多