Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在Ubuntu 16.04上安装Moodle

如何在Ubuntu 16.04上安装Moodle

原创
作者头像
彼岸轮回
修改于 2018-10-09 02:02:11
修改于 2018-10-09 02:02:11
4.2K10
代码可运行
举报
运行总次数:0
代码可运行

介绍

Moodle是一个流行的,开源的基于Web的学习管理系统(LMS),任何人都可以免费安装和使用。通过Moodle,您可以为学习者群体创建和提供课程,阅读和讨论板等学习资源。Moodle还允许您管理用户角色,因此学生和教师可以拥有不同级别的材料访问权限。在Web服务器上安装Moodle后,任何有权访问您网站的人都可以创建并参与基于浏览器的学习。

在本教程中,您将在Ubuntu 16.04服务器上安装和设置Moodle。您将安装和配置Moodle所需的所有软件,运行设置向导,选择主题并创建第一个课程。

准备

在开始本教程之前,您需要以下内容:

  • 一个1GB的Ubuntu 16.04服务器,Moodle代码至少有200MB的磁盘空间,以及存储内容所需的数量。Moodle需要512MB内存,但建议至少1GB才能获得最佳性能。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 具有sudo权限和防火墙的非root用户,您可以按照[Ubuntu 16.04初始服务器设置指南进行设置]((https://cloud.tencent.com/developer/article/1007167)。
  • 按照本教程安装LAMP堆栈(Apache,MySQL和PHP)。请务必记下您在此过程中设置的根MySQL密码。

第一步 - 安装Moodle和依赖项

Moodle依赖于一些软件,包括拼写检查库和图形库。Moodle是一个PHP应用程序,它还有一些额外的PHP库依赖项。在我们安装Moodle之前,让我们使用包管理器安装所有必备库。首先,确保您拥有最新的软件包列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update

然后安装Moodle的依赖项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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服务器以加载刚刚安装的模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart apache2

现在我们准备下载并安装Moodle本身。我们将使用curl从官方分发服务器下载Moodle。

以下命令将转到Moodle网站,并将包含整个当前稳定版Moodle的压缩包放入该moodle.tgz文件中。该-L标志告诉curl遵循重定向。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L https://download.moodle.org/download.php/direct/stable32/moodle-latest-32.tgz > moodle.tgz

现在我们可以使用tar程序解压缩文件,并将生成的文件放在Web文档根目录中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo tar -xvzf moodle.tgz -C /var/www/html

验证该moodle目录是否位于服务器的Web根目录中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls /var/www/html

您应该看到moodle列出的目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Outputindex.html  moodle

现在查看moodle目录中的文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ls /var/www/html/moodle

您将看到刚刚下载和解压缩的所有Moodle文件和目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
admin           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根目录外创建此目录更安全,因此无法直接从浏览器访问它。执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir /var/moodledata

然后设置其所有权以确保Web服务用户www-data可以访问该目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chown -R www-data /var/moodledata

然后更改文件夹的权限,以便只有所有者具有完全权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod -R 0770 /var/moodledata

现在您已经在服务器上安装了Moodle,现在是时候设置它将使用的数据库了。

第二步 - 配置数据库

我们需要创建MySQL数据库,Moodle将存储其大部分数据。我们将创建Moodle代码所期望的结构,并且我们将创建一个Moodle将用于连接到数据库的用户。

但首先我们需要对MySQL配置文件进行一些更改,以便我们的MySQL安装与Moodle兼容。打开MySQL配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

然后将以下突出显示的行添加到“基本设置”区域,该区域配置新数据库应使用的存储类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
[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服务器以使用新设置重新加载配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart mysql

现在我们可以创建Moodle数据库了。为此,您将与MySQL命令行界面进行交互。执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p

出现提示时,提供您在安装MySQL时设置的root密码。

登录后,您将看到mysql>提示。运行以下命令以创建数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

然后创建一个Moodle用户,这样我们就不必告诉Moodle应用程序我们的root密码了。执行以下命令:

注意:在接下来的两个命令中,moodler使用您的Moodle用户名和moodlerpassword所选密码替换。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create user 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';

并授予moodler用户编辑数据库的权限。该用户需要创建表并更改权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';

现在退出MqSQL命令行界面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
quit;

这将负责数据库配置。现在我们可以在浏览器中启动Moodle并继续在那里进行设置。

第三步 - 在浏览器中配置Moodle

要完成Moodle的配置,我们将在Web浏览器中显示该站点,并为其提供一些其他配置详细信息。为了使Web服务器保存配置,我们需要临时更改Moodle Web根目录的权限。

警告: 权限最多可以打开此文件夹。如果您对此感到不满意,只需不要更改权限。Web界面将提供手动修改配置文件的说明。

如果您确实更改了权限,则在完成设置后立即撤消此权限非常重要。该步骤包含在本教程中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod -R 777 /var/www/html/moodle

现在打开浏览器然后转到http://your_server_ip/moodle。您将看到如下页面。

请按照以下步骤配置Moodle:

  1. 设置要使用的语言,然后单击“ 下一步”
  2. 在下一个屏幕上,将Data Directory设置为/var/moodledata,然后单击Next
  3. Choose Database Driver页面上,将Database driver设置为Improved MySQL(native mysqli)。然后单击下一步
  4. 在“ 数据库设置”页面上,输入您在第三步中创建的Moodle MySQL用户的用户名和密码。其他字段可以保留原样。单击“ 下一步”继续。
  5. 按“ 继续”,查看许可协议并确认您同意其条款。
  6. 查看“ 服务器检查”页面是否存在任何可能的问题,确保底部存在“您的服务器环境满足所有最低要求”消息,然后按继续。
  7. Moodle将安装几个组件,为每个组件显示“成功”消息。滚动到底部,然后按继续。
  8. 然后,您将看到一个页面,您可以在其中设置Moodle的管理员帐户。
    1. 对于用户名,输入您想要的任何内容,并接受默认值。
    2. 对于选择身份验证方法,请保留默认值。
    3. 对于新密码,请输入您要使用的密码。
    4. 对于电子邮件,请输入您的电子邮件
    5. 将其余字段设置为适当的值。
    6. 点击更新个人资料
  9. 在“ 首页设置”屏幕上,填写“ 完整站点名称”,“ 站点短名称”,设置位置,然后选择是否允许通过电子邮件进行自行注册。然后单击保存更改。

一旦你完成了这个。您将被带到新Moodle安装的仪表板,以管理员用户身份登录。

现在您的设置已完成,重要的是再次限制Moodle Web根目录的权限。返回终端,执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod -R 0755 /var/www/html/moodle

让我们做一个小改动来改善Moodle的安全性。默认情况下,Moodle在具有全局可写权限的文件夹/var/moodledata中创建文件。让我们通过更改Moodle使用的默认权限来加强它。

在编辑器中打开Moodle配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /var/www/html/moodle/config.php

找到这一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$CFG->directorypermissions = 0777;

将其更改为以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$CFG->directorypermissions = 0770;

然后保存文件并退出编辑器。

最后,重置/var/moodledata目录本身的权限,因为Moodle已经创建了一些世界可写文件夹并且在安装过程中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod -R 0770 /var/moodledata

现在配置了Moodle,让我们进行一些自定义并创建一个测试课程,以了解Moodle Web界面。

第四步 - 自定义Moodle并创建您的第一个课程

现在您的网站正在运行,您当晚要做的第一件事就是注册您的Moodle网站。这将订阅Moodle邮件列表,让您及时了解安全警报和新版本等内容。

要注册,请单击左侧框中的“ 站点管理”链接,然后单击“ 注册”。然后使用适当的详细信息填写Web表单。您也可以选择发布您的Moodle网站,以便其他人可以找到它。

接下来,让我们改变Moodle网站的主题。选择网站管理,选择外观选项卡,然后选择主题选择。您将看到如下图所示的页面,表示您当前正在使用默认设备上的“Boost”主题,该主题指的是现代Web浏览器:

单击“ 更改主题”按钮,您将进入显示其他可用主题的屏幕。当您单击主题名称下的使用主题按钮时,您的Moodle网站将使用该主题显示您网站的所有内容。您还可以为平板电脑或手机等不同设备选择不同的主题。

既然你已经让你的Moodle网站更接近你想要它的样子了,那么现在是时候创建你的第一道菜了。从导航菜单中选择Site home。您将看到一个空的课程列表和一个添加新课程按钮。单击该按钮可显示如下图所示的表单:

填写有关课程的信息,包括姓名,简称,说明和任何其他相关详细信息。然后滚动到底部并单击“ 保存并显示”

你的第一个Moodle课程现在准备好了。您可以使用Moodle的界面开始在课程项里添加课程和活动。

但在您开始让人们注册参加新课程之前,您应确保您的Moodle安装已准备好投入生产。首先,您需要为Apache设置TSL / SSL证书,以加密服务器和客户端之间的流量。为确保您的数据受到保护,请确保定期备份MySQL数据库。您还应该备份服务器上的文件,包括/var/moodledata/文件夹。

结论

在本文中,您在Ubuntu 16.04服务器上安装并设置了Moodle。Moodle是一个强大且高度可配置的Web应用程序。请务必查阅Moodle文档,并与Moodle用户和管理员的全球社区联系,以获取有关如何充分利用它的想法。

想要了解更多关于Ubuntu的开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Install Moodle on Ubuntu 16.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
无法创建数据库时,可以mysql的datadir目录的权限修改为777
无法创建数据库时,可以mysql的datadir目录的权限修改为777
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
在Ubuntu 16.04上安装WordPress
在本指南中,您将学习如何在运行Ubuntu 16.04的Linode上安装WordPress。WordPress是一个流行的动态内容管理系统,专注于博客。WordPress可以部署在LAMP或LEMP堆栈上,并具有广泛的插件框架和主题系统,允许网站所有者和开发人员使用其简单但功能强大的发布工具。
Techeek
2018/09/17
5.4K0
在Ubuntu 16.04上安装WordPress
如何在Ubuntu 16.04上安装phpIPAM
phpIPAM是一个专用的IP地址管理工具,超越低技术选项通过提供自动ping扫描,状态报告,让您可以看到哪些主机已启动,哪些已停机,通过电子邮件发送有关你正在监控的主机更改的通知以及其他使管理基础架构更容易的功能。
小翼111
2018/07/31
2.5K0
如何在Ubuntu 16.04上安装phpIPAM
如何在Ubuntu 16.04中安装Linux,Nginx,MySQL,PHP(LNMP堆栈)
LNMP软件堆栈是一组可用于为动态网页和Web应用程序提供服务的软件。它是一个描述带有Nginx Web服务器的Linux操作系统的首字母缩写词。其后端数据存储在MySQL数据库中,动态处理由PHP处理。
乌鸦
2018/08/10
2.2K0
如何在Ubuntu 16.04上安装和配置ownCloud
ownCloud是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在集中位置,就像Dropbox一样。ownCloud的不同之处在于它是免费的开源软件,允许任何人使用和检查它。它还会将敏感数据的控制权和安全性返回给您,从而消除了第三方云托管服务的使用。
穿鞋跑得快
2018/09/28
1.5K0
如何在Ubuntu 16.04上安装PrestaShop
如果您曾经考虑过开设在线商店,您可能会感受到各种免费的开源电子商务解决方案。虽然有这么多的选择意味着几乎可以肯定有一个可用的有效解决方案适合您的特定情况,但它也可能让新手感到困惑。其中一个选项是本指南的主题,它是PrestaShop,这是一个全球数千家商户使用的综合电子商务解决方案。
沈唁
2018/09/25
5.2K0
如何在Ubuntu 16.04上安装PrestaShop
如何在Ubuntu 16.04上安装Ghost CMS
Ghost 1.0.0是Ghost内容管理系统(CMS)的第一个主要稳定版本。Ghost 1.0.0有一个全新的Markdown编辑器,刷新的用户界面,新的默认主题设计,改进的Ghost-CLI安装和更新过程等等。
葡萄
2018/08/17
1.4K0
如何在Ubuntu 16.04上使用MySQL设置远程数据库以优化站点性能
随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置。如果您在同一台计算机上托管Web服务器和数据库后端,最好将这两个功能分开,以便每个功能可以在自己的硬件上运行,并分担响应访问者请求的负载。
苏子晨
2018/08/08
2.1K0
如何在Linux上安装开源内容管理系统Subrion
如果您的公司需要内容管理系统(CMS),则有许多可用选项,其中许多是开源的。 其中一个选项是Subrion CMS。 Subrion是一个免费的开源CMS,包含您需要的所有功能:
星哥玩云
2022/07/20
1.3K0
如何在Linux上安装开源内容管理系统Subrion
如何在Ubuntu 16.04上安装和保护Grafana
在本教程中,您将安装Grafana并使用SSL证书和Nginx反向代理保护它,然后您将修改Grafana的默认设置以获得更高的安全性。
宇cccc
2018/07/31
3.6K0
如何在Ubuntu 16.04上安装和保护Grafana
如何在Ubuntu 16.04上安装和配置Zabbix以安全地监视远程服务器
Zabbix是用于web和应用程序的开源监控软件。它提供对从服务器,虚拟机和任何其他类型的网络设备收集的数千个指标的实时监控。这些指标可帮助确定IT基础架构的当前运行状况。有用的信息存储在数据库中,因此您可以随时分析数据并提高所提供服务的质量。
angel_郁
2018/08/10
1.3K0
如何在Ubuntu 16.04上安装和配置Zabbix以安全地监视远程服务器
Ubuntu如何使用Roundcube安装自己的Webmail客户端
如今,许多人使用基于浏览器的电子邮件客户端(如Gmail)来访问他们的电子邮件。但是,如果您想在查看电子邮件时停止查看广告,或者您已从公共电子邮件服务移至您自己的域,则可以运行自己的网络邮件客户端(也称为邮件用户代理或MUA)。
挺问中原
2018/08/07
12.1K1
安装 WordPress – 如何在 Ubuntu 上安装 WordPress
WordPress 是最受欢迎的内容管理系统(CMS),因其用户友好性和灵活性而闻名,可以创建各种类型的网站。 该软件还可以安装在不同类型的主机上,包括 VPS 平台。
轩源
2024/09/29
8440
安装 WordPress – 如何在 Ubuntu 上安装 WordPress
如何在Ubuntu 16.04上安装Icinga和Icinga Web
Icinga是一个灵活而强大的开源监控系统,用于监控网络主机和服务的运行状况。它可用于监视Web worker集群的负载和正常运行时间,存储设备上的可用磁盘空间,缓存服务上的内存消耗等。正确设置后,Icinga可以让您快速了解大量主机和服务的状态,以及通知,停机时间安排和性能数据的长期存储。
陈树丶
2018/07/26
1.3K0
如何在Ubuntu 16.04上安装Icinga和Icinga Web
如何在 Ubuntu 20.04 上使用LEMP安装WordPress
WordPress 需要 Web 服务器、数据库和 PHP 才能正常运行。设置 LEMP 堆栈(Linux、Nginx、MySQL 和 PHP)可以满足所有这些要求。无需自己设置这些组件,您可以快速配置已经安装了 LEMP 堆栈的 Ubuntu 20.04 服务器、
小颖club
2022/04/11
9370
如何在Ubuntu 16.04上使用SonarQube来确保代码质量
代码质量是特定代码片段的有用性和可维护性的近似值。质量代码将使维护和扩展应用程序的任务变得更加容易。它有助于确保在将来进行必要的更改时引入更少的漏洞。
穿鞋跑得快
2018/08/13
1.9K0
如何在Ubuntu 18.04上安装带有LEMP的WordPress
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您使用PHP处理在MySQL后端之上轻松设置博客和网站。WordPress已经看到了令人难以置信的运用,是一个快速启动和运行网站的绝佳选择。设置完成后,几乎所有管理都可以通过Web前端完成。
所有的酒都不如你
2018/10/10
1.4K0
开源资产管理系统Snipe-IT安装教程
在IT行业中,需要完整的生命周期跟踪资产的资产管理,包括采购,维护,存储和处置。Snipe-IT是专为IT资产管理而设计的免费开源应用程序,提供基于Web的界面,用于跟踪许可证,附件,耗材和组件。Snipe-IT包括具有可配置组级权限的用户帐户,可自定义的报告功能以及用于从命令行或第三方应用程序连接,管理和扩展Snipe-IT的JSON REST API。在本教程中,将教您将下载,安装和配置Snipe-IT,然后您将创建一个管理员用户帐户,以便首次登录Snipe-IT。
彼岸轮回
2018/08/07
17.8K2
开源资产管理系统Snipe-IT安装教程
如何在Ubuntu 18.04上安装带有LAMP的WordPress
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您使用PHP在MySQL后端上设置博客和网站。WordPress已经被大量采用,是一个快速启动和运行网站的绝佳选择。设置完成后,几乎所有管理都可以通过Web前端完成。
无敌小笼包
2018/07/26
2.8K0
如何在Ubuntu 18.04上安装带有LAMP的WordPress
如何在Ubuntu 16.04上安装Webmin控制面板和模块
Webmin是一个Web界面,允许您通过浏览器管理配置文件和重新加载程序,而无需SSH连接到您的Linode。它是cPanel或Plesk等管理面板的流行替代品,并且包含许多使其受欢迎的功能。许多第三方模块适用于不同的用例,这有助于提高Webmin控制面板的灵活性。
小翼111
2018/08/20
2.7K0
如何在Ubuntu 18.04上安装Joomla内容管理系统
在创建网站时,使网站正常运行的最简单方法之一是使用CMS(内容管理系统),该软件通常附带捆绑的PHP代码以及所需的所有主题和插件。
星哥玩云
2022/08/08
1.4K0
如何在Ubuntu 18.04上安装Joomla内容管理系统
推荐阅读
相关推荐
在Ubuntu 16.04上安装WordPress
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验