调用ldap_connect()函数导致PHP网页崩溃,求解决方案(macOS Ventura)
macOS Ventura下XAMPP PHP LDAP连接触发dyld断言崩溃的解决方法
这个问题的核心原因是XAMPP自带的LDAP扩展与macOS Ventura的dyld加载器存在兼容性冲突,触发了Loader.cpp的断言失败。以下是可行的解决步骤:
方法1:替换XAMPP的LDAP扩展为系统兼容版本
- 定位XAMPP的PHP扩展目录
打开终端,进入XAMPP的PHP扩展目录(路径中的版本号需根据你的PHP版本调整,比如PHP8.0对应20200930):cd /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20200930/ - 备份原有LDAP扩展
mv ldap.so ldap.so.bak - 安装brew兼容版PHP
安装与XAMPP同版本的PHP(这里以8.0为例):brew install php@8.0 - 复制兼容的LDAP扩展
找到brew安装的PHP扩展目录,复制ldap.so到XAMPP的扩展目录:cp /usr/local/Cellar/php@8.0/8.0.*/lib/php/20200930/ldap.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20200930/ - 修复文件权限
chmod 755 /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20200930/ldap.so - 重启XAMPP的Apache服务
方法2:使用brew PHP替代XAMPP PHP
如果替换扩展无效,可直接使用brew安装的PHP运行脚本:
- 停止XAMPP的Apache服务
- 启动PHP内置服务器:
php -S localhost:8000 - 在浏览器中访问
http://localhost:8000/你的测试脚本.php
验证配置
修改XAMPP的php.ini文件,确保extension=ldap未被注释,重启服务后运行你的测试代码,检查是否能正常绑定LDAP服务器。
内容的提问来源于stack exchange,提问作者Debarghya Maity
相关产品推荐
相关产品推荐

