全球开源学习平台Moodle

news2024/12/25 2:31:44

在这里插入图片描述

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


什么是 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_TYPEmariadb数据库类型。有效值:mariadbmysqlipgsqlauroramysql
MOODLE_DATABASE_HOSTmariadb数据库服务器的主机名
MOODLE_DATABASE_PORT_NUMBER3306数据库服务器使用的端口
MOODLE_DATABASE_NAMEbitnami_moodleMoodle 将用来连接数据库的数据库名称
MOODLE_DATABASE_USERbn_moodleMoodle 将用来连接数据库的数据库用户
MOODLE_DATABASE_PASSWORDMoodle 将用于连接数据库的数据库密码
MOODLE_USERNAMEuserMoodle 应用程序用户名
MOODLE_PASSWORDbitnamiMoodle 应用密码

更多的可用变量需要看官方的说明: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 更快捷

# 新建文件夹 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 文件

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

然后执行下面的命令

# 新建文件夹 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DP背包问题

目录 一、前言 二、0/1背包 1、装箱问题(lanqiaoOJ题号763) 2、2022(2022年国赛填空题,lanqiaoOJ题号2186) 三、完全背包 1、小明的背包2(lanqiaoOJ题号1175) 四、分组背包 五、多重背包…

Kylin 4.0.1 分布式集群安装部署

目录1. 安装依赖2. 安装Kylin(kylin1上操作)2.1 下载解压2.2 修改conf/kylin.properties2.3 下载Mysql驱动包和创建Mysql数据库2.4 hive-site.xml复制到spark的conf目录2.5 配置环境变量(两台kylin服务器)2.6 kylin运行环境检查2.7 ConfigurationException问题(没有则忽略)2.8 …

神经网络--从0开始搭建全连接网络和CNN网络

前言: Hello大家好,我是Dream。 今天来学习一下如何从0开始搭建全连接网络和CNN网络,并通过实验简单对比一下两种神经网络的不同之处,本文目录较长,可以根据需要自动选取要看的内容~ 本文目录:一、搭建4层全…

Spark核心RDD详解(设计与运行原理,分区,创建,转换,行动与持久化)

RDD设计背景与概念 在实际应用中,存在许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘工具,这些应用场景的共同之处是,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输…

go: GOPATH entry is relative; must be absolute path: “F:oocode“.

系列文章目录 文章目录系列文章目录前言一、可以先查看一下啊二、gopath和goroot变量要和设置的一致总结前言 在安装hertz 之类的 总会弹出go 的不合法 等 出现这样的错误 要不就是go的不合法 会爆红 说go无这种命令 go:术语“ go”未被识别为cmdlet,函…

Hystrix断路器

目录 一、概述 (一)分布式系统面临的问题 (二)Hystrix是什么 (三)能干吗 (四)官网 (五)Hystrix官宣,停更进维 二、Hystrix重要概念 &…

JAVA开发(springBoot之HikariDataSource)

HikariDataSource是springBoot自带的数据源管理工具。应该是有zaxxer公司提供贡献给spring社区的。它是一款优秀的数据库连接池工具(新的东西一般会吹吹牛),号称 Java WEB 当前速度最快的数据源,相比于传统的 C3P0 、DBCP、Tomcat…

【数据结构】认识顺序表

目录 1、先来认识一下线性表 1.1、对非空的线性表或者线性结构的特点: 1.2、线性表的实现方式 2、顺序表 2.1、定义一个类,实现顺序表 2.2、顺序表的操作方法 2.2.1、打印顺序表(display) 2.2.2、获取顺序表的长度&#x…

Rancher 中使用 Longhorn 备份恢复数据卷

全文目录导航0. 前言1. NFS 安装配置1.1 安装 nfs 及 rpcbind1.2 创建共享目录1.3 配置访问权限1.4 限制 showmount -e 防止漏洞扫描1.5 防火墙配置2. Longhorn 备份配置2.1 在 Longhorn UI 中配置3. 数据卷备份恢复操作3.1 创建示例工作负载3.2 创建测试数据3.3 创建数据卷备份…

