Moodle是一个流行的开源学习管理系统(LMS),被全球教育机构广泛用于创建在线课程、管理内容和促进协作学习。在Ubuntu上运行Moodle是一种常见选择,因为Ubuntu具有稳定性、安全性以及对广泛软件包的支持。安装过程涉及Apache或Nginx作为Web服务器、MySQL或PostgreSQL作为数据库、PHP作为脚本语言,这些在Ubuntu上都有很好的支持。

本教程将介绍如何在Ubuntu 24.04服务器上安装Moodle。我们将使用LAMP Stack(Linux、Apache、MariaDB和PHP)安装Moodle,然后通过UFW防火墙和Certbot + Let’s Encrypt的HTTPS来保护Moodle。

前提条件

在开始之前,请确保具备以下条件:

- 一台Ubuntu 24.04服务器
- 一个具有管理员权限的非non-root用户
- 一个指向服务器IP地址的域名
- UFW防火墙已启用并运行

安装依赖

Moodle是用PHP编写的开源学习平台。要安装Moodle,需要Apache/Nginx、MySQL/MariaDB/PostgreSQL和PHP。本节将在Ubuntu上安装LAMP Stack。

首先,运行以下命令更新Ubuntu软件包索引:

sudo apt update

Ubuntu 24.04安装Moodle LMS教程

然后执行以下命令安装LAMP Stack(Apache、MariaDB和PHP)依赖。输入‘Y’确认安装:

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

Ubuntu 24.04安装Moodle LMS教程

安装完成后,使用以下命令检查Apache服务状态:

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Ubuntu 24.04安装Moodle LMS教程

使用以下命令检查MariaDB数据库服务器状态,可以看到MariaDB服务器正在运行:

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Ubuntu 24.04安装Moodle LMS教程

最后,使用以下命令检查PHP版本和已启用的扩展:

php -v  
php -m

可以看到Ubuntu服务器上安装了PHP 8.3。

Ubuntu 24.04安装Moodle LMS教程

配置MariaDB服务器

安装依赖后,需要将默认的MariaDB存储引擎更改为‘InnoDB’,这是Moodle所要求的。通过编辑MariaDB服务器配置来完成此操作,然后使用mariadb_secure_installation工具保护MariaDB服务器。

使用vim编辑器打开MariaDB服务器配置文件/etc/mysql/mariadb.conf.d/50-server.cnf:

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

在[mysqld]部分下添加以下配置,将默认存储引擎更改为innodb:

innodb_file_format = Barracuda   
default_storage_engine = innodb  
innodb_large_prefix = 1  
innodb_file_per_table = 1

保存文件并退出编辑器。

运行以下systemctl命令重启MariaDB服务器以应用更改:

sudo systemctl restart mariadb

运行以下mariadb_secure_installation命令设置MariaDB root用户并保护部署:

sudo mariadb_secure_installation

在此过程中,会询问以下问题:

- 对于没有root密码的默认MariaDB服务器安装,在询问密码时按ENTER
- MariaDB root用户的本地认证默认已保护,在询问是否更改为unix_socket认证方式时输入n
- 输入Y创建新的MariaDB root密码,然后输入强密码并重复
- 在询问是否禁用MariaDB root用户远程认证时输入Y
- 默认MariaDB服务器安装包含test数据库并允许匿名用户访问,这两项都输入Y以删除
- 最后输入Y确认重新加载表权限

创建数据库和用户

配置完MariaDB服务器后,通过mariadb客户端创建新的数据库和用户。

使用以下命令登录MariaDB服务器,输入MariaDB root密码:

sudo mariadb -u root -p

运行以下查询创建新数据庺moodle和用户moodle,请务必将密码更改为你自己的信息:

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;  
QUIT

Ubuntu 24.04安装Moodle LMS教程

配置PHP

本节将编辑PHP配置文件php.ini并更改Moodle所需的一些默认值。

使用nano编辑器打开PHP配置文件/etc/php/8.3/apache2/php.ini:

sudo nano /etc/php/8.3/apache2/php.ini

将默认配置更改为以下值,请根据需要调整memory_limit和date_timezone选项:

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

完成后保存文件并退出。

运行以下命令重启Apache Web服务器以应用PHP更改:

sudo systemctl restart apache2

下载Moodle源代码

