Moodle经验总结

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

2019-03-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.

?>

上一篇下一篇

猜你喜欢

热点阅读