首页 > 解决方案 > PHP中的“i360:全局初始化错误”是什么意思?

问题描述

我写的一个多年来一直运行良好的PHP软件突然抛出这个错误:i360:全局初始化错误

回调函数抛出此错误register_shutdown_function('my_shutdown');

回调函数就是这样的:

function my_shutdown ()
{
    chdir(getcwd());

    $e = error_get_last();
    if ($e)
        trigger_error($e['message'].' on '.$e['file'].' ('.$e['line'].')', E_USER_ERROR);
}

抛出的完整错误消息trigger_error是:

i360: Error in global initialization 1 on Unknown (0).

它没有提供太多线索。有什么想法可能导致它吗?

更新 1: 如果我注释掉整个my_shutdown()函数,脚本可以正常工作,但我仍然很想知道为什么这个错误发生在经过多年工作正常之后的今天。

更新 2: 暂定信息:这似乎与 Imunify360 有关,这是一种用于 Web 服务器的安全软件(我的主机使用它,我不知道或无法控制)。调查正在进行中。

标签: phperror-handlingwebserver

解决方案


此问题是由 Imunify360 引起的,因为最近更新了一项名为“主动防御”的功能:

https://www.imunify360.com/blog/meet-imunify360-with-proactive-defense-the-sophisticated-protection-against-any-kind-of-malware-all-in-one-nice-package

要解决此问题,您需要让主机禁用所有 PHP 版本的扩展:

sed -i "s/extension=i360.so/;extension=i360.so/g" /opt/alt/php*/etc/php.ini

这应该可以暂时解决问题。


推荐阅读