车载以太网 - SomeIP测试专栏 - SomeIP Header - 03

前面已经简单的介绍了整帧SomeIP报文的组成部分,由于Ethernet报文头都是通用的,因此不会做详细的介绍,当然后面在介绍TC8中的TCP、UDP、IPv4、IPv6的时候也会做简单的介绍。不过在这里就不做介绍了,我们直接介绍SomeIP。 SomeIP Header 一、Message ID Message ID是由Serv…

Web3中文|构建Web3融资交易:股权和内部代币分配的比例

2017年,首次币发行(ICO,Initial Coin Offering,也称首次代币发售、区块链众筹,是用区块链把使用权和加密货币合二为一,来为开发、维护、交换相关产品或者服务的项目进行融资的方式)的融资方式激…

聚观早报 | 抖音超市上线;首架国产大飞机 C919 完成首次飞行

今日要闻:抖音超市上线;首架国产大飞机 C919 完成首次飞行;小鹏汽车计划有 5 款车型上市;2023年春节档电影总票房67.58亿元;亚洲首富被空头重创抖音超市上线 1 月 28 日消息,抖音超市已上线抖音 App&#x…

Javadoc(文档注释)详解

Java 支持 3 种注释,分别是单行注释、多行注释和文档注释。文档注释以/**开头,并以*/结束,可以通过 Javadoc 生成 API 帮助文档,Java 帮助文档主要用来说明类、成员变量和方法的功能。文档注释只放在类、接口、成员变量、方法之前…

vue+element高度仿照QQ音乐,完美实现PC端QQ音乐

一.前言 QQ音乐官网:点击访问作者成品效果预览:点击访问作者其他博客成品汇总预览:点击访问 暂时源码并没有提供其他获取渠道,私聊作者获取即可,或通过博客后面名片添加作者,很简单! 二.主要…

创建的vue项目--打包

自创建的项目(未使用项目框架),使用weabpack打包 1.在package.json文件中配置 2.在控制台执行打包命令npm run build 打包完成后,会在项目中生成一个dist文件夹,其中就是打包生成的静态文件 3.打开index.html&…

RocketMq基础详解

1、RocketMq的架构: 在RocketMq中有四个部分组成,分别是Producer,Consumer,Broker,以及NameServer,类比于生活中的邮局,分别是发信者,收信者,负责暂存,传输的…

找到二叉树中的最大搜索二叉树

题目 给定一棵二叉树的头节点 head,一致其中所有节点的值都不一样,找到含有节点最多的搜索二叉树,并返回这棵子树的头节点。 示例 分析 树形dp套路:如果题目求解目标是S规则,则求解流程可以定成以每一个节点为头节点…

【前端】如何判断是页面滚动还是窗口滚动

在写项目的时候遇到这个问题&#xff0c;现在举两个例子来记录这个问题。 页面滚动 html: <div class"temp"><template v-for"item in 100"><div>{{ item }}</div></template> </div>css: .temp {height: 100px;o…

老马闲评数字化「3」业务说了算还是技术说了算?

原文作者&#xff1a;行云创新CEO 马洪喜 导语 前两集和大伙聊了一下“数字化不转型行不行”以及“你的企业急不急着转”这两个话题。后面收到不少朋友的消息&#xff0c;说写的挺好&#xff0c;但“急着转、不敢转”的情况非常的普遍&#xff0c;有没有啥好主意给说一说。 麦…

冬去春来,ToB行业压缩的弹簧就要迸发了

目前来看&#xff0c;认知、实践、技术、服务这四方面的新变化&#xff0c;都将成为2023年企业数智化业务需求“井喷”的重要原因。 作者|周羽 出品|产业家 2023&#xff0c;冬去春来。 不止于字面。新的一年&#xff0c;中国的ToB厂商即将迎来“拨云见日”的朗朗晴空。 …