如何在Ubuntu16.04上安装Moodle
介绍
Moodle 是一个流行的开源网络学习管理系统 (LMS),任何人都可以免费安装和使用。 使用 Moodle,您可以创建学习资源,例如课程、阅读材料和讨论板,并将其提供给学习者组。 Moodle 还允许您管理用户角色,因此学生和教师可以对材料具有不同级别的访问权限。 在您的网络服务器上安装 Moodle 后,任何有权访问您网站的人都可以创建和参与基于浏览器的学习。
在本指南中,您将在 Ubuntu 16.04 服务器上安装和设置 Moodle。 您将安装和配置 Moodle 所需的所有软件,运行设置向导,选择主题,然后创建您的第一门课程。
先决条件
在开始本指南之前,您需要以下内容:
- 一个 1GB 的 Ubuntu 16.04 服务器,至少有 200MB 的磁盘空间用于存储 Moodle 代码,以及存储内容所需的空间。 Moodle 需要 512MB 内存,但建议至少 1GB 以获得最佳性能。
- 具有 sudo 权限和防火墙的非 root 用户,您可以按照 Ubuntu 16.04 初始服务器设置指南 进行设置。
- 按照 本教程 安装的 LAMP 堆栈(Apache、MySQL 和 PHP)。 请务必记下您在此过程中设置的根 MySQL 密码。
第 1 步 — 安装 Moodle 和依赖项
Moodle 依赖于一些软件,包括拼写检查库和图形库。 Moodle 是一个 PHP 应用程序,它还有一些额外的 PHP 库依赖项。 在我们安装 Moodle 之前,让我们使用包管理器安装所有必备库。 首先,确保您拥有最新的软件包列表:
sudo apt-get update
然后安装 Moodle 的依赖项:
sudo apt-get install aspell graphviz php7.0-curl php7.0-gd php7.0-intl php7.0-ldap php7.0-mysql php7.0-pspell php7.0-xml php7.0-xmlrpc php7.0-zip
接下来,重新启动 Apache Web 服务器以加载刚刚安装的模块:
sudo systemctl restart apache2
现在我们准备下载并安装 Moodle 本身。 我们将使用 curl
从官方分发服务器下载 Moodle。
以下命令将进入 Moodle 网站,并将包含整个当前稳定版本的 Moodle 的压缩包放入文件 moodle.tgz
中。 -L
标志告诉 curl
遵循重定向。
curl -L https://download.moodle.org/download.php/direct/stable32/moodle-latest-32.tgz > moodle.tgz
现在我们可以使用 tar
程序解压缩文件并将生成的文件放在 Web 文档根目录中:
sudo tar -xvzf moodle.tgz -C /var/www/html
验证 moodle
目录是否在您服务器的 Web 根目录中:
ls /var/www/html
您应该会看到列出的 moodle
目录:
Outputindex.html moodle
现在查看 moodle
目录中的文件:
ls /var/www/html/moodle
您将看到您刚刚下载和解压缩的所有 Moodle 文件和目录:
Outputadmin composer.json grade message README.txt auth composer.lock group mnet report availability config-dist.php Gruntfile.js mod repository backup config.php help_ajax.php my rss badges CONTRIBUTING.txt help.php notes search behat.yml.dist COPYING.txt index.php npm-shrinkwrap.json tag blocks course install package.json tags.txt blog dataformat install.php phpunit.xml.dist theme brokenfile.php draftfile.php INSTALL.txt pix TRADEMARK.txt cache enrol iplookup plagiarism user calendar error lang pluginfile.php userpix cohort file.php lib portfolio version.php comment files local PULL_REQUEST_TEMPLATE.txt webservice competency filter login question completion githash.php media rating
现在我们需要在 Web 根目录之外为 Moodle 创建一个目录来存储所有与课程相关的数据,这些数据将存储在服务器上,而不是数据库中。 在 web 根目录之外创建这个目录更安全,这样就不能直接从浏览器访问它。 执行这个命令:
sudo mkdir /var/moodledata
然后设置其所有权以确保 Web 服务用户 www-data
可以访问该目录:
sudo chown -R www-data /var/moodledata
然后更改文件夹的权限,以便只有所有者拥有完全权限:
sudo chmod -R 0770 /var/moodledata
现在您已经在服务器上安装了 Moodle,是时候设置它将使用的数据库了。
第 2 步 — 配置数据库
我们需要创建 MySQL 数据库,Moodle 将在其中存储大部分数据。 我们将创建 Moodle 代码所期望的结构,我们将创建一个 Moodle 将用来连接到数据库的用户。
但首先我们需要对 MySQL 配置文件进行一些更改,以便我们的 MySQL 安装与 Moodle 兼容。 打开 MySQL 配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
然后将以下突出显示的行添加到“基本设置”区域,用于配置新数据库应使用的存储类型:
mysqld配置
... [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking default_storage_engine = innodb innodb_file_per_table = 1 innodb_file_format = Barracuda ## Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. ...
保存此文件,然后重新启动 MySQL 服务器以使用新设置重新加载配置。
sudo systemctl restart mysql
现在我们可以创建 Moodle 数据库了。 为此,您将与 MySQL 命令行界面进行交互。 执行这个命令:
mysql -u root -p
出现提示时,提供您在安装 MySQL 时设置的 root 密码。
登录后,您将看到 mysql>
提示。 运行以下命令创建数据库:
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
然后创建一个 Moodle 用户,这样我们就不必告诉 Moodle 应用程序我们的 root 密码是什么。 执行这个命令:
注意: 在接下来的两个命令中,将 moodler
替换为您的 Moodle 用户名,将 moodlerpassword
替换为所选密码。
create user 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';
并赋予 moodler
用户编辑数据库的权限。 此用户将需要创建表并更改权限:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';
现在退出 MqSQL 命令行界面:
quit;
这负责数据库配置。 现在我们可以在浏览器中启动 Moodle 并在那里继续设置。
第 3 步 — 在浏览器中配置 Moodle
为了完成 Moodle 的配置,我们将在 Web 浏览器中打开该站点,并为其提供一些额外的配置细节。 为了让 web 服务器保存配置,我们需要临时更改 Moodle web root 的权限。
警告: 这个文件夹对所有人开放的权限。 如果您对此感到不舒服,请不要更改权限。 Web 界面将为您提供手动修改配置文件的说明。
如果您确实更改了权限,请务必在完成设置后立即撤消此操作。 该步骤包含在本教程中。
sudo chmod -R 777 /var/www/html/moodle
现在打开浏览器并转到 http://your_server_ip/moodle
。 您将看到如下所示的页面。
按照以下步骤配置 Moodle:
- 设置您要使用的语言,然后单击下一步。
- 在下一个屏幕上,将 Data Directory 设置为
/var/moodledata
,然后单击 Next。 - 在Choose Database Driver页面,将Database driver设置为Improved MySQL (native mysqli)。 然后单击下一步。
- 在 数据库设置 页面上,输入您在步骤 3 中创建的 Moodle MySQL 用户的用户名和密码。 其他字段可以保持原样。 单击下一步继续。
- 查看许可协议并按 继续确认您同意其条款。
- 查看 服务器检查 页面以了解任何可能的问题。 确保底部存在“您的服务器环境满足所有最低要求”消息,然后按 继续。
- Moodle 将安装几个组件,为每个组件显示“成功”消息。 滚动到底部并按 继续。
- 然后您会看到一个页面,您可以在其中为 Moodle 设置管理员帐户。 对于用户名,输入您想要的任何内容,并接受默认值。 对于选择身份验证方法,保留默认值。 对于新密码,输入您要使用的密码。 对于电子邮件,输入您的电子邮件地址。 将其余字段设置为适当的值。 单击更新配置文件。
- 在【X7X】首页设置【X30X】界面,填写【X56X】站点全名【X74X】,【X85X】站点简称【X108X】,设置位置,选择是否允许自己- 通过电子邮件注册。 然后点击保存更改。
一旦你完成了这个。 您将被带到新 Moodle 安装的仪表板,以 admin 用户身份登录。
现在您的设置已完成,再次限制对 Moodle 网络根目录的权限非常重要。 回到您的终端,执行以下命令:
sudo chmod -R 0755 /var/www/html/moodle
让我们再做一个小改动来提高 Moodle 的安全性。 默认情况下,Moodle 在 /var/moodledata
文件夹中创建具有全局可写权限的文件。 让我们通过更改 Moodle 使用的默认权限来加强这一点。
在编辑器中打开 Moodle 配置文件:
sudo nano /var/www/html/moodle/config.php
找到这一行:
配置文件
$CFG->directorypermissions = 0777;
将其更改为以下内容:
配置文件
$CFG->directorypermissions = 0770;
然后保存文件并退出编辑器。
最后,重置 /var/moodledata
目录本身的权限,因为 Moodle 已经创建了一些世界可写文件夹并且在安装过程中:
sudo chmod -R 0770 /var/moodledata
现在已配置 Moodle,让我们进行一些自定义并创建一个测试课程来感受 Moodle Web 界面。
第 4 步 — 自定义 Moodle 并创建您的第一门课程
现在您的网站正在运行,您晚上想做的第一件事就是注册您的 Moodle 网站。 这将使您订阅 Moodle 邮件列表,让您了解安全警报和新版本等最新信息。
要注册,请单击左侧框中的站点管理链接,然后单击注册。 然后使用适当的详细信息填写网络表格。 您还可以选择发布您的 Moodle 网站,以便其他人可以找到它。
接下来,让我们更改 Moodle 网站的主题。 选择站点管理,选择外观选项卡,然后选择主题选择器。 您将看到如下图所示的页面,表明您当前在 Default 设备上使用“Boost”主题,它指的是现代网络浏览器:
单击 更改主题 按钮,您将进入显示其他可用主题的屏幕。 当您单击主题名称下的 使用主题 按钮时,您的 Moodle 站点将使用该主题来显示您站点的所有内容。 您还可以为不同的设备(如平板电脑或手机)选择不同的主题。
现在您的 Moodle 网站已经接近您想要的样子,是时候创建您的第一门课程了。 从导航菜单中选择站点主页。 您将看到一个空的课程列表和一个 添加新课程 按钮。 单击该按钮以显示如下图所示的表单:
填写有关您的课程的信息,包括名称、简称、描述和任何其他相关详细信息。 然后滚动到底部,点击【X36X】保存并显示【X56X】。
您的第一个 Moodle 课程现已准备就绪。 您可以使用 Moodle 的界面开始向课程添加课程和活动。
但在您开始让人们注册参加您的新课程之前,您应该确保您的 Moodle 安装已准备好投入生产。 对于初学者,您需要为 Apache 设置一个 TSL/SSL 证书来加密您的服务器和客户端之间的流量。 为此,请按照教程 如何在 Ubuntu 16.04 上使用 Let's Encrypt 保护 Apache。 为了确保您的数据受到保护,请确保您 定期备份您的 MySQL 数据库 。 您还应该备份服务器上的文件,包括 /var/moodledata/
文件夹。 教程 如何为您的 VPS 选择有效的备份策略提供了备份文件的建议。
结论
在本文中,您在 Ubuntu 16.04 服务器上安装并设置了 Moodle。 Moodle 是一个健壮且高度可配置的 Web 应用程序。 请务必查阅 Moodle 文档并与全球 Moodle 用户和管理员社区取得联系,了解如何充分利用它。 快乐的造型!