加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 安装moodle时出错.数据库位置不安全,父目录(/ var)不可写

发布时间:2020-12-13 17:45:41 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试安装moodle,但是当我指定moodle数据文件夹的路径时,我在这个过程中遇到了错误.基本上他们希望它在一个无法从网上访问的地方. 我已经尝试将它放在/ var / moodledata中,这给了我一个错误说法 父目录(/ var)不可写.安装程序无法创建数据目录(/ var /
我正在尝试安装moodle,但是当我指定moodle数据文件夹的路径时,我在这个过程中遇到了错误.基本上他们希望它在一个无法从网上访问的地方.

我已经尝试将它放在/ var / moodledata中,这给了我一个错误说法
父目录(/ var)不可写.安装程序无法创建数据目录(/ var / moodledata).
在/ var / www / moodledata,这给我一个错误,说Dataroot位置不安全

我尝试给/ var / www /文件夹提供sudo(权限),并尝试通过注释以下行来破解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';
}*/

/* 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',$a));
    }
}*/

但是,我没有取得任何成功.任何关于我如何能够过来的想法将不胜感激!

解决方法

您可以自己创建目录.

我假设您使用的是Ubuntu或Debian.从step-by-step guide到Ubuntu安装Moodle:

sudo mkdir /var/moodledata
sudo chown -R www-data:www-data /var/moodledata

其中www-data是您的网络服务器使用的用户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读