全球开源学习平台Moodle

今天是正月初九,老苏开始上班了,起航新程,开工大吉!


什么是 Moodle ?

Moodle 是一个开源的在线教育系统(慕课)。旨在为教育工作者、管理人员和学习者提供一个强大、安全且集成的系统,来创建个性化的学习环境。Moodle 采用 PHPJavaScript 编写,使用 SQL 数据库存储数据。

前言

1、为什么没用群晖自带的 MariaDB ?

老苏本来是想用群晖自带的 MariaDB 10 数据库,但是会连不上

原因没搞明白,所以老苏最后还是采用了容器安装 MariaDB 的方式

2、安装过程比较长

安装过程中,日志中显示INFO ==> Running Moodle install script 时安装时间比较长,没搞明白是在初始化数据库还是在下载代码

从日志看大概有 6 分钟

安装

环境变量

docker 相关的环境变量

变量 缺省值 描述
MARIADB_ROOT_PASSWORD 数据库管理员密码
MARIADB_DATABASE 数据库库名
MARIADB_USER 数据库用户
MARIADB_PASSWORD 数据库密码
MOODLE_DATABASE_TYPE mariadb 数据库类型。有效值:mariadbmysqlipgsqlauroramysql
MOODLE_DATABASE_HOST mariadb 数据库服务器的主机名
MOODLE_DATABASE_PORT_NUMBER 3306 数据库服务器使用的端口
MOODLE_DATABASE_NAME bitnami_moodle Moodle 将用来连接数据库的数据库名称
MOODLE_DATABASE_USER bn_moodle Moodle 将用来连接数据库的数据库用户
MOODLE_DATABASE_PASSWORD Moodle 将用于连接数据库的数据库密码
MOODLE_USERNAME user Moodle 应用程序用户名
MOODLE_PASSWORD bitnami Moodle 应用密码

更多的可用变量需要看官方的说明:https://github.com/bitnami/containers/tree/main/bitnami/moodle

  • MARIADB_ROOT_PASSWORD:老苏是为了便于说明,设置成了 123456,这并不是一个好的榜样,建议设置的复杂一点;
  • MARIADB_PASSWORD:同上;
  • MOODLE_DATABASE_TYPE:默认值就是 mariadb,所以可以不设;
  • MOODLE_DATABASE_PORT_NUMBER:默认是 3306,所以可以不设;

下面安装时,老苏没有将数据库端口暴露出来,如果你需要访问数据库,要避开系统占用的 33063307 数据库端口

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 新建文件夹 moodle 和 子目录
mkdir -p /volume2/docker/moodle/{data,db}

# 进入 moodle 目录
cd /volume2/docker/moodle

# 修改目录权限
chmod 777 {data,db}

# 运行 MariaDB 容器
# 注意:老苏没有对外暴露端口,否则要避开系统的 3306 和 3307
docker run -d \
--restart unless-stopped \
--name moodle_db \
-v $(pwd)/db:/bitnami/mariadb \
-e MARIADB_ROOT_PASSWORD=123456 \
-e MARIADB_DATABASE=moodle \
-e MARIADB_USER=moodle \
-e MARIADB_PASSWORD=123456 \
bitnami/mariadb:10.6

# 运行 moodle 容器
docker run -d \
--restart unless-stopped \
--link moodle_db:db \
--name moodle_web \
-p 8488:8080 \
-v $(pwd)/data:/bitnami/moodle \
-e MOODLE_DATABASE_HOST=db \
-e MOODLE_DATABASE_NAME=moodle \
-e MOODLE_DATABASE_USER=moodle \
-e MOODLE_DATABASE_PASSWORD=123456 \
-e MOODLE_USERNAME=laosu \
-e MOODLE_PASSWORD=123456 \
bitnami/moodle:latest

docker compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
version: '3'

services:
mariadb:
image: bitnami/mariadb:10.6
container_name: moodle_db
#restart: unless-stopped
volumes:
- ./db:/bitnami/mariadb
environment:
#- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_ROOT_PASSWORD=123456
- MARIADB_DATABASE=moodle
- MARIADB_USER=moodle
- MARIADB_PASSWORD=123456

moodle:
image: bitnami/moodle:latest
container_name: moodle_web
#restart: unless-stopped
ports:
- 8488:8080
volumes:
- ./data:/bitnami/moodle
environment:
#- MOODLE_DATABASE_TYPE=mariadb
- MOODLE_DATABASE_HOST=mariadb
#- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_NAME=moodle
- MOODLE_DATABASE_USER=moodle
- MOODLE_DATABASE_PASSWORD=123456
- MOODLE_USERNAME=laosu
- MOODLE_PASSWORD=123456

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 moodle 和 子目录
mkdir -p /volume2/docker/moodle/{data,db}

# 进入 moodle 目录
cd /volume2/docker/moodle

# 修改目录权限
chmod 777 {data,db}

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8488 就能看到主界面

点右上角的 Log in,用我们安装时的 MOODLE_USERNAMEMOODLE_PASSWORD 中设置的账号、密码登录

登录成功后的主界面仪表板

中文

方法一

Site administration –> General –> - Notifications

拉到最下面,可以看到我们安装的 Moodle 的版本

打开网址:https://download.moodle.org/langpack/4.1/ 下拉可以找到简体中文的语言包

下载解压到 /docker/moodle/data/lang 目录中

方法二

当然更方便的办法是直接安装,Site administration –> Language –> Language packs

右侧 Available language packs 中搜索 chinese

安装 Ctrl 多选之后,点 Install selected language pack(s)

安装完成

Update all installed language packs 刷新一下

Site administration –> Language –> Language settings,下拉框中已经有中文了

选择完成后,点 Save changes

生效

因为老苏是同时弄的,所以并不清楚是哪种方式生效了,当然最好是两种都行 😂

主界面管理员菜单中会多出 Language 菜单

选择 简体中文

界面就切换为中文了

官方还提供了中文版的使用说明:https://docs.moodle.org/all/zh/首页,所以上手应该不难吧

参考文档

moodle/moodle: 源代码
地址:https://github.com/moodle/moodle

Moodle - Open-source learning platform | Moodle.org
地址:https://moodle.org/

containers/bitnami/moodle at main · bitnami/containers
地址:https://github.com/bitnami/containers/tree/main/bitnami/moodle

bitnami/moodle - Docker Image | Docker Hub
地址:https://registry.hub.docker.com/r/bitnami/moodle/