如何安装 Moodle 学习管理系统

开源 Moodle 在线教育软件是任何想要提供在线课程的人的绝佳选择。
348 位读者喜欢这篇文章。
Open door with open education and Moodle

Moodle

学习管理系统 (LMS) 是为在线教育提供动力的软件,使教师和培训师能够共享课程作业、管理评估并跟踪学生的学习情况。 有许多专有供应商提供各种 LMS,但一个持久的开源选择是 Moodle

Moodle 已经可用近 20 年。 它由科廷大学的学生和员工 Martin Dougiamas 发起,他看到了改进的可能性,这些改进在 2001 年变成了 Moodle。 截至 2018 年初,全球超过 240 万学生,从 K-12 到高等教育,都在使用 Moodle。 虽然它最初是从 Martin 的愿景发展而来,但 Moodle 拥有庞大而强大的开发者和其他贡献者社区,这使得该产品成为比专有选项更具吸引力的选择。

安装软件包

Moodle 可以在任何基于 Linux 的发行版上运行,但本教程使用 Ubuntu 16.04 平台。 Moodle 还需要安装 Web 服务器和数据库服务器。 此示例使用 Nginx 和 MariaDB,但 Apache 以及 MySQL 或 Postgres 也可以使用。

要在您的 Ubuntu 16.04 机器上安装这些软件包,请输入以下命令

sudo apt install mariadb-server mariadb-client nginx

配置数据库

在开始数据库设置之前,请配置您的数据库服务器,以使用以下命令确保其安全并为 Moodle 做好准备

sudo /usr/bin/mysql_secure_installation

只需按照提示设置 root 密码并保护您的安装。

您还需要更改 MariaDB 或 MySQL 中的一些配置选项,Moodle 需要,因此请导航到 /etc/mysql/conf.d/ 并在您的 my.cnf 文件中添加一些选项

sudo vi /etc/mysql/conf.d/my.cnf
[client]
default-character-set = utf8mb4

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake

[mysql]
default-character-set = utf8mb4

现在为 Moodle 配置您的数据库

sudo mysql –u root –p
CREATE DATABASE moodledb;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY ‘my_secure_password’;
GRANT ALL ON moodledb.* TO 'moodleuser'@'localhost’;
FLUSH privileges;

安装其他软件包

Moodle 还需要 PHP 和其他几个软件包,用于语言支持、图像处理、拼写检查和其他内部操作

sudo apt-get install php7.0-fpm graphviz aspell php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-soap php7.0-mbstring

现在为 Moodle 配置 PHP。 在 /etc/php/7.0/cli/etc/php/7.0/fpm 目录中,都有一个 php.ini 文件。 找到并将 cgi.fix_pathinfo = 1 更改为 cgi.fix_pathinfo = 0

sudo vi /etc/php/7.0/cli/php.ini
sudo vi /etc/php/7.0/fpm/php.ini

为 Moodle 配置 Nginx

为了让 Moodle 正常运行,请更改 Nginx 提供的默认站点的配置

cd /etc/nginx/sites-available
sudo vi default

为您的基本安装保持简单

server {

        listen 80;

        server_name _;

        root /var/www/html/moodle;
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

对于公共部署,必须正确配置服务器以进行 SSL。 Let's Encrypt 是一个不错的选择,并提供 使用 Nginx 的说明

重启服务

现在一切都已安装并配置为满足 Moodle 的要求,请重启一些服务以继续安装

sudo systemctl restart nginx
sudo systemctl restart php7.0-fpm
sudo systemctl restart mysql

安装 Git 并将 Moodle 源代码克隆到服务器

虽然您可以下载包含 Moodle 源代码的 ZIP 文件并将其放置在您的服务器上,但选择使用 Git 安装 Moodle 可以轻松升级主要和次要版本更新。 首先,安装 Git

sudo apt install git

接下来,将其克隆到服务器上的 /var/www (或您选择的备用位置)

cd /var/www/
sudo git clone git://git.moodle.org/moodle.git

完成后,您将拥有一个 Moodle 目录,您可以切换到该目录并开始配置

cd moodle
sudo git branch -a

您将看到可用于安装的可用 Moodle 版本列表;选择当前版本(例如,Moodle 3.4)。 告诉 Git 您将跟踪并检出该版本

sudo git branch --track MOODLE_34_STABLE origin/MOODLE_34_STABLE
sudo git checkout MOODLE_34_STABLE

在 Web 浏览器中工作

现在,通过 IP 地址或您为此站点指定的规范名称,在 Web 浏览器中打开新创建的站点。 例如,如果您的服务器的 IP 地址为 192.168.1.20,则在 Web 浏览器中打开 http://192.168.1.20/,Moodle 将打开安装的初始配置页面。

当您输入最终配置时,Moodle 安装过程将配置语言选项、服务器的公共地址(Moodle 的安装位置)以及 moodledata 目录的存储位置。

您会注意到 Moodle 列出了 Moodledata 目录的位置,Moodle 在其中存储其缓存文件、课程备份和其他临时文件。 默认情况下,Moodle 选择将其存储在 Web 服务器上的主 Moodle 目录中。 如果您希望,您可以将其移动到另一个位置以确保安全,例如在 /var 目录下创建此目录

sudo mkdir /var/moodledata

然后授予 www-data 用户对此目录的访问权限

sudo chown -R www-data:www-data /var/moodledata

接下来,Moodle 将询问您之前设置的数据库服务器和表。

Moodle database configuration

opensource.com

Moodle 将要求您同意许可协议,然后在创建数据库表之前进行一些预检查。 如果存在问题,Moodle 将突出显示缺少的项目或所需的配置更改。

完成剩余的一些设置选项——创建一个管理员帐户、您的站点名称和站点简称——您甚至可以在 https://moodle.net 注册您的 Moodle 安装(如果您愿意)。

恭喜! 您最终将到达您的 Moodle 站点。

Moodle main page

opensource.com

体验 Moodle

现在您已经安装了 Moodle,您可以尝试许多事情

Moodle 拥有许多优秀的资源,从 视频教程在线文档,可以帮助您开始开发服务器并放置课程内容,供其他人学习和享受。

Steve 将在今年的 LinuxFest Northwest 上发表演讲。 请参阅 项目亮点或注册 以参加。

Steve Morris
担任加拿大阿尔伯塔省卡尔加里市安布罗斯大学的信息技术总监。 在 Slackware 上磨练了他的 Linux 技术,但大部分时间都花在 Ubuntu 或 Fedora 上。 空闲时间都花在跑步上,以努力完成第一个半程马拉松。

评论已关闭。

Creative Commons License本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 许可协议进行许可。
© . All rights reserved.