Windows下NetBeans+UniserverZ开发PHP时mb_string扩展启用问题
我之前也碰到过几乎一模一样的问题,UniServerZ的PHP配置有时候因为ini文件选错、路径不对这些小细节,导致mbstring扩展死活加载不起来,给你一步步捋清楚怎么搞定:
第一步:找准要修改的php.ini文件
UniServerZ里可能存在多个php.ini副本(比如Apache目录下和PHP核心目录下各有一个),一定要修改PHP核心目录里的那个——一般是UniServerZ\core\php文件夹下的php.ini,别改错了,改其他ini文件完全没用。第二步:确认php_mbstring.dll的存在
先去UniServerZ\core\php\ext目录下检查php_mbstring.dll文件是否存在。如果没有,从UniServerZ的安装包或者和你当前PHP版本匹配的官方PHP包中复制过来,版本不匹配的话扩展也会加载失败。第三步:正确启用mbstring扩展
打开找到的php.ini文件,搜索extension=php_mbstring.dll,你会发现这行大概率被注释掉了(前面有个;),把这个分号删掉,改成:extension=php_mbstring.dll要是你的PHP版本在7.0以上,有些ini文件里会写成
extension=mbstring,这种写法也没问题,直接用就行。第四步:检查extension_dir配置
有时候扩展加载失败是因为扩展目录路径没配置对,在php.ini里搜索extension_dir,确保它指向正确的扩展文件夹:
可以用相对路径:extension_dir = "ext"也可以写绝对路径更稳妥:
extension_dir = "C:\UniServerZ\core\php\ext"第五步:重启UniServerZ的Apache服务
修改完ini文件后必须重启Apache,不然新配置不会生效。直接在UniServerZ的控制面板里找到Apache的重启按钮点击就行。第六步:验证扩展是否加载成功
在NetBeans里新建一个简单的PHP文件,写入:<?php phpinfo(); ?>运行这个文件后,在输出页面里搜索
mbstring,如果能看到一整段关于mbstring的配置信息,说明扩展已经成功加载了,这时候再跑ToDoList示例项目就不会报那个致命错误了。
最后补个小提醒:别忘了确认NetBeans里的PHP解释器路径是对的——打开工具->选项->PHP,确保PHP解释器指向UniServerZ\core\php\php.exe,别让NetBeans用了系统里其他版本的PHP,不然之前的配置全白费。
内容的提问来源于stack exchange,提问作者Ed S

