网站搜索

如何在 Ubuntu 20.04 中安装 Moodle 学习平台


Moodle 是世界上最受欢迎、强大、免费且开源的在线学习 (e-learning) 管理平台,专为网络和移动设备而构建。它提供了广泛的活动和教育工具,使学校、大学和相关机构能够随时随地为学生提供灵活的学习平台,而不会中断他们的课程和课程。

其一些一般功能包括现代化、易于使用的界面、个性化仪表板、协作工具和活动、一体化日历、便捷的文件管理、简单直观的文本编辑器、通知和跟踪进度。

重要的是,Moodle 还具有高度可扩展性,可以使用一千多个插件来支持额外的活动、块、主题等等。

在本文中,您将了解如何在 Ubuntu 20.04 上安装最新版本的 Moodle 学习平台以及 NGINX 和 MySQL/MariaDB 数据库旧版本。

服务器要求:

  • 新安装的 Ubuntu 20.04 服务器,安装了 LEMP Stack。

Ubuntu 服务器上安装 LEMP 堆栈后,您可以继续在服务器上设置 Moodle,如下所述。

在本页

  • 为 Moodle 应用程序设置 DNS 记录
  • 在 Ubuntu 服务器中安装 Moodle
  • 配置 NGINX 来为 Moodle 应用程序提供服务
  • 通过 Web 安装程序完成 Moodle 安装
  • 使用 Let’s Encrypt 在 Moodle 应用程序上启用 HTTPS

为 Moodle 应用程序设置 DNS 记录

1. 为了让用户访问您的 Moodle 实例,您需要为其创建一个子域,因此,您需要创建一个 DNS 一个记录来实现这一点。对于本指南,我们的测试域是 testprojects.me,因此我们需要创建一个子域,例如 learning.testprojects.me

因此,登录域名注册商的 Web 控制台并访问域的高级设置,点击 A 类型的添加新记录,主机应该学习 (或您选择的任何单词),值应该是您的 Ubuntu 服务器的公共 IP 地址。

在 Ubuntu 服务器中安装 Moodle

2. 接下来,您需要使用 apt 包管理器安装 Moodle 所需的 PHP 扩展和库,如图所示。

sudo apt update
sudo apt install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. 接下来,为您的 Moodle 系统创建一个数据库。登录到 MySQL 数据库管理 shell 并创建数据库,如下所示:

sudo mysql

MariaDB [(none)]> CREATE DATABASE moodle;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'Secur3P@zzwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. 如前所述,对于本指南,我们将下载并安装最新版本 Moodle(撰写本文时为 3.9 版)。运行以下 wget 命令来获取 Moodle 包并使用 tar 命令分别解压。然后使用ls命令确认moodle目录存在于/var/www/html/下,如图所示。

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
sudo tar -zvxf moodle-latest-39.tgz -C /var/www/html/
ls /var/www/html/

5. 接下来,通过运行以下命令对 Moodle 目录设置适当的权限。

sudo chown www-data:www-data -R /var/www/html/moodle
sudo chmod 775 -R /var/www/html/moodle

6. 接下来,创建 Moodle data 目录,Moodle 可以在其中保存上传的文件并设置其权限,如图所示。

sudo mkdir -p /var/moodledata
sudo chmod 775 -R /var/moodledata
sudo chown www-data:www-data -R  /var/moodledata

7.然后从包中提供的示例配置文件创建Moodle主配置文件,并将其打开。

cd /var/www/html/moodle/
sudo cp config-dist.php config.php
sudo vim config.php

找到数据库配置部分,然后配置将存储所有Moodle数据的数据库,如下图所示:

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodle';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'Secur3P@zzwd';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

另外,配置 Moodle 网站位置以及 Moodle 数据目录的位置,如图所示。

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/moodledata';

保存关闭文件。然后配置 NGINX 来为您的 Moodle 站点提供服务,如下一节所述。

配置 NGINX 来为 Moodle 应用程序提供服务

8. 为了让 NGINX 为您的 Moodle 站点提供服务,您需要在 NGINX 配置下的目录中创建一个新的服务器块配置> /etc/nginx/conf.d/

sudo vim /etc/nginx/conf.d/moodle.conf

复制并粘贴以下配置,将 learning.testprojects.me 替换为您的子域。此外,fastcgi_pass 指令应指向 PHP-FPM 接受 FastCGI 请求的地址(检查 /etc/php/7.4/fpm/pool.d/www.conf 文件以获取更多信息)。

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass           unix:/run/php/php7.4-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

保存文件并关闭它。

9. 接下来,在进行上述更改后验证 NGINX 配置是否正常,然后正常重启 NGINX 服务。

sudo nginx -t
sudo systemctl reload nginx

通过 Web 安装程序完成 Moodle 安装

10. 现在打开 Web 浏览器并使用您的子域(例如 learning.testprojects.me)进行导航,以访问 Moodle Web 安装程序。

http://learning.testprojects.me

欢迎页面加载后,请仔细阅读消息,然后单击继续

11.接下来,安装程序将检查您的系统是否满足要求,如果一切正常,向下滚动并单击继续开始实际安装文件并设置数据库架构。

请注意,安装程序将显示有关站点未在 HTTPS 上运行的警告,请暂时忽略该警告。在最后一节中,我们将介绍如何使用免费的 Let’s Encrypt 证书在 Moodle 上启用 HTTPS

安装完成后,单击继续

12. 接下来,通过创建帐户用户名、密码、名字和姓氏以及电子邮件地址来配置 Moodle 站点的管理员帐户。然后向下滚动并点击更新帐户

13. 接下来,配置 Moodle 站点首页设置,如以下屏幕截图所示。然后向下滚动并点击更新

14.网络安装程序将自动让您登录到新的Moodle站点。您可以按照屏幕上的说明完成站点注册。

使用 Let’s Encrypt 在 Moodle 应用程序上设置 HTTPS

15. 要保护您的 Moodle 站点,您需要启用 HTTPS。在本指南中,我们将使用 Let’s Encrypt 免费且受信任的 SSL/TLS 证书。使用 Let’s Encrypt 的另一个优点是它是自动化的。

因此,返回终端并运行以下命令,在 Ubuntu 上安装 certbot(一个免费的开源工具,用于自动使用 Let’s Encrypt 证书在手动管理的站点上启用 HTTPS)。

sudo snap install --classic certbot

16. 然后发出以下命令来获取证书,并让 Certbot 编辑您的 NGINX 配置以自动配置新证书。

sudo certbot --nginx

17.接下来,返回到Moodle站点配置文件。

sudo vim /var/www/html/moodle/config.php 

并将 URL 从 HTTP 更改为 HTTPS,如以下屏幕截图所示。

$CFG->wwwroot   = 'https://learning.testprojects.me';

18. 最后,通过浏览器验证您的 Moodle 站点现在正在 HTTPS 上运行。

https://learning.testprojects.me

目前为止就这样了!请访问 Moodle 3.9 文档以获取更多信息、配置选项和使用指南。