【问题标题】:Analyse Apache2 coredump分析 Apache2 coredump
【发布时间】:2014-11-18 10:21:14
【问题描述】:

在我的 AWS 服务器上,我有很多核心转储: [Tue Nov 18 11:15:12 2014] [notice] child pid 5663 exit signal Bus error (7),/etc/apache2 中可能的核心转储

我试图分析它们,但我没有得到任何信息。为了得到它,我运行: 须藤gdb 附加 pid (gdb) c (等待

我的输出是:

Program received signal SIGBUS, Bus error.
0x00007f4c6a7fe1d2 in lex_scan () from /usr/lib/apache2/modules/libphp5.so
(gdb) bt
#0  0x00007f4c6a7fe1d2 in lex_scan () from /usr/lib/apache2/modules/libphp5.so
#1  0x00007f4c6a8163d0 in ?? () from /usr/lib/apache2/modules/libphp5.so
#2  0x00007f4c6a7f9795 in ?? () from /usr/lib/apache2/modules/libphp5.so
#3  0x00007f4c6a7fda7f in compile_file () from /usr/lib/apache2/modules/libphp5.so
#4  0x00007f4c6a6ba932 in ?? () from /usr/lib/apache2/modules/libphp5.so
#5  0x00007f4c6a7fdc3c in compile_filename () from /usr/lib/apache2/modules/libphp5.so
#6  0x00007f4c6a861bca in ?? () from /usr/lib/apache2/modules/libphp5.so
#7  0x00007f4c6a84f9db in execute () from /usr/lib/apache2/modules/libphp5.so
#8  0x00007f4c6a82af40 in zend_execute_scripts () from /usr/lib/apache2/modules/libphp5.so
#9  0x00007f4c6a7d75b3 in php_execute_script () from /usr/lib/apache2/modules/libphp5.so
#10 0x00007f4c6a8ba44d in ?? () from /usr/lib/apache2/modules/libphp5.so
#11 0x00007f4c6e4ff508 in ap_run_handler ()
#12 0x00007f4c6e4ff97e in ap_invoke_handler ()
#13 0x00007f4c6e50f5b0 in ap_process_request ()
#14 0x00007f4c6e50c3d8 in ?? ()
#15 0x00007f4c6e505fa8 in ap_run_process_connection ()
#16 0x00007f4c6e514210 in ?? ()
#17 0x00007f4c6e51497a in ?? ()
#18 0x00007f4c6e515527 in ap_mpm_run ()
#19 0x00007f4c6e4ea4a4 in main ()

还有完整的回溯:

(gdb)

bt full
#0  0x00007f4c6a7fe1d2 in lex_scan () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#1  0x00007f4c6a8163d0 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#2  0x00007f4c6a7f9795 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#3  0x00007f4c6a7fda7f in compile_file () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#4  0x00007f4c6a6ba932 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#5  0x00007f4c6a7fdc3c in compile_filename () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#6  0x00007f4c6a861bca in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#7  0x00007f4c6a84f9db in execute () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#8  0x00007f4c6a82af40 in zend_execute_scripts () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#9  0x00007f4c6a7d75b3 in php_execute_script () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#10 0x00007f4c6a8ba44d in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#11 0x00007f4c6e4ff508 in ap_run_handler ()
No symbol table info available.
#12 0x00007f4c6e4ff97e in ap_invoke_handler ()
No symbol table info available.
#13 0x00007f4c6e50f5b0 in ap_process_request ()
No symbol table info available.
#14 0x00007f4c6e50c3d8 in ?? ()
No symbol table info available.
#15 0x00007f4c6e505fa8 in ap_run_process_connection ()
No symbol table info available.
#16 0x00007f4c6e514210 in ?? ()
No symbol table info available.
#17 0x00007f4c6e51497a in ?? ()
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#18 0x00007f4c6e515527 in ap_mpm_run ()
No symbol table info available.
#19 0x00007f4c6e4ea4a4 in main ()
No symbol table info available.

如何获得有关此跟踪的详细信息?

【问题讨论】:

  • 如果这是一个普通的 RHEL 或 CentOS 系统,我会按照 access.redhat.com/solutions/9907 的说明安装 php 的 debuginfo 包。不过,我不知道如何为 Amazon 图像设置存储库。

标签: php apache gdb coredump


【解决方案1】:

在 Ubuntu 16 / PHP 7 / apache 2.4 系统上发现的一个原因是证书不匹配:

在 apache 重启后,日志文件 XXX.log 被类似的消息淹没

[core:notice] 子 pid nnnnn 退出信号总线错误 7

由于许多日志消息,该网站实际上无法使用。

搜索设置显示没有启用站点设置为使用 XXX.log,但在 apache2/sites-available 目录中有一个名为“default-tls.conf”的文件(属于包“libapache2-mod-gnutls” ) 将 XXX.log 定义为错误日志文件。

虽然该 conf 文件未启用,未链接到 apache2/sites-enabled,但 XXX.log 已被淹没。

系统长期使用letsencrypt证书,所有启用的站点都设置为使用该证书。但是在 default-tls.conf 中,证书和密钥文件被设置为指向(当前)默认的“snakeoil”文件。 “snakeoil”证书和密钥文件被替换为letsencrypt 证书和密钥文件的链接。

在 apache 重新启动后,不再抛出错误消息,并且网站可以再次访问。

帮助找到原因的原因是在 vhost conf 文件中使用了与标准错误日志文件设置不同的设置。

【讨论】:

    【解决方案2】:

    我试图分析它们,但我没有得到任何信息。

    相反,您确实获得了有关它的信息。正如 Mark Plotnick 所说,要获得更详细的信息,您需要为您的发行版安装 debuginfo 包。

    崩溃看起来与this one 非常相似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 2011-05-18
      • 2022-09-09
      • 1970-01-01
      • 2016-10-03
      相关资源
      最近更新 更多