PHP mbstring不';不能在Windows上使用Apache
我必须在Windows上使用Apache2.4(32位)运行带有mbstring的PHP5.4(32位,TS)。在我的httpd.conf中,我设置:PHP mbstring不';不能在Windows上使用Apache,php,windows,apache,php-extension,mbstring,Php,Windows,Apache,Php Extension,Mbstring,我必须在Windows上使用Apache2.4(32位)运行带有mbstring的PHP5.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_mbstrin
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时,没有关于mbstring的词,尽管它说使用了正确的php.ini
当我将index.php更改为
时,它会出现错误
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命令解决了这个问题
cdc:\Apache24\bin
bin>mklink php.ini C:\php\php.ini
我希望这将帮助您解决问题。也许这个答案可以帮助您:Web SAPI和CLI SAPI通常有不同的php.ini文件,您需要确保您已更改了相应的文件。。。。如果您正在从命令行运行
php-m
,并看到它已安装,那么您可能只为CLI SAPIMaybe启用了它,因为您为CLI加载的配置文件与为web服务器加载的配置文件不同。此外,您还必须重新启动web服务器,以使许多配置更改生效。从命令行和您设置的phpinfo页面查看phpinfo的ini文件部分。我认为对php5.4的支持随着php7的发布而结束。您可能需要考虑升级到至少5.6版本,可能与我遇到的问题相同。我的php目录位于D:。因此,我以管理员的身份打开了一个cmd,转到C:\并键入mklink/D php D:\php.inì
,这就解决了我的问题