【发布时间】:2020-08-15 03:30:49
【问题描述】:
我正在尝试在 AWS ec2 上安装 moodle,并且数据库在 ec2 实例上是本地的,现在我遇到错误“必须从原始 IP 地址完成安装,抱歉。”我在网上尝试了所有可能的解决方案,但对我没有任何效果。
【问题讨论】:
标签: database amazon-ec2 installation moodle
我正在尝试在 AWS ec2 上安装 moodle,并且数据库在 ec2 实例上是本地的,现在我遇到错误“必须从原始 IP 地址完成安装,抱歉。”我在网上尝试了所有可能的解决方案,但对我没有任何效果。
【问题讨论】:
标签: database amazon-ec2 installation moodle
只需注释掉这 3 行并重新加载:
if ($adminuser->lastip !== getremoteaddr()) {
print_error('installhijacked', 'admin');
}
https://github.com/moodle/moodle/blob/master/admin/index.php#L753-L755
【讨论】:
恕我直言,注释掉核心 Moodle 代码并不是一个好主意,尤其是在可以轻松安全地解决问题时。
对于 AWS EC2,注释掉代码可能会让您在安装过程中越过这一点,但是,Moodle getremoteaddr() 函数在 Moodle 中随处使用,将继续报告日志等内容中的 IP 地址不正确,甚至可能影响您网站的安全性。
更好的方法是简单地将以下行添加到 webroot 中的 Moodle 主 config.php。它应该放在 $CFG = new stdClass(); 和 require_once(__DIR__ . '/lib/setup.php'); 行之间的任何位置:
$CFG->getremoteaddrconf = 0;
这需要在您收到错误消息之前随时添加。
虽然我自己没有尝试过,但您也可以在名为 /local/defaults.php 的文件中添加以下行(如果不存在则创建): p>
$defaults['moodle']['getremoteaddrconf'] = 0; // New default for $CFG->getremoteaddrconf.
有关 defaults.php 的更多信息,请参阅https://docs.moodle.org/dev/Local_plugins#Customised_site_defaults
如果您将这个 defaults.php 文件包含在您的 Moodle fork 中,该文件可用于在新安装期间设置默认设置。
希望这些信息对您有所帮助。
最好的问候,
迈克尔·米莱特
【讨论】: