admin 管理员组

文章数量: 1087139


2024年4月23日发(作者:java版下载官网)

Mahara与moodle集成构建社交型学习网站

1.项目介绍 ................................................................................................................................................................................ 1

1.1.Mahara介绍 ............................................................................................................................................................... 1

1.2.Moodle介绍 ............................................................................................................................................................... 2

1.3.Mahara与moodle集成.............................................................................................................................................. 3

2.服务器环境安装 .................................................................................................................................................................... 3

2.1.基本环境需求 ............................................................................................................................................................. 3

2.2.组件支持 ..................................................................................................................................................................... 3

2.3.推荐环境和本文所使用的实际环境。 ..................................................................................................................... 4

2.4.安装步骤 ..................................................................................................................................................................... 4

3.网站源码安装 ........................................................................................................................................................................ 5

3.1.mahara的安装 ............................................................................................................................................................ 5

3.2.moodle安装 ................................................................................................................................................................ 6

3.3.配置mahara和moodle的单点登录 .................................................................................................................... 6

3.3.1.解决有些情况下mahara的networking不能打开的问题 ............................................................................ 6

3.3.2配置networking(网络) ................................................................................................................................ 11

3.3.3配置moodle的网络(networking) ............................................................................................................... 11

3.3.4配置mahara的机构 ......................................................................................................................................... 12

3.3.5.配置moodle的单点登录 .............................................................................................................................. 15

3.3.6.实现从moodle到mahara的漫游 ................................................................................................................... 18

3.3.7实现从mahara到moodle的漫游。 ............................................................................................................... 20

4后续工作................................................................................................................................................................................. 23

1.项目介绍

1.1.Mahara介绍

Mahara 是一个开放源码的电子档案系统(open source e-portfolio system),它包

含了电子档案(electronic portfolio),博客(webblog),社会网络系统(social networking

system),把人联系起来,并创建在线的学习社区(online learner communities)。它提供

了个人自我学习及成长发展的工具及环境,您可以一门课程,建立一个博客,在这个博客

里, 您可以记录您学习此课程的心得及历程,此博客您可以分享给教师或同学, 让他们了解

您学习此课程的状况及进度。教师也可以在学期未根据同学的课程博客内容来评定同学的

学习成果。

Mahara与其它e-portfolio软件最大的不同,在于使用者可以决定历程档案的大纲和

内容。这些内容会统整在一个类似网页的页面,在Mahara中,我们称之为视图。使用者

可以依据不同的内容、目的以及观看的对象,建立多个视图。

您可以上传任何与学习相关的档案(如报告, 作业, 心得或任何学习资源)。这些档案除

了您个人专用外, 您也可以透过建立作品集方式分享给您的同学或朋友。

1.2.Moodle介绍

Moodle是澳大利亚教师 Martin Dougiamas 基于建构主义教育理论而开发的课程

管理系统, 是一个免费的开放源代码的软件, 目前在各国已广泛应用。 Moodle 这个

词是 Modular Object-Oriented Dynamic Learning Environment ,即模块化面向对象

的动态学习环境的缩写。是一个用来建设基于 Internet 的课程和网站的软件包。 Moodle

平台依据社会建构主义的教学思想,即教育者(老师)和学习者(学生)都是平等的主体,

在教学活动中,他们相互协作,并根据自己已有的经验共同建构知识。

Moodle 平台界面简单、精巧。使用者可以根据需要随时调整界面,增减内容。课程

列表显示了服务器上每门课程的描述,包括是否允许访客使用,访问者可以对课程进行分

类和搜索,按自己的需要学习课程。

Moodle 平台还具有兼容和易用性。可以几乎在任何支持 PHP 的平台上安装,安装

过程简单。只需要一个数据库(并且可以共享)。它具有全面的数据库抽象层,几乎支持所

有的主流数据库(除了初始表定义)。利用 Moodle ,现今主要的媒体文件都可以进行传

送,这使可以利用的资源极大丰富。在对媒体资源进行编辑时,利用的是用所见即所得的

编辑器,这使得使用者无需经过专业培训,就能掌握 Moodle 的基本操作与编辑。

Moodle 注重全面的安全性,所有的表单都被检查,数据都被校验, cookie 是被加密的。

用户注册时,通过电子邮件进行首次登陆,且同一个邮件地址不能在同一门课程中进行重

复注册,所有这些,都使得 Moodle 的安全性得到了加强。目前,Moodle 项目仍然在

不断的开发与完善中。

1.3.Mahara与moodle集成

Mahara与moodle结合能发挥两者的优势,构建一个社交型的学习社区。实现整合

的方法是利用单点登录来实现用户的共享。

2.服务器环境安装

2.1.基本环境需求

因为mahara和moodle都是用php写成的系统,所以要求支持php的服务器环境,

数据库使用mysql或者postgres皆可。服务器可以是apache或者IIS,可以运行在

windows下或者linux下。

2.2.组件支持

因为mahara和moodle需要用到一些特性,需要一些组件的支持。

组件

(1)SSL模块

(2)php模块

(3)mysql模块

扩展

(1)gd库

(2)libxml

(3)curl

(4)mysql

(5)openssl

以上说明可能还不够全面。

2.3.推荐环境和本文所使用的实际环境。

推荐使用经典的linux+apache+php+mysql平台。本文所使用的环境为Windows

XP sp2 32位系统+Xampp集成安装包。

2.4.安装步骤

Xampp的安装基本使用默认配置。

3.网站源码安装

3.1.mahara的安装

1从网上下载最新的mahara源码包,zip格式(用于windows)。

2解压源码包,把文件夹里面的htdocs文件夹改名mahara或者你想要的名字,并复

制到xampp的htdocs文件夹中。作为网站根目录的一个子目录

3.在mysql里面见一个新数据库,字符集选择utf-8。

4.复制mahara目录下的文件为。并修改其中的配置,

指定mysql用户名,密码,数据库名,其余的不用改。

5通过浏览器访问你的mahara目录例如localhost/mahara/。

将会出现一个协议页面,确定,下一步。

6如果出现提示缺curl,修改文件php_扩展前面的;去掉,并重启

apache。

7根据提示按下一步,就可完成安装操作。最后一步会提示并创建管理员账户

8管理员登入系统后就可以进行一系列操作

9汉化mahara,可以到官方网站下载语言包,(目前只有繁体中文版),并直接复制

到mahara的目录里,语言包里的文件夹要与mahara的文件夹对应,复制时,会提示是

否覆盖,点是即可。然后站点配置的语言选项里就增加了中文一项,选择并更新,系统界

面就变成繁体中文。

3.2.moodle安装

1.从官方网站下载moodle的标准包。

2.解压后把主体内容复制到服务器目录下。

3通过浏览器访问moodle目录,根据提示安装即可。

4安装过程中有详细的提示,如创建配置文件,下载语言包等,根据实际情况填写。

因为moodle的数据库较复杂,故时间较长。

3.3.配置mahara和moodle的单点登录

3.3.1.解决有些情况下mahara的networking不能打开的问题

在windows系统xampp集成环境下(其他环境也可能有类似情况),有时候,php

无法找到的配置文件,而openssl的

openssl_pkey_new,openssl_csr_new,openssl_csr_sign,openssl_pkey_export几个函

数都需要该文件,从而导致networking功能无法打开。其实xampp的apache的环境变

量里面有那个文件的位置,但php就是找不到,设置windows环境变量能方法更是毫无

效果。这种事情在linux主机上应该不会出现。补救的办法是给那几个函数增加一个config

参数,指明的路径。

以下是我修改的OpenSslRepo类的一个私有函数,在mahara的

里面,红色加粗是我修改的部分。

private function generate_keypair() {

$host = get_hostname_from_uri(get_config('wwwroot'));

//此处省略若干行

);

// ensure we remove trailing slashes

$dn["commonName"] = preg_replace(':/$:', '', $dn["commonName"]);

$opensslconf = getenv(OPENSSL_CONF);//获取Apache环境变量里德

路径,如

//果你装的不是xampp,可以考虑把getenv(OPENSSL_CONF)改成绝对路径如

//E:

$config = array("config" => $opensslconf);

if (!$new_key = openssl_pkey_new($config)) {

throw new

ConfigException(get_string('errorcouldnotgeneratenewsslkey', 'auth'));

}

