XAMPP加载PHP-CPP扩展报错:缺失CXXABI_1.3.8版本求解决方案
解决XAMPP中libstdc++.so.6缺失CXXABI_1.3.8导致PHP扩展加载失败的问题
问题本质是XAMPP自带的libstdc++.so.6版本过低,缺少PHP-CPP依赖的CXXABI_1.3.8符号;而系统目录下的同版本库具备该符号,但XAMPP的PHP进程默认优先加载自身目录内的库,引发依赖冲突。以下是几种可行的解决办法:
方法1:替换XAMPP的libstdc++.so.6为系统库的软链接
直接让XAMPP使用系统中符合要求的库:
- 先备份XAMPP原有的库文件:
sudo mv /opt/lampp/lib/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6.bak - 创建指向系统库的软链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6 - 重启XAMPP,执行
/opt/lampp/bin/php -m验证问题是否解决。
方法2:修改PHP启动时的库加载优先级
无需替换原库,通过环境变量让系统库优先被加载:
- 临时生效(仅当前终端会话):
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH /opt/lampp/bin/php -m - 永久生效:
编辑XAMPP的PHP启动脚本(/opt/lampp/bin/php),在脚本开头添加以下内容(修改前记得备份原脚本):export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
方法3:重新编译PHP-CPP适配XAMPP库(备选)
如果必须使用XAMPP自带的libstdc++,可尝试强制PHP-CPP链接XAMPP的库(不推荐,可能因版本过低编译失败):
- 修改你的Makefile链接参数,指定XAMPP的libstdc++路径:
LINKER_DEPENDENCIES = -lphpcpp -L/opt/lampp/lib -lstdc++ - 重新编译安装PHP-CPP和你的扩展模块。
内容的提问来源于stack exchange,提问作者reham501
相关产品推荐
相关产品推荐

