我昨晚将我的centos机器上的PHP升级到5.3.19,现在应用程序的某些部分(特别是在提交运行大量查询的表单时)我在/ var / log /中得到以下错误的httpd / error_log中
child pid xxxx exit signal Segmentation fault (11)
在Chrome中,它显示以下内容
有没有人知道如何解决这个问题,甚至可能知道如何使用YUM恢复到以前版本的PHP。
更新:此处描述了问题,但我不确定解决方案。我们加载一个相当大的SQL文件,并逐步运行它内部的每个查询,如果我没有弄错的话,那就是“递归”部分:http://bitdepth.thomasrutter.com/2010/05/16/php-recursion-causes-segmentation-fault/
答案 0 :(得分:2)
我不认为递归是一个问题。如果是这样,您的脚本很可能在更新之前引起了同样的问题。
其中一个php模块可能不是最新的。您是否在更新之前使用pear手动编译或安装模块?如果是这样,那些模块必须针对新的php版本重新编译。
要找出可以手动编译的模块,请将/etc/php.d
文件夹中的ini文件与
yum list installed | grep "php"
这列出了所有定期安装的php相关软件包,这些软件包在更新后不会导致问题
要找出使用pecl安装的软件包,您也可以运行:
# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
memcached 2.1.0 stable
ssh2 0.11.3 beta
如果您获得这样的列表,请使用
更新这些模块 pecl upgrade-all
如果您的模块处于活动状态且未安装pecl且未安装yum,则这些模块是手动编译的,需要重新编译
在这种情况下,您可以按照批准的答案的步骤进行操作 https://serverfault.com/questions/261268/how-to-build-missing-php-5-3-extensions-on-centos-5-6