这通常是由于 Apache 与某些组件(如 FastCGI)之间的问题导致的。要解决这个问题,可以尝试以下几个步骤:
检查 Apache 的 error.log 中是否有任何错误消息。
更改 Apache 中各个模块的顺序,以查找可能导致问题的模块。可以通过编辑 Apache 的配置文件(通常是 httpd.conf 或 apache2.conf)来更改它们的顺序。例如:
LoadModule mod_fastcgi.so
LoadModule mod_php.so
可以尝试将它们的顺序反转,然后重启 Apache。
#LoadModule mod_fastcgi.so
例如,以下命令可以运行 Apache 并记录系统调用:
strace -f -o /tmp/httpd.strace /etc/init.d/apache2 start
然后,可以使用 grep FUTEX /tmp/httpd.strace 命令来查找 FUTEX 相关的系统调用。
这些步骤应该可帮助您解决 Apache 2.4 (52) 调试,多个 apache2 -k start 卡在了 99% 左右的 CPU 上。strace