如何部署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 部署运行环境

如何部署Oracle Linux 9.x LAMP环境?

2.1.2 配置源代码

cd ~
wget https://codeload.github.com/moodle/moodle/tar.gz/refs/tags/v4.2.1 -O moodle-4.2.1.tar.gz

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

2.1.3 创建应用数据库

mysql -u root -p
create database moodle character set utf8;
create user "moodle"@"localhost" identified with mysql_native_password BY 'moodlepwd';
grant all privileges on `moodle`.* to `moodle`@`localhost`;
flush privileges;
show grants for moodle@'localhost';

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

mysql -umoodle -pmoodlepwd

2.2 配置Moodle

2.2.1 部署软件包

cd ~
tar -xf moodle-4.2.1.tar.gz
mv moodle-4.2.1 /var/www/moodle.cmdschool.org
chown apache:apache -R /var/www/moodle.cmdschool.org
chmod 770 -R /var/www/moodle.cmdschool.org

2.2.2 配置虚拟服务

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

加入如下配置,

<VirtualHost *:443>
        DocumentRoot /var/www/moodle.cmdschool.org
        ServerName moodle.cmdschool.org

        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
        SSLCertificateFile /etc/httpd/moodle.cmdschool.org.crt
        SSLCertificateKeyFile /etc/httpd/moodle.cmdschool.org.key
        SSLCertificateChainFile /etc/httpd/root_bundle.crt
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/moodle.cmdschool.org
        ServerName moodle.cmdschool.org
        RewriteEngine on
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>

<Directory /var/www/moodle.cmdschool.org>
  Require all granted
</Directory>

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

cp moodle.cmdschool.org.crt /etc/httpd/moodle.cmdschool.org.crt
cp moodle.cmdschool.org.key /etc/httpd/moodle.cmdschool.org.key
cp root_bundle.crt /etc/httpd/root_bundle.crt

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

httpd -t
systemctl reload httpd

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 apache:apache -R /data/moodledata
chmod 770 -R /data/moodledata


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

如上图所示,
我们根据提示配置数据库连接参数,范例根据之前创建数据库实例填写,
– Database Host = localhost
– Database name = moodle
– Database user = moodel
– Database password = moodlepwd
– Tables prefix = mdl_
– Database port = 3306
– Unix socket = /var/lib/mysql/mysql.sock

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

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

dnf install -y php-pecl-zip php-gd php-intl php-sodium php-soap


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

vim /etc/php.ini

修改如下参数,

max_input_vars = 5000

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

systemctl reload php-fpm

如上图所示,
我们根据提示单击【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/402/en/Installing_Moodle
https://docs.moodle.org/402/en/Installation

文档
—————-
https://docs.moodle.org/402/en/Main_page

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

源代码下载
—————–
https://github.com/moodle/moodle/tags

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

没有评论

发表回复

Linux基础
Linux下的常用性能分析工具?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要整理常用的Linux分析工具,于是整理此文。 …

Linux基础
如何排查硬盘读写慢问题?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要排查硬盘慢引起的问题,于是整理此文。 2 最佳 …

Linux基础
如何tcpdump实时测量网络吞吐量?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要实时测量网络的吞吐量,于是整理此文。 2 最佳 …