Ant*_*ich 3 linux centos php crash
我有一台装有 Apache 和 PHP 的 CentOS 6 服务器。我运行了一些应用程序并且可以不断地重现这个崩溃。经过一些顺序操作后,应用程序停止运行,我发现的唯一跟踪是 error_log 中的以下消息:
[Tue Jan 05 16:39:45 2016] [notice] child pid 1636 exit signal Illegal instruction (4)
Run Code Online (Sandbox Code Playgroud)
我在不同的主机上安装了相同的应用程序并且它可以工作。出于这个原因,我认为问题出在操作系统或 Apache 配置中。杀死这个进程的原因可能是什么?
更新 1:两台主机都将 memory_limit 设置为 128M
更新2:禁用SElinux并不能解决问题
更新 3:从pcre-7.8到更新pcre-8.13没有帮助
几天前,我突然开始在一个运行 PHP 5.3.3 的 Wordpress 4 站点上遇到同样的错误,该站点在 Rackspace 的虚拟服务器上托管了几年。它现在运行 CentOS 6.8 并且在许多操作系统和 Wordpress 更新中幸存下来——我想我们是从 CentOS 5.x 开始的!
无论如何,我首先尝试升级 PHP(由 CentOS 6.x 保留在 5.3.3),但我使用了 3rd-party “remi” yum repo:
Remi 的 RPM 存储库 - 博客:http : //blog.famillecollet.com/pages/Config-en
让我升级到 PHP 5.6.22
虽然这并没有解决问题,但它改进了错误消息。现在 apache 日志是静默的(!)但是 /var/log/messages 每次我点击 Wordpress 管理页面时都会说这个:
kernel: php[23199] trap invalid opcode
ip:7ffa1074ad60 sp:7fff8bff6268 error:0
in libfreeblpriv3.so[7ffa106f8000+72000]
Run Code Online (Sandbox Code Playgroud)
并在谷歌上搜索了大部分有趣的词(不是数字,而是引用“libfreeblpriv3.so”,因为其他二进制文件有很多类似的点击)导致了这个 CentOS 错误报告和讨论:
010930:curl -> centos 6.8 更新后的非法指令 - CentOS 错误追踪器:http ://bugs.centos.org/view.php?id=10930#c26717
其中确定了罪魁祸首:curl!
这个问题的突然发生是由于最近的 curl 库 yum-update(显然)与旧的OpenStack 管理程序(例如,我们老化的 Rackspace 实例,需要在几年前更新到它们较新的虚拟机“风格”)和每当 Wordpress 尝试使用 curl 下载某些内容时,它都会使 php 崩溃并将 apache 进程随之删除。
一条评论(在线程中很远)确定了修复,这对我有用:
# How to downgrade curl:
# (updated with corrected links after those went all 404 on me)
wget http://vault.centos.org/6.7/os/x86_64/Packages/curl-7.19.7-46.el6.x86_64.rpm
wget http://vault.centos.org/6.7/os/x86_64/Packages/libcurl-7.19.7-46.el6.x86_64.rpm
rpm -Uvh --oldpackage curl-7.19.7-46.el6.x86_64.rpm
rpm -Uvh --oldpackage libcurl-7.19.7-46.el6.x86_64.rpm
yum install -y yum-plugin-versionlock
yum versionlock curl
yum versionlock libcurl
service httpd restart
Run Code Online (Sandbox Code Playgroud)
在此之后,我重新启动了 apache,一切又好了:-)
| 归档时间: |
|
| 查看次数: |
4385 次 |
| 最近记录: |