此时已安装并配置了LAMP Stack。接下来下载Moodle源代码并配置Moodle安装目录。

进入/var/www目录,使用wget命令下载Moodle源代码。请访问Moodle下载页面获取最新版本链接,本教程下载最新的稳定版Moodle 40.4:

cd /var/www  
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz

下载完成后,使用tar命令解压,Moodle源代码将在/var/www/moodle目录中:

tar xvf moodle-latest-404.tgz

执行以下命令创建新的数据目录/var/www/moodledata,将Moodle目录的所有权更改为www-data用户,并确保Moodle目录和数据目录可被www-data用户写入:

sudo mkdir -p /var/www/moodledata  
sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

设置Apache虚拟主机

Moodle下载完成后,将创建新的Apache虚拟主机文件来运行Moodle。请确保域名已准备好并解析到Ubuntu服务器IP地址。

首先运行以下a2enmod命令启用rewrite模块:

sudo a2enmod rewrite

使用nano编辑器创建新的Apache虚拟主机文件/etc/apache2/sites-available/moodle.conf:

sudo nano /etc/apache2/sites-available/moodle.conf

插入以下配置,请将域名更改为你自己的信息:

  
 DocumentRoot /var/www/moodle/  
 ServerName moodle.howtoforge.local  
 ServerAdmin admin@example.com  
   
   
 Options +FollowSymlinks  
 AllowOverride All  
 Require all granted  
   
   
 ErrorLog /var/log/apache2/moodle_error.log  
 CustomLog /var/log/apache2/moodle_access.log combined  

保存文件并退出编辑器。

执行以下命令启用moodle.conf文件并验证Apache语法,如果语法正确将显示Syntax is OK:

sudo a2ensite moodle.conf  
sudo apachectl configtest

运行以下systemctl命令重启Apache以应用更改:

sudo systemctl restart apache2

使用UFW保护Moodle

本步将通过UFW(简单防火墙)开放HTTP和HTTPS协议。确保在开始之前UFW已运行。

运行以下命令在UFW上启用Apache Full配置文件,这将允许HTTP和HTTPS流量:

sudo ufw allow 'Apache Full'

使用以下命令查看UFW上已启用的规则列表,可以看到Apache Full配置文件已启用:

sudo ufw status

使用HTTPS保护Moodle

除防火墙外,还将生成SSL/TLS证书并通过HTTPS保护Moodle。本节将通过Certbot和Let’s Encrypt为Moodle实现HTTPS。如果是本地安装Moodle,可以跳过此步。

安装certbot和python3-certbot-apache包:

sudo apt install certbot python3-certbot-apache -y

安装完成后,执行以下certbot命令为Moodle生成SSL/TLS证书,请将域名和邮箱地址更改为你自己的信息:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email kyrie@howtoforge.local -d moodle.howtoforge.local

过程完成后,SSL证书将位于/etc/letsencrypt/live/domain.com目录,Moodle安装将自动通过HTTPS保护。

安装Moodle

访问你的Moodle域名(如https://moodle.howtoforge.local/),将看到安装向导。

选择默认语言,然后点击“下一步”。

Ubuntu 24.04安装Moodle LMS教程

输入Moodle的数据目录/var/www/moodledata。

Ubuntu 24.04安装Moodle LMS教程

选择MariaDB作为数据库驱动。

Ubuntu 24.04安装Moodle LMS教程

输入MariaDB数据库和用户的详细信息。

Ubuntu 24.04安装Moodle LMS教程

点击“继续”确认版权声明。

Ubuntu 24.04安装Moodle LMS教程

在服务器检查部分,确保你的环境已准备就绪。

Ubuntu 24.04安装Moodle LMS教程

现在Moodle安装将开始处理。

Ubuntu 24.04安装Moodle LMS教程

安装完成后,输入Moodle的新管理员用户名、邮箱和密码。

Ubuntu 24.04安装Moodle LMS教程

现在你将看到Moodle仪表盘:

Ubuntu 24.04安装Moodle LMS教程

总结

恭喜!你已完成在Ubuntu 24.04服务器上安装Moodle。你已在Ubuntu上使用LAMP Stack(Linux、Apache、MariaDB和PHP)安装了Moodle 40.4,并通过UFW防火墙和Certbot + Let’s Encrypt的HTTPS保护了Moodle。