php - 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 服务器的安全软件(我的主机使用它,我不知道或无法控制)。调查正在进行中。
解决方案
此问题是由 Imunify360 引起的,因为最近更新了一项名为“主动防御”的功能:
要解决此问题,您需要让主机禁用所有 PHP 版本的扩展:
sed -i "s/extension=i360.so/;extension=i360.so/g" /opt/alt/php*/etc/php.ini
这应该可以暂时解决问题。
推荐阅读
- mongodb - 通过karatedsl使用mongodb、redis和rabbit mq的最佳方式?
- macos - Mac 在启动时继续重启
- excel - 单元格更改后,如何使某个范围内的单元格进行硬编码?
- java - javafx fxml方法如何给当前界面添加活动可见事件?
- html - 哪个具有优先级,输入所在的表单标签或输入的表单属性?
- r - 使用 data.table 自定义函数创建自定义 R 包
- php - 使用 PHP 从数据库中填充 Bootstrap 下拉菜单
- c# - 在项目自己的控制台上使用 SetParent,在 winforms 面板中
- java - 我不明白这个错误。(android构建错误科尔多瓦)
- python - 如何在不每次都重新运行函数的情况下重用 Python 类中的返回值?