0

我遇到了这样的问题:当我运行使用 pthreads 扩展的脚本时,PHP 因以下错误而崩溃:

[notice] child pid 44688 exit signal Segmentation fault (11)
[notice] child pid 44689 exit signal Segmentation fault (11)

我已经安装了 apache22-worker-mpm 端口,php5.4.16 和 pthreads 0.44

还有命令

ps -U www

提供这样的结果:

PID   TT  STAT     TIME  COMMAND
44687 ??  TX    0:00:00  /usr/local/sbin/httpd -k restart
44688 ??  S     0:00:00  /usr/local/sbin/httpd -k restart
44689 ??  Z     0:00:00  <defunct>
44690 ??  S     0:00:00  /usr/local/sbin/httpd -k restart

重新启动 apache - 什么都不做。

我能做些什么来解决这个问题?

谢谢!

PS:在我的 Windows 机器上 - 一切正常,所以问题不在 php 代码中。

4

1 回答 1

0

调查崩溃的第一步是从核心转储中获取堆栈。

获取 Apache 的 core-dump 可能很棘手——因为它们通常被默认禁用。但这是可以做到的。

现在,它在 Windows 上工作的事实实际上并不能证明它不是 php 代码——无论问题是什么,它都可能是由线程之间的“恰到好处”的竞赛触发的。操作系统、CPU 数量和其他因素都会影响比赛的结果......

最后,您确定您使用的是 PHP 本身的线程安全 (zts) 版本吗?

于 2013-07-22T18:30:10.670 回答