Mahara与moodle集成构建社交型学习网站
1.项目介绍 ..................................................................................................................................... 1
1.1.Mahara介绍 .................................................................................................................... 1 1.2.Moodle介绍 .................................................................................................................... 2 1.3.Mahara与moodle集成................................................................................................... 2 2.服务器环境安装 ......................................................................................................................... 2
2.1.基本环境需求 .................................................................................................................. 2 2.2.组件支持 .......................................................................................................................... 2 2.3.推荐环境和本文所使用的实际环境。 .......................................................................... 3 2.4.安装步骤 .......................................................................................................................... 3 3.网站源码安装 ............................................................................................................................. 3
3.1.mahara的安装 ................................................................................................................. 3 3.2.moodle安装 ..................................................................................................................... 3
3.3.配置mahara和moodle的单点登录 ......................................................................... 4 3.3.1.解决有些情况下mahara的networking不能打开的问题 ................................. 4 3.3.2配置networking(网络) ....................................................................................... 7 3.3.3配置moodle的网络(networking) ...................................................................... 8 3.3.4配置mahara的机构 ................................................................................................ 8 3.3.5.配置moodle的单点登录 ................................................................................... 10 3.3.6.实现从moodle到mahara的漫游 ........................................................................ 12 3.3.7实现从mahara到moodle的漫游。 .................................................................... 14
4后续工作...................................................................................................................................... 16
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.apache组件 (1)SSL模块 (2)php模块 (3)mysql模块
2.php扩展 (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目录下的config-dist.php文件为config.php。并修改其中的配置,指定mysql用户名,密码,数据库名,其余的不用改。
5通过浏览器访问你的mahara目录例如http://localhost/mahara/。 将会出现一个协议页面,确定,下一步。
6如果出现提示缺curl,修改php.ini文件php_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.cnf的配置文件,而openssl的
openssl_pkey_new,openssl_csr_new,openssl_csr_sign,openssl_pkey_export几个函数都需要该文件,从而导致networking功能无法打开。其实xampp的apache的环境变量里面有那个文件的位置,但php就是找不到,设置windows环境变量能方法更是毫无效果。这种事情在linux主机上应该不会出现。补救的办法是给那几个函数增加一个config参数,指明openssl.cnf的路径。
以下是我修改的OpenSslRepo类的一个私有函数,在mahara的mahara\\api\\xmlrpc\\lib.php里面,红色加粗是我修改的部分。
private function generate_keypair() {
$host = get_hostname_from_uri(get_config('wwwroot'));
//此处省略若干行 );
// ensure we remove trailing slashes
$dn[\
$opensslconf = getenv(OPENSSL_CONF);//获取Apache环境变量里德openssl.cnf路径,如
//果你装的不是xampp,可以考虑把getenv(OPENSSL_CONF)改成绝对路径如 //E:\\\\apache\\\\bin\\\\openssl.cnf $config = array(\ 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,\))) {
// 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'] ,\);
openssl_pkey_free($new_key); unset($new_key); // Free up the resource
// Calculate fingerprints $this->calculate_fingerprints();