我有一个Linux共享对象,可以通过FFI在PHP 7.4.4的CLI版本中加载而没有问题。当我尝试使用PHP-FPM执行相同的代码来提供nginx页面时,脚本的执行非常不一致。有些请求成功,有些则失败。我从PHP收到的唯一错误是:WARNING: [pool www] child 25 exited on signal 11 (SIGSEGV) after 9.807317 seconds from start
。
当我将库的初始化(使用FFI::cdef()
放在一个小的PHP脚本中时,它可以完美地工作。但是,当我尝试在应用程序深处(一个CakePHP项目)中使用相同的代码时,上面的错误将添加到PHP的日志文件中,并且nginx返回502错误。
可能是怎么回事?我认为此错误与内存有关,但是如何调试呢?我不知道如何使用gdb,而且PHP向我显示的错误根本没有帮助。