if (!$csr_rsc = openssl_csr_new($dn, $new_key,

array('private_key_bits',2048,"config" => $opensslconf))) {

// This behaviour has been observed once before, on an ubuntu hardy

box.

// The php5-openssl package was installed but somehow openssl

// wasn't.

throw new

ConfigException(get_string('errorcouldnotgeneratenewsslkey', 'auth'));

}

$selfSignedCert = openssl_csr_sign($csr_rsc, null, $new_key, 365 ,$config);

unset($csr_rsc); // Free up the resource

// We export our self-signed certificate to a string.

openssl_x509_export($selfSignedCert, $this->keypair['certificate']);

openssl_x509_free($selfSignedCert);

// Export your public/private key pair as a PEM encoded string. You

// can protect it with an optional passphrase if you wish.

$export = openssl_pkey_export($new_key,

$this->keypair['keypair_PEM'] ,"mypassword",$config);

openssl_pkey_free($new_key);

unset($new_key); // Free up the resource

// Calculate fingerprints

$this->calculate_fingerprints();

return $this;

}

注意对于openssl_pkey_export函数,因为加config的缘故第三个参数即密码也不

得不加上(不能省略中间一个默认参数),这样就给别的地方的解密带来麻烦,故还要改一

个地方。同一个文件中OpenSslRepo类的构造函数中,红色部分是我加的密码,原来该

密码为默认省略。

private function __construct() {

if (empty($this->keypair)) {

$this->get_keypair();

$this->calculate_fingerprints();

$this->keypair['privatekey'] =

openssl_pkey_get_private($this->keypair['keypair_PEM'],"mypassword");

$this->keypair['publickey'] =

openssl_pkey_get_public($this->keypair['certificate']);

}

return $this;

}

改了以上部分,mahara的networking能够正常使用了。不过moodle里面也有一

个networking功能,会出现同样的问题,不过那个容易解决一些,因为moodle考虑到

了这个问题,有关于的配置考虑。只需要在moodle的配置文件里,添上一

条$CFG->opensslcnf= 'E:';就足以解决问题。

3.3.2配置networking(网络)

3.3.3配置moodle的网络(networking)

3.3.4配置mahara的机构

增加一个新机构

填入相应信息,更新后会出现下图。

在默认插件里选在xmlrpc,点增加,会出现一个新页面如下

其中网站目录必须和实际moodle的目录一致。填完后提交。如果成功说明成功与

moodle进行了通信,否则检查moodle的网络(networking)功能是否正常打开。

3.3.5.配置moodle的单点登录

添加一个新的host,如果通信成功则出现下面页面,显示mahara的公共密钥,右面

出现一个服务选项卡,进一步打开服务选项卡

选中图中所示选项,保存即可。

3.3.6.实现从moodle到mahara的漫游

在角色管理里面点击授权用户右面的edit,打开用户权限配置界面如下,设置云允许

漫游到远程站点。

在首页添加新模块(网络服务器),就可以添加一个到选择mahara的链接。

点击该链接就可以漫游到mahara上,并且拥有mahara用户一样的权限。

3.3.7实现从mahara到moodle的漫游。

首先要把moodle的host的服务配置改成和刚才的情形相反。如图

然后,以admin登录mahara,到配置机构的页面,打开刚才定义的认证插件,如下

把父权限改成内部,吧sso方向改成we sso out,并提交。回到首页。首页出现一个

网络服务器(台湾叫做网络伺服器),内含一个,指向moodle的链接。点击链接就可以

漫游到moodle,并可以享有moodle用户一样的权限,可以选课等。

Mahara用户从mahara漫游到moodle,还可以在漫游回来。但是原来的moodle

用户却不能再漫游到mahara了,这个SSO只能选择一种方向。所以系统集成以后,应以

mahara为主,用户在mahara上注册,同时可以使用moodle的功能,在moodle上注

册的用户不能使用mahara的功能。

4后续工作

单点登录完成以后,还要进行一些后续工作,比如在moodle对远程用户的权限进行

详细的配置,在moodle上建立课程,并设置权限。丰富mahara上的内容和设置等。


本文标签: 学习 配置 环境 课程 用户