如何部署Ubuntu Moodle?

Linux基础

1 基础知识

1.1 Moodle的简介

– Moodle是一个学习平台
– Moodle支持教育工作者、管理人员和学习者创建个性化学习环境
– Moodle被世界各地大学、学校、公司和企业各种组织和个人广泛使用

1.2 Moodle的开发技术

– PHP
– JavaScript
– SQL数据库

1.3 硬件需求

Disk Space: 5GB(核心代码200MB)以上配置
Processor: 1GH以上双核配置
Memory: 512M以上配置

2 最佳实践

2.1 准备工作

2.1.1 部署运行环境

如何安装配置Ubuntu nginx php-fpm环境?

如何Ubuntu部署PostgreSQL?

2.1.2 配置源代码

cd ~
wget --no-check-certificate https://packaging.moodle.org/stable500/moodle-5.0.1.tgz

以上仅是演示,如果下载异常,请使用如下地址下载,
https://docs.moodle.org/500/en/Installing_Moodle
https://github.com/moodle/moodle/tags

2.1.3 创建应用数据库

su - postgres -c psql
DROP DATABASE IF EXISTS moodle;
DROP USER IF EXISTS moodle;
CREATE USER moodle WITH PASSWORD 'moodlepwd';
CREATE DATABASE moodle WITH OWNER moodle ENCODING 'UTF8';
\q

然后,你可以使用如下账号测试登录权限,

psql -h 127.0.0.1 -U moodle

2.2 配置Moodle

2.2.1 部署软件包

cd ~
tar -xf moodle-5.0.1.tgz 
mv moodle-5.0.1 /var/www/moodle.cmdschool.org
chown www-data:www-data -R /var/www/
chmod 770 -R /var/www/

2.2.2 配置虚拟服务

vim /etc/nginx/conf.d/moodle.cmdschool.org.conf

加入如下配置,

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate wildcard.cmdschool.org-2025-nginx.crt;
    ssl_certificate_key wildcard.cmdschool.org-2025.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;

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

    location ~ ^(.+\.php)(.*)$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
    }

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ /\.(?!well-known).* {
        return 404;
    }

    location ~ (/vendor/|/node_modules/|composer\.json|/readme|/README|readme\.txt|/upgrade\.txt|db/install\.xml|/fixtures/|/behat/|phpunit\.xml|\.lock|environment\.xml) {
        deny all;
        return 404;
    }
}

server {
    listen 80;
    server_name moodle.cmdschool.org;
    return 301 https://$host$request_uri;
}

根据配置文件的需求,你需要使用如下命令部署证书文件,

cp wildcard.cmdschool.org-2025-nginx.crt /etc/httpd/wildcard.cmdschool.org-2025-nginx.crt
cp wildcard.cmdschool.org-2025.key /etc/httpd/wildcard.cmdschool.org-2025.key

证书请自行准备,笔者建议你申请权威的腾讯云证书,使用申请Nignx的格式证书即可,
https://cloud.tencent.com/product/ssl
配置修改后,你需要使用如下命令检测语法并重载使服务生效,

nginx -t
systemctl reload nginx

2.3 初始化安装

2.3.1 配置名称解析

notepad \Windows\System32\drivers\etc\hosts

你需要加入如下配置,

10.168.0.170 moodle.cmdschool.org

注:以上配置只适用于测试环境,生产环境请使用DNS进行名称解析

2.3.2 运行安装页面

https://moodle.cmdschool.org/install.php

如上图所示,
我们根据提示选择语言,范例选择“English(en)”

如上图所示,
我们根据提示选择数据目录,范例为“/data/moodledata”
你需要提前使用如下命令创建,

mkdir -p /data/moodledata
chown www-data:www-data /data/moodledata
chmod 770 -R /data/moodledata


如上图所示,
我们根据提示选择数据库连接驱动,范例选择“PostgreSQL (nvtive/pgsql)”

