美文网首页Moodle经验总结
moodle支持多网址内外网访问解决办法

moodle支持多网址内外网访问解决办法

作者: 池中雨景 | 来源:发表于2019-03-05 21:05 被阅读2次

    背景:

    很多学校需要将moodle平台部署在内网上,并且映射在外网或者服务器接内外网两个网线,用这个办法即可解决问题。

    解决方案:

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

    如果是下级目录,则修改为:

    $CFG->wwwroot= 'http://'.$_SERVER['HTTP_HOST'].'/moodle';

    因为$_SERVER['HTTP_HOST']就是来源网址(包含端口,80会省略)

    希望大家成功。

    参考网址:

    http://blog.sina.com.cn/s/blog_71e7aadc0101of56.html

    默认情况下,moodle仅能绑定一个域名。但是由于学校网络分内网和外网,总希望如果是外网访问的,用外网的域名,用内网访问的,就转到内网的ip。这样访问的速度会更快一些,也减低对防火墙的压力。尤其是当外网ip不够用,用外网ip的非80端口映射内网ip的80端口时,让moodle支持多个域名是很有必要的。

    如我校的这个案例:内网ip10.1.2.60,用80端口;外网ip不够用,只好将218.75.25.143的8080端口给映射过来。我试着自己修改根目录下的config.php文件。虽然我对php不是很熟悉,但是这几句简单的代码还是能轻易写出来的。核心的代码如下:

    if($_SERVER['HTTP_HOST'] == "10.1.2.60"){

    $CFG->wwwroot= 'http://10.1.2.60';}

    else{

    $CFG->wwwroot= 'http://218.75.25.143:8080';}

    附:config.php文件。

    unset($CFG);

    $CFG->dbtype= 'mysql';

    $CFG->dbhost= 'localhost';

    $CFG->dbname= 'moodle';

    $CFG->dbuser= 'root';

    $CFG->dbpass= 'wzms_mysql';

    $CFG->dbpersist =false;

    $CFG->prefix= 'mdl_';

    if($_SERVER['HTTP_HOST']

    == "10.1.2.60"){

    $CFG->wwwroot= 'http://10.1.2.60';}

    else{

    $CFG->wwwroot= 'http://218.75.25.143:8080';}

    $CFG->dirroot= '/var/www/html';

    $CFG->dataroot= '/var/www/moodledata';

    $CFG->admin= 'admin';

    $CFG->directorypermissions = 00777;// try 02777 on a server in Safe Mode

    $CFG->unicodecleanfilename = true;//中文支持

    require_once("$CFG->dirroot/lib/setup.php");

    // MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,

    // RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS ON THE NEXT LINE.

    ?>

    相关文章

      网友评论

        本文标题:moodle支持多网址内外网访问解决办法

        本文链接:https://www.haomeiwen.com/subject/pzlauqtx.html