Я должен получить 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 много раз и даже весь мой компьютер.
У меня была такая же проблема, и я решил ее командой cmd
cd C:\Apache24\bin
bin>mklink php.ini C:\php\php.ini
Пример:
Я надеюсь, что это поможет вам решить вашу проблему.
Других решений пока нет …