【发布时间】: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
在这里查看了类似的主题后,我做了以下事情:
- 检查(使用 info.php)我的 php.ini 文件的路径: 加载配置文件 C:\PHP\php.ini
- 修改并取消注释 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
- 尝试了 32 位和 64 位 dll
- 确保所有 dll 都在 c:/PHP/ext 文件中,然后右键单击>属性>取消阻止它们。
- 多次重启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 等会自动进行任何转换,但在双引号字符串中使用
/可以消除它与转义字符混淆的可能性 -
运行
<?php phpinfo(); ?>并检查您是否正在编辑正确的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