安装moodle时出错。Dataroot 位置不安全且父目录 (/var) 不可写。

see*_*ker 5 php moodle

我正在尝试安装moodle,但在指定moodle 数据文件夹的路径时遇到错误。基本上,他们希望它位于无法从网络访问的地方。

我试过把它放在/var/moodledata里面给我一个错误说 Parent directory (/var) is not writeable. Data directory (/var/moodledata) cannot be created by the installer. ,在/var/www/moodledata哪给我一个错误说Dataroot location is not secure

我尝试将 sudo(permissions) 赋予/var/www/文件夹,并尝试install.php通过注释掉以下几行来跳过验证

/*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).'/moodledata';
}*/
Run Code Online (Sandbox Code Playgroud)

       /* do {
        if ($CFG->dataroot !== '') {
            $prompt = get_string('clitypevaluedefault', 'admin', $CFG->dataroot);
        } else {
            $prompt = get_string('clitypevalue', 'admin');
        }
        echo $error;
        $CFG->dataroot = cli_input($prompt, $CFG->dataroot);
        if ($CFG->dataroot === '') {
            $error = get_string('cliincorrectvalueretry', 'admin')."\n";
        } else if (is_dataroot_insecure()) {
            $CFG->dataroot = '';
            $error = get_string('pathsunsecuredataroot', 'install')."\n";
        } else {
            if (install_init_dataroot($CFG->dataroot, $CFG->directorypermissions)) {
                $error = '';
            } else {
                $a = (object)array('dataroot' => $CFG->dataroot);
                $error = get_string('pathserrcreatedataroot', 'install', $a)."\n";
        cli_error(get_string('pathsunsecuredataroot', 'install'));
            }
        }

    } while ($error !== '');*/
} /*else {
    if (is_dataroot_insecure()) {
    }
    if (!install_init_dataroot($CFG->dataroot, $CFG->directorypermissions)) {
        $a = (object)array('dataroot' => $CFG->dataroot);
        cli_error(get_string('pathserrcreatedataroot', 'install', $a));
    }
}*/
Run Code Online (Sandbox Code Playgroud)

但是,我还没有取得任何成功。关于我如何克服这一点的任何想法将不胜感激!

fra*_*zon 5

您可以自己创建目录。

我假设您使用的是 Ubuntu 或 Debian。从在 Ubuntu 中安装 Moodle的分步指南

sudo mkdir /var/moodledata
sudo chown -R www-data:www-data /var/moodledata
Run Code Online (Sandbox Code Playgroud)

www-data您的网络服务器使用的用户在哪里。