MacOS 上通过 PHP(PHP-FPM)的特定页面出现 503 服务不可用或响应为空

MacOS 上通过 PHP(PHP-FPM)的特定页面出现 503 服务不可用或响应为空

我遇到了一个奇怪的问题,涉及安装在我的本地机器(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 时,任何依赖性问题都会在错误日志中标记出来。

但是,您似乎有一个可重现的测试用例,因此使用详细的日志记录来隔离崩溃的位置应该很简单。

相关内容