PHP mbstring在Windows

时间:2015-12-14 09:32:47

标签: php windows apache php-extension mbstring

我必须在Windows上运行带有Apache 2.4(32位)的mbstring的PHP 5.4(32位,TS)。在我的httpd.conf中我设置了这个:

PHPIniDir "c:/php54"
LoadModule php5_module "c:/php54/php5apache2_4.dll"
AddHandler application/x-httpd-php .php

在我的php.ini中:

extension_dir = "ext"
...
extension=php_mbstring.dll

现在,当我执行php -m时,它正确地表示已加载mbstring:

...
libxml
mbstring
mcrypt
...

php -i吐出一个关于mbstring的部分:

mbstring

Multibyte Support => enabled
Multibyte string engine => libmbfl
HTTP input encoding translation => disabled
libmbfl version => 1.3.2
...

但是,当我有一个带有<?php phpinfo(); ?>的简单index.php时,没有关于mbstring的说法,即使它说使用了正确的php.ini。

当我将index.php更改为<?php echo mb_convert_case("hello world", MB_CASE_UPPER); ?>时,错误

Fatal error: Call to undefined function mb_convert_case() in C:\Apache24x86\htdocs\index.php on line 1

我可以使用PHP CLI php index.php运行完全相同的脚本,并正确打印HELLO WORLD

为什么mbstring在php.exe中工作,而在Apache中却没有?当然,我多次重启Apache,甚至我的整个PC。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我用cmd命令解决了它

  1. 关闭所有apache服务
  2. 以管理员身份运行cmd
  3. 在我的情况下,使用命令cd C:\Apache24\bin
  4. 转到apache的bin文件夹
  5. 使用命令bin>mklink php.ini C:\php\php.ini
  6. 创建文件php.ini的符号链接

    示例:

    cmd example

    我希望这可以帮助您解决问题。