在 PHP 开发过程中,如果突然遇到Uncaught Error: Call to undefined function mb_strlen()这类错误提示,完全不必慌张——这通常意味着 PHP 的 mbstring 扩展尚未安装或未启用。下面将完整演示安装步骤,确保清晰且可复现。
首先进入 PHP 源码目录,找到 mbstring 扩展对应的位置。假设你之前编译 PHP 时使用的源码包位于/temp001/php-7.1.0,则执行:
cd /temp001/php-7.1.0/ext/mbstring
接下来需要借助phpize工具来生成扩展的编译配置。该工具通常存放在 PHP 安装目录的 bin 子目录中,例如/usr/local/php7-abel001/bin/phpize。如果系统中存在多个 PHP 版本,请务必使用与当前运行环境对应的 phpize:
/usr/local/php7-abel001/bin/phpize
随后配置编译参数,关键是指定 PHP 配置路径:
./configure --with-php-config=/usr/local/php7-abel001/bin/php-config
请确保该路径与你实际安装的 PHP 保持一致。配置完成后即可进行编译与安装:
make && make install
若一切顺利,mbstring.so 文件会出现在扩展目录中,例如/usr/local/php7-abel001/lib/php/extensions/no-debug-non-zts-20160303/。建议确认该文件是否已存在。
最后一步,在 php.ini 中启用扩展:
echo 'extension=mbstring.so' >> /usr/local/php7-abel001/lib/php.ini
不要忘记重启相关服务。如果使用 Nginx + PHP-FPM 架构,可以参考以下命令:
nginx -s reload
killall php-fpm
./php-fpm
验证是否生效同样简单:执行php -m查看已启用扩展列表,或者通过php --ini检查配置加载状况。如果 mbstring 出现在列表中,说明问题已成功解决。
整个过程并不复杂,关键在于确保路径准确无误——特别是 phpize 和 php-config 必须与你当前运行的 PHP 版本严格对应。另外需要注意:即使当初编译 PHP 时未携带--enable-mbstring参数,此方法依然适用,因为扩展源码已随 PHP 源码包自带。至此,mbstring 扩展便稳固安装完毕。
