开源学习管理系统Moodle搭建指南
一、Moodle是什么?
Moodle是全球使用最广泛的LMS平台之一,凭借其开源免费、功能全面等优势,吸引了全球数亿用户。个人教师、教育机构、各级各类学校,都可以通过Moodle来实现翻转课堂、混合式学习等先进的教学模式,推动传统教学模式的革新与发展。
LMS平台又是什么?
如果把我们常见的MOOC慕课平台,比喻成是一个“课程影院”,那学习管理系统Learning Management System(LMS)则可以理解为“线上学校”。 LMS不止可以看传统慕课视频,更是给教师和学生提供了一个集中式的在线空间,用于发布课程资料、进行学习活动、追踪学习进度、进行评估测试以及进行师生互动等等。
常见的LMS平台有:Moodle、Sakai、Canvas、Chamilo等
二、Moodle搭建方式简介
本文根据搭建场景不同,提供四种不同的搭建方式,请根据自身需求选择阅读:
Windows系统安装:易,傻瓜式安装,无需额外配置,只需一台普通电脑,推荐需要试用体验的用户。
1Panel面板安装:易,可拓展性强,可视化界面部署,运维简单,推荐有搭建一系列网站应用需求的站长。
docker容器安装:中,通用性强,软路由NAS等Linux设备也可以尝试,搭建相对简单,针对喜欢折腾的极客
Linux服务器安装:难,理论上最为稳定,搭建与运维最为繁琐,但针对熟悉Linux系统的用户。
三、开始搭建
1、在Windows系统中搭建
步骤1:下载
首先,到Moodle官网下载安装包:https://download.moodle.org/windows/
步骤2:解压
打开下载到的zip压缩包:
解压到你想要安装Moodle的某个目录(例如系统默认软件安装路径C:\Program Files)
步骤3:运行
双击Start Moodle.exe程序,将会自动部署Moodle应用(如提示拒绝访问,请右击Start Moodle.exe程序,以管理员权限打开。)
至此,Windows版Moodle搭建完毕,在搭建的本机浏览器中输入http://127.0.0.1即可进入Moodle的配置界面。如果有其它电脑要访问,需要在同一个内网中。(例如同个机房中,教师机安装了Moodle,学生机只需要把127.0.0.1改为教师机IP即可访问)
2、在1Panel面板中搭建(推荐)
本搭建方式,本质上与docker搭建方式原理一致,只不过通过1Panel实现了可视化部署,让其易于管理,这里假设您已经搭建好了1Panel框架(官方教程),我们直接进入1Panel的配置面板开始搭建Moodle:
步骤1:配置镜像加速
步骤2:创建存储卷
存储卷可以持久化容器数据,映射容器内数据到存储盘中,方便我们修改备份等,我们总共有三个存储卷要创建,分别是:
mariadb_data:用于存放mariadb数据库文件
moodle_data:用于存放moodle程序
moodledata_data:用于存放moodle用户配置文件
步骤3:创建容器
为了搭建Moodle,我们需要创建两个容器,先是MariaDB数据库容器,后才是Moodle容器,我们只要按步骤,在1Panel的“容器”面板中可视化添加即可
接着,分别使用这个“③创建容器”按钮,创建这两个不同的容器。
图片结果裁切组合,如果图片中有出现的选项,就需要配置,没有提及的选项则保持默认即可
1、创建MariaDB数据库
环境变量如下
ALLOW_EMPTY_PASSWORD=yes
MARIADB_USER=bn_moodle
MARIADB_PASSWORD=bitnami
MARIADB_DATABASE=bitnami_moodle
2、创建Moodle框架
环境变量如下
ALLOW_EMPTY_PASSWORD=yes
MOODLE_DATABASE_USER=bn_moodle
MOODLE_DATABASE_PASSWORD=bitnami
MOODLE_DATABASE_NAME=bitnami_moodle
步骤4:配置反向代理
新建好容器后,容器将会自动运行,我们最后还需要配置一个反向代理,同样通过图形化操作完成
至此,就可通过你自己设置的域名链接,访问属于你自己的Moodle网站了,如发现密码错误,可以参照”管理员账号找回“章节提示找回密码。
3、在docker容器中搭建
本搭建方式由第三方项目Binami提供,详细步骤请移步:Bitnami/Moodle
在介绍docker版本搭建方式前,要知道这个方法是由第三方开源项目BitNami提供的。BitNami致力于提供开源程序的傻瓜式镜像下载,所有的安装包内置了服务器环境,可以一次性安装完毕,Moodle镜像就是其中之一。
步骤1:创建网络
docker network create moodle-network
步骤2:创建MariaDB存储卷,并启动容器
$ docker volume create --name mariadb_data
docker run -d --name mariadb \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MARIADB_USER=bn_moodle \
--env MARIADB_PASSWORD=bitnami \
--env MARIADB_DATABASE=bitnami_moodle \
--network moodle-network \
--volume mariadb_data:/bitnami/mariadb \
bitnami/mariadb:latest
步骤3:为 Moodle™ 创建存储卷,并启动容器
$ docker volume create --name moodle_data
docker run -d --name moodle \
-p 8080:8080 -p 8443:8443 \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MOODLE_DATABASE_USER=bn_moodle \
--env MOODLE_DATABASE_PASSWORD=bitnami \
--env MOODLE_DATABASE_NAME=bitnami_moodle \
--network moodle-network \
--volume moodle_data:/bitnami/moodle \
--volume moodledata_data:/bitnami/moodledata \
bitnami/moodle:latest
此时已经可以通过 http://你的ip地址/
访问您的Moodle了
附上可自定义Moodle部署方式的环境变量
4、在Linux服务器中搭建(官网教程)
本搭建方式由官网提供,详细步骤请移步:安装Moodle
步骤1:获得Moodle源码
有两种方式供选择:
从http://moodle.org/downloads下载你所需的版本;
从Git知识库里下载源码(建议开发人员使用Git下载,而且升级起来也很简单):
git clone -b MOODLE_27_STABLE git://git.moodle.org/moodle.git
上诉命令行语句可以完整复制Moodle知识库,然后切换为2.7的稳定版本。
注意:只有从上诉两种渠道下载的Moodle程序可以保证运作正常且可以进行版本升级或得到支持,其他版本(如,通过控制面板进行的安装, Linux分发库)则不行。
步骤2:创建数据库
根据所选数据库服务器创建一个全新的空的数据库。默认的编码方式必须是UTF8。下面为以MySQL为例介绍如何创建数据库:
CREATE DATABASE moodle DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci;
为数据库创建一组用户名/密码,并结合适宜的权限。还是以MySQL为例:
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
步骤3:创建数据目录
创建空的目录以存储Moodle文件。但是一定不能把它放在与Moodle程序相同的根目录下,还必须使Web服务器用户有对此目录的可写权限。通常情况下,要么赋予此Web服务器的其他用户拥有(owned)此目录的权限,要么把可写权限给任何人。
步骤4:安装Moodle源码
解压、移动并复制Moodle源码后,Web服务器就可以为进行正式托管Moodle(如,以Linux为基础的Debian,需要将Moodle移动到/var/www/moodle)。
检查并确认Web服务器对Moodle源码目录内的任何文件都没有可写权限(常见的因为根目录权限问题而被黑)。
如有必要,通过选定的URL对服务与Moodle站点的Web服务器进行配置。
步骤5:配置Moodle
在Moodle源码目录下找到名为config-dist.php的文件,将其内容复制到名为config.php的新建文件(这里需要先阅读下一步骤——“安装Moodle”)。
用你喜欢的编辑器编辑config.php文件,把站点、目录及数据库设置变更为适宜站点的内容。注意:如果config.php文件不存在,安装Moodle过程中会创建它,无论如何都应保证事后config.php文件权限设置的恰当合理。
步骤6:安装Moodle
在浏览器中输入你的Moodle URL(安装程序会自动进行)或通过命令行来安装(需要PHP内置CLI):
/usr/bin/php /path/to/moodle/admin/cli/install.php
CLI会创建新的cofig.php文件,如果在上一步config.php已经被创建,则CLI将不会运行:
完成安装之后要确保Moodle程序的文件权限(Web服务器用户不可写)是正常的,并确认Moodle数据目录的权限(Web服务器用户可写)也是正常的。
步骤7:设置Cron
需要定期运行Cron job(我们建议Moodle 2.7及以后的版本每分钟运行一次)。典型的Unix Cron输入条目应是如下所示:
* * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/dev/null
参阅Cron获取更多信息。
官方教程到这里就配置完毕,如遇任何问题,查验安装FAQ并浏览论坛中关于安装Moodle的问题。
最后,打开浏览器,输入”http://服务器IP/“即可访问Moodle后端配置界面
四、配置你的Moodle网站
如果你通过Linux或者Windows的方式搭建好Moodle,并成功进入此页面,那么意味着接下来的工作就轻松许多了,只需要简单地个性化配置一下Moodle就可以开始使用了(docker与Halo方式请看第五小节)。
无论哪种方法搭建的,都需要进行一些配置,但好在Moodle已经帮我们默认配置好了许多内容,除非你知道某项配置的作用和目的,否则只需要在每个页面的最下面,找到并点击"下一个"/"继续"/"我同意"就可以了。
一直到如下图的页面,你就要开始注意了,你需要配置一个管理员账号,用于之后管理你的Moodle系统,这个账号务必要记住。
设置好管理员账号后,还需要设置一些网站名称和描述。
自此,完成了Moodle的全部搭建流程,可以开始通过管理员账号进行探索所有功能了!
五、管理员账号找回
首先,登陆服务器,进入moodle网站存放文件夹,一般为
/var/www/html/msas.cn(你的域名)
创建一个修改密码用的php网页文件,例如文件名为 resetpw.php,内容如下
<?php
require_once( 'config.php' );
require_once( 'lib/adminlib.php' );
$admin = get_admin();
$adminusername = $admin->username;
echo"当前要修改的是 '$adminusername'";
update_internal_user_password( $admin, 'moodle' );
echo"密码已成功修改为moodle,记得删除此文件,现在可以用moodle做密码登陆了!!";
?>
代码中将新的管理员密码设定为moodle,也可以在( $admin, 'moodle' );处将moodle替换为自己想要的密码。
打开浏览器,输入下列网址,并点击执行。
https://www.abc.com/resetpw.php
执行成功后,网页显示我们预设的提示信息
“密码已成功修改为moodle,记得删除此文件,现在可以用moodle做密码登陆了!!”
后,说明密码修改成功。登录确认后,请及时修改密码。