你好亲爱的朋友们,我有一个问题Moodle 3.3+的问题 Moodle无法创建数据目录" moodledata"在public_html之外......
像往常一样,默认情况下安装moodle时会在public_html之外创建数据目录..我联系了我的主机以解决该问题..他们说出于安全原因他们不会让我创建另外的moodledata目录的public_html ...
所以我决定更改数据目录位置(public_html / moodledata /),但moodle安装说" Dataroot位置不安全" ...然后我做了chomd那个目录" 770& #34;我还将.htaccess文件放在:order deny,allow
deny from all
我得到了相同的结果:" Dataroot位置不安全"
现在我需要禁用moodle dataroot安装安全检查..
我做了一些改动,但收到了错误...
这是代码:
//first time here? find out suitable dataroot
if(is_null($ CFG-> dataroot)){ $ CFG-> dataroot = DIR 。' /../ moodledata';
$i = 0; //safety check - dirname might return some unexpected results
while(is_dataroot_insecure()) {
$parrent = dirname($CFG->dataroot);
$i++;
if ($parrent == '/' or $parrent == '.' or preg_match('/^[a-z]:\\\?$/i', $parrent) or ($i > 100)) {
$CFG->dataroot = ''; //can not find secure location for dataroot
break;
}
$CFG->dataroot = dirname($parrent).DIRECTORY_SEPARATOR.'moodledata';
}
$config->dataroot = $CFG->dataroot;
$config->stage = INSTALL_WELCOME;
}
如何正确禁用它? (当然,我想以自己的风险来做,我是......)
谢谢大家先进, 祝福!
答案 0 :(得分:2)
强制检查通过的最简单方法是打开lib / adminlib.php,找到函数is_dataroot_insecure()并在函数开头添加以下内容:
function is_dataroot_insecure($fetchtest=false) {
return false; // CORE MODIFICATION - disable checks
... the original function code appears here ...
也就是说,从安全角度来看,这是一个非常糟糕的主意 - 它可能允许互联网上的任何人浏览Moodle网站中的文件。
我会强烈建议你找一个更好的托管服务提供商,因为这个不适合托管Moodle网站。如果您只有少量用户,则免费的Moodle Cloud帐户可能是合适的解决方案。否则,您可以考虑使用Moodle Partner支付托管费用。
答案 1 :(得分:0)