如上图所示,
我们根据提示配置数据库连接参数,范例根据之前创建数据库实例填写,

- Database Host = localhost
- Database name = moodle
- Database user = moodle
- Database password = moodlepwd
- Tables prefix = mdl_
- Database port = 5432
- Unix socket = 

如果遇到如下错误提示,

Error: database driver problem detected

The site administrator should verify server configuration

PHP has not been properly configured with the PGSQL extension so that it can communicate with PostgreSQL. Please check your php.ini file or recompile PHP.

你需要安装如下模块解决此错误提示,

apt install -y php-pgsql

如果遇到如下错误提示,

Moodle requires the xml PHP extension. Please install or enable the xml extension.

你需要安装如下模块解决此错误提示,

apt install -y php-xml

如果遇到如下错误提示,

Moodle requires the mbstring PHP extension. Please install or enable the mbstring extension.

你需要安装如下模块解决此错误提示,

apt install -y php-mbstring


如上图所示,
直接点击【Continue】进入下一个配置界面

如上图所示,
我们根据提示解决PHP扩展的依赖关系,你可能需要使用如下命令,

apt install -y php-curl php-zip php-gd php-intl php-soap


如上图所示,
我们根据提示修改PHP配置参数,你可能需要使用如下命令,

sed -i 's/;max_input_vars = 1000/max_input_vars = 5000/g' /etc/php/8.3/cli/php.ini
sed -i 's/;max_input_vars = 1000/max_input_vars = 5000/g' /etc/php/8.3/fpm/php.ini

参数修改后,你需要使用如下命令重载服务使配置生效,

systemctl reload php8.3-fpm.service

如上图所示,
我们根据提示单击【Reload】一直到满足系统部署所需的条件
单击【Continue】

如上图所示,
我们根据提示填写必要的参数,范例填写如下,

- Username = admin
- New Password = Admin@pwd1
- First Name = Admin
- Last Name = User
- Email address = Will@cmdschool.org

单击【Update profile】

如上图所示,
我们根据实际要求填写
单击【Save changes】

如上图所示,
我们根据要求填写注册信息
单击【Register you site】
至此,访问如下链接则可正常使用系统,
https://moodle.cmdschool.org/

参阅文档
=================

官方首页
—————
https://moodle.org/

安装指南
—————
https://docs.moodle.org/500/en/Installing_Moodle
https://docs.moodle.org/402/en/Installing_Moodle
https://docs.moodle.org/402/en/Installation
https://docs.moodle.org/500/en/PostgreSQL
文档
—————-
https://docs.moodle.org/402/en/Main_page
https://docs.moodle.org/500/en/Nginx
https://gist.github.com/jeffersonmartin/53802978e0728847854f741c3a17d6d8
https://docs.vultr.com/how-to-install-moodle-on-ubuntu-server-22-04

官方github
—————–
https://github.com/moodle

源代码下载
—————–
https://download.moodle.org/releases/latest/?_gl=1*4mc2b2*_ga*NjA0NTEwMTcxLjE3NTE4NzAxNzg.*_ga_QWYJYEY9P5*czE3NTE4NzAxNzckbzEkZzAkdDE3NTE4NzAxNzckajYwJGwwJGgw
https://github.com/moodle/moodle/tags

历史版本
—————-
https://download.moodle.org/releases/legacy/

没有评论

发表回复

Linux基础
如何允许root登陆freeBSD?

1 前言 一个问题,一篇文章,一出故事。 笔者想使用freeBSD打造一款路由器,之前已经整理了如下 …

Linux基础
如何完成freeBSD的基本设置?

1 前言 一个问题,一篇文章,一出故事。 笔者想使用freeBSD打造一款路由器,于是整理此文。 本 …

Linux基础
如何安装配置openVSwitch?

1 前言 一个问题,一篇文章,一出故事。 本章将总结如何安装openVSwitch。 2 最佳实践 …