1

我已经在里面安装了 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 地址,我想将其用作网络服务器以从 Internet 访问它。请建议我如何设置基本 url 以从 Internet 和我的 Intranet 使用它。

4

1 回答 1

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 URL 复制并粘贴到课程内容中。这很容易忘记,但 URLS 仅适用于从同一路由访问的用户。

于 2013-09-17T19:33:26.377 回答