我遇到了一个奇怪的问题,涉及安装在我的本地机器(MacOS Ventura 13.5)上的某些版本的 PHP。
某些页面(目前为两个)无法在某些版本的 PHP 中加载。在[电子邮件保护]但没有加载[电子邮件保护],[电子邮件保护]和[电子邮件保护]. 详情:这些页面与任何 php 版本兼容,适用于 Windows 和 Linux[电子邮件保护], 例如。
我无法调试这个错误(或者我不知道该如何做)。
消息仅显示这个:
[ 3074.896856]: Waking up reference: 1001
Thread waiting on reference 1001 woke up
evaluation result: 1001, allowed, skip-cache, 0
Waking up reference: 1002
Thread waiting on reference 1002 woke up
evaluation result: 1002, allowed, skip-cache, 0
Waking up reference: 1003
Thread waiting on reference 1003 woke up
evaluation result: 1003, allowed, skip-cache, 0
php-fpm[10627] Corpse allowed 1 of 5
Apache 日志或者php-fpm 日志给我看看这样的东西:
WARNING: [pool www] child 10627 exited on signal 11 (SIGSEGV) after 632.773071 seconds from start
更多信息:
- 没有 php-fpm:同样的问题。
- 尝试更改 php-fpm.conf 中的某些选项,但没有成功。
- 我认为这可能与某些 php 扩展编译得不太好有关?
答案1
听起来 PP 在这些页面上崩溃了。要解决这个问题,您需要启用核心转储,使用调试器分析转储以确定原因,重写 PHP 或扩展的相关部分,重新编译并重新部署。这对大多数人来说不太实用。
显然,这些页面与任何版本的 PHP 都不兼容。
一些 php 扩展编译得不太好
不,这很可能是代码中的某个错误。重新启动 PHP-FPM 时,任何依赖性问题都会在错误日志中标记出来。
但是,您似乎有一个可重现的测试用例,因此使用详细的日志记录来隔离崩溃的位置应该很简单。