一、Moodle是什么?

Moodle是全球使用最广泛的LMS平台之一,凭借其开源免费、功能全面等优势,吸引了全球数亿用户。个人教师、教育机构、各级各类学校,都可以通过Moodle来实现翻转课堂、混合式学习等先进的教学模式,推动传统教学模式的革新与发展。

LMS平台又是什么?

如果把我们常见的MOOC慕课平台,比喻成是一个“课程影院”,那学习管理系统Learning Management System(LMS)则可以理解为“线上学校”。 LMS不止可以看传统慕课视频,更是给教师和学生提供了一个集中式的在线空间,用于发布课程资料、进行学习活动、追踪学习进度、进行评估测试以及进行师生互动等等。

常见的LMS平台有:Moodle、Sakai、Canvas、Chamilo等

二、Moodle搭建方式简介

本文根据搭建场景不同,提供四种不同的搭建方式,请根据自身需求选择阅读:

  1. Windows系统安装:易,傻瓜式安装,无需额外配置,只需一台普通电脑,推荐需要试用体验的用户。

  2. 1Panel面板安装:易,可拓展性强,可视化界面部署,运维简单,推荐有搭建一系列网站应用需求的站长。

  3. docker容器安装:中,通用性强,软路由NAS等Linux设备也可以尝试,搭建相对简单,针对喜欢折腾的极客

  4. 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程序,以管理员权限打开。)
moodle_cmd.PNG

至此,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数据库

mariadb.png

环境变量如下

ALLOW_EMPTY_PASSWORD=yes
MARIADB_USER=bn_moodle
MARIADB_PASSWORD=bitnami
MARIADB_DATABASE=bitnami_moodle 

2、创建Moodle框架

moodle.png

环境变量如下

ALLOW_EMPTY_PASSWORD=yes
MOODLE_DATABASE_USER=bn_moodle 
MOODLE_DATABASE_PASSWORD=bitnami 
MOODLE_DATABASE_NAME=bitnami_moodle

步骤4:配置反向代理

新建好容器后,容器将会自动运行,我们最后还需要配置一个反向代理,同样通过图形化操作完成

20240907175722.png

至此,就可通过你自己设置的域名链接,访问属于你自己的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部署方式的环境变量

Name 姓名

Description 描述

Default Value 默认值

MOODLE_DATA_DIR

存储 Moodle 数据文件的目录。

${BITNAMI_VOLUME_DIR}/moodledata

MOODLE_DATA_TO_PERSIST

相对于 Moodle 安装目录保留的文件。要提供多个值,请用空格分隔它们。

$MOODLE_BASE_DIR

MOODLE_SKIP_BOOTSTRAP

是否对应用程序执行初始引导。

nil

MOODLE_INSTALL_EXTRA_ARGS

传递给 install.php 脚本的额外参数。

nil

MOODLE_SITE_NAME

站点名称。

New Site

MOODLE_HOST

www 根目录。

nil

MOODLE_CRON_MINUTES

cron 频率(以分钟为单位)。

1

MOODLE_REVERSEPROXY

激活反向代理功能。

no

MOODLE_SSLPROXY

激活sslproxy 功能。

no

MOODLE_LANG

允许定义默认站点语言

en

MOODLE_USERNAME

用户名。

user

MOODLE_PASSWORD

用户密码。

bitnami

MOODLE_DATABASE_MIN_VERSION

由于 Azure Database for MariaDB 存在问题,请更改数据库最低版本。

nil

MOODLE_EMAIL

用户电子邮件地址。

user@example.com

MOODLE_SMTP_HOST

SMTP 服务器主机。

nil

MOODLE_SMTP_PORT_NUMBER

SMTP 服务器端口号。

nil

MOODLE_SMTP_USER

SMTP 服务器用户。

nil

MOODLE_SMTP_PASSWORD

SMTP 服务器用户密码。

nil

MOODLE_SMTP_PROTOCOL

SMTP 服务器协议。

nil

MOODLE_DATABASE_TYPE

用于安装的数据库类型。

mariadb

MOODLE_DATABASE_HOST

数据库服务器主机。

mariadb

MOODLE_DATABASE_PORT_NUMBER

数据库服务器端口。

3306

MOODLE_DATABASE_NAME

数据库名称。

bitnami_moodle

MOODLE_DATABASE_USER

数据库用户名。

bn_moodle

MOODLE_DATABASE_PASSWORD

数据库用户密码。

nil

MOODLE_BASE_DIR

(只读)安装目录。

${BITNAMI_ROOT_DIR}/moodle

MOODLE_CONF_FILE

(只读)配置文件。

${MOODLE_BASE_DIR}/config.php

MOODLE_VOLUME_DIR

(只读)文件的持久目录。

${BITNAMI_VOLUME_DIR}/moodle

PHP_DEFAULT_MEMORY_LIMIT

(只读)默认 PHP 内存限制。

256M

PHP_DEFAULT_MAX_INPUT_VARS

(只读)PHP 脚本的默认最大输入变量数量。

5000

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做密码登陆了!!”后,说明密码修改成功。登录确认后,请及时修改密码。

参考:《moodle管理员忘记密码怎么办》——白水居士