macOS(MAMP环境)下SaxonC结合PHP通过浏览器访问时触发[__NSPlaceholderSet initialize]崩溃,但CLI运行正常的问题求助
macOS(MAMP环境)下SaxonC结合PHP通过浏览器访问时触发[__NSPlaceholderSet initialize]崩溃,但CLI运行正常的问题求助
大家好,我最近碰到一个棘手的问题,想请教下社区里的各位前辈:
我在 macOS Sequoia 15.5(M3芯片)上用 MAMP 6.9 搭建了 Apache + PHP 8.2 的环境,脚本里用到了 SaxonC 12.7 的 PHP 扩展来做 XSLT 转换。奇怪的是,这个脚本在命令行(CLI)里跑完全没问题,但通过浏览器访问(也就是在 Apache 进程下运行)就直接崩溃了。
崩溃发生在执行这行代码的时候:
$xsltExecutable = $xsltProcessor->compileFromFile($xsltPath);
之前的$proc = new Saxon\SaxonProcessor();和$xsltProcessor = $proc->newXslt30Processor();都能正常执行,到编译XSLT文件这一步就挂了,报错信息如下:
objc[xxxx]: +[__NSPlaceholderSet initialize] may have been in progress in another thread when fork() was called.
objc[xxxx]: We cannot safely call it or ignore it in the fork() child process. Crashing instead.
objc[xxxx]: Set a breakpoint on objc_initializeAfterForkError to debug.
我已经尝试过这些方法,但都没解决问题:
- 在终端执行
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES - 直接在 MAMP 的 httpd.conf 配置文件里添加环境变量设置
- 验证过 PHP 确实能获取到这个环境变量
有没有大佬遇到过类似的情况?或者有其他排查方向可以给我指点一下吗?
内容来源于stack exchange
相关产品推荐
相关产品推荐

