PHP mbstring не работает с Apache в Windows

Я должен получить PHP 5.4 (32-разрядный, TS) с mbstring, работающий с Apache 2.4 (32-разрядный) на Windows. В моем 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
...

Но когда у меня есть простой index.php с <?php phpinfo(); ?> о 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 много раз и даже весь мой компьютер.

1

Решение

У меня была такая же проблема, и я решил ее командой cmd

  1. Отключить все службы Apache
  2. Запустите cmd от имени администратора
  3. Перейдите в папку bin Apache, в моем случае, с помощью команды cd C:\Apache24\bin
  4. создать символическую ссылку с файлом php.ini с помощью команды bin>mklink php.ini C:\php\php.ini

Пример:

пример CMD

Я надеюсь, что это поможет вам решить вашу проблему.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]