Moodle中的双基URL

时间:2013-09-17 13:25:08

标签: moodle

我已在其中安装了XAMPP和Moodle 2.5。

另外,我还安装了No-ip客户端将其转换为网络服务器。

现在我的问题是,我想让这台服务器从我的内部网和外部都可以访问。

我的config.php文件的基本网址如下:

$CFG->wwwroot   = 'http://172.16.1.1/exam';
$CFG->dataroot  = 'H:\\xampp\\moodledata';
$CFG->admin     = 'admin';

但不限于本地IP地址,我想用它作为网络服务器从互联网上访问它。请建议我如何设置基本网址,以便从互联网和内部网使用它。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是使用可以从互联网和内部机器访问的域名。

如果失败,Moodle配置文件只是一个PHP文件,所以你可以这样做:

if (access_via_internet()) {
    $CFG->wwwroot = WEBROOT_FOR_INTERNET_ACCESS;
} else if (access_via_intranet()) {
    $CFG->wwwroot = WEBROOT_FOR_INTRANET_ACCESS;
} else {
    throw new Exception("Ye cannae change the laws of physics");
}

function access_via_internet() {
    // Do something to detect access via the internet.
    // Probably parse $_SERVER['HTTP_HOST']
    return (did_we_detect_the_internet() ? true : false);
}

function access_via_intranet() {
    // Do something to detect access via the intranet.
    // Probably just negate the value of access_via_internet()
    return !access_via_internet();
}

另一个选择是依靠用户来找你的服务器地址:

$CFG->wwwroot = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/exam';

如果您允许从不同地址访问,则可能存在一个问题:请勿将Moodle网址复制并粘贴到课程内容中。它很容易忘记,但URLS仅适用于同一路径访问的用户。