如何在 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 文档以获取更多信息、配置选项和使用指南。