安装必须从原始 IP 地址完成,抱歉 - Moodle



>我正在尝试在 AWS ec2 上安装 moodle,并且数据库在 ec2 实例上是本地的,现在我卡在错误"安装必须从原始 IP 地址完成,抱歉。我已经在网络上尝试了所有可能的解决方案,但没有任何效果。

只需注释掉这 3 行并重新加载:

if ($adminuser->lastip !== getremoteaddr()) {
print_error('installhijacked', 'admin');
}

https://github.com/moodle/moodle/blob/master/admin/index.php#L753-L755

恕我直言,注释掉核心 Moodle 代码不是一个好主意,尤其是当有一个简单而安全的工作来解决这个问题时。

当涉及到AWS EC2时,注释掉代码可能会让你在安装过程中超过这一点,但是,Moodlegetremoteaddr((函数(在Moodle中随处使用(将继续在日志等内容中报告不正确的IP地址,甚至可能影响您网站的安全性。

更好的方法是简单地将以下行添加到您的 Moodle 主配置中.php该配置位于 webroot 中。它应该放在$CFG = new stdClass((;require_once(__DIR__ 之间的任何位置。'/lib/setup.php'(;线:

$CFG->getremoteaddrconf = 0;

这需要随时添加,直到您收到错误消息。

虽然我自己没有尝试过,但您也可以将以下行添加到名为/local/defaults.php的文件中(如果尚不存在,请创建(:

$defaults['moodle']['getremoteaddrconf'] = 0; // New default for $CFG->getremoteaddrconf.

有关默认值.php的详细信息,请参阅 https://docs.moodle.org/dev/Local_plugins#Customised_site_defaults

默认值.php文件可用于在新安装期间设置默认设置(如果将其包含在 Moodle 分支中(。

希望这些信息对您有所帮助。

此致敬意

迈克尔·米莱特

最新更新