如何在CentOS 7上安装Moodle 3.3.x

Moodle是一个开源学习平台或课程管理系统(CMS)-一种免费的开源软件包,旨在帮助教育工作者创建有效的在线课程。

本教程将介绍在CentOS 7服务器上安装Moodle的最新稳定版本Moodle 3.3.2+的过程。

先决条件

  • 具有至少2GB RAM(建议4GB或更多)的CentOS 7 x64服​​务器实例。
  • 一个sudo的用户
  • EPEL yum存储库。

步骤1:更新系统

使用sudo用户通过SSH登录到服务器,以安装epel,更新系统并重新启动以应用更新。

sudo yum install epel-release -y
sudo yum update -y && sudo shutdown -r now

步骤2:安装Apache 2.4.x

sudo yum install httpd -y

在生产中,应该删除预设的Apache欢迎页面:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

阻止Apache将Web目录文件列出给访问者:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

启动Apache服务,并使其在启动时自动启动

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

步骤3:安装MariaDB 10.2.x

Moodle将所有数据存储到MySQL数据库。MariaDB是MySQL的直接替代品,我们将安装最新的稳定版本MariaDB10.2.x。

3.1安装并启动MariaDB 10.2.x
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
3.2确保MariaDB的安装
sudo /usr/bin/mysql_secure_installation

回答以下问题,并确保使用强健的MariaDB根密码,而不是下面显示的示例:

  • 输入root的当前密码(不输入密码):只需按下Enter按钮
  • 设置root密码?[是/否]:Y
  • 新密码: your-root-password
  • 重新输入新的密码: your-root-password
  • 删除匿名用户?[是/否]:Y
  • 禁止远程root登录?[是/否]:Y
  • 删除测试数据库并访问它?[是/否]:Y
  • 现在重新加载特权表?[是/否]:Y
3.3为Moodle创建MariaDB数据库

登录到MySQL shell root

mysql -u root -p

出现提示时,键入您先前设置的MariaDB根密码。

在MySQL Shell中,创建数据库moodle,数据库用户moodleuser和数据库用户的密码yourpassword,如下所示。

注意:为了安全起见,应将上述示例密码替换为yourpassword您自己的密码。

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

步骤4:安装PHP 7.1和必要的PHP 7.1扩展

Moodle也需要PHP。为了获得更好的性能,您可以如下安装PHP 7.1和几个PHP 7.1扩展:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install mod_php71w php71w-common php71w-mbstring php71w-xmlrpc php71w-soap php71w-gd php71w-xml php71w-intl php71w-mysqlnd php71w-cli php71w-mcrypt php71w-ldap -y

步骤5:安装Moodle 3.3.2+

5.1准备Moodle程序文件

在撰写本文时,Moodle的最新稳定版本是Moodle 3.3.2+Moodle 3.3.2+如下下载并解压缩存档:

注意:您始终可以从Moodle的官方下载页面获得最新稳定版本的下载URL 。

cd
yum install -y wget
wget https://download.moodle.org/download.php/direct/stable33/moodle-latest-33.tgz
sudo tar -zxvf moodle-latest-33.tgz -C /var/www/html
sudo chown -R root:root /var/www/html/moodle
5.2为Moodle设置专用的数据目录

为了安全起见,此数据目录应位于Web根目录之外:

sudo mkdir /var/moodledata
sudo chown -R apache:apache /var/moodledata
sudo chmod -R 755 /var/moodledata
5.3为Moodle设置虚拟主机

注意:请记住,以取代的价值ServerAdminServerNameServerAliasErrorlog,并CustomLog用自己的人。

cat <<EOF | sudo tee -a /etc/httpd/conf.d/moodle.conf
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/moodle/
ServerName moodle.example.com
ServerAlias www.moodle.example.com
<Directory /var/www/html/moodle/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/httpd/moodle.example.com-error_log
CustomLog /var/log/httpd/moodle.example.com-access_log common
</VirtualHost>
EOF
5.4设置SELinux

在我使用的Vultr CentOS 7服务器实例上,默认情况下SELinux被禁用。这可能是不太安全但较容易的安全策略。如果您处在相同的条件下并希望保持这种状态,则只需忽略本节中的说明,然后转到下一节。

如果使用在强制模式下启用了SELinux的服务器实例,则需要按以下步骤设置SELinux。

显示SELinux的状态:

sestatus

在新的CentOS 7 Minimal x64 1708服务器实例上,输出为:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

安装所需的SELinux管理工具:

sudo yum install -y policycoreutils policycoreutils-python 

设置Moodle文件的SELinux上下文如下:

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/moodle(/.*)?'
sudo restorecon -Rv '/var/www/html/moodle/'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/moodledata(/.*)?'
sudo restorecon -Rv '/var/moodledata/'
5.5从CLI安装Moodle
sudo /usr/bin/php /var/www/html/moodle/admin/cli/install.php

出现提示时,根据设置的特定设置提供必要的信息。摘要信息如下:

== Choose a language ==
en - English (en)
? - Available language packs
type value, press Enter to use default value (en)
: en
-------------------------------------------------------------------------------
== Data directories permission ==
type value, press Enter to use default value (2777)
: 2777
-------------------------------------------------------------------------------
== Web address ==
type value
: http://203.0.113.1
-------------------------------------------------------------------------------
== Data directory ==
type value, press Enter to use default value (/var/www/html/moodledata)
: /var/moodledata
-------------------------------------------------------------------------------
== Choose database driver ==
 mysqli
 mariadb
type value, press Enter to use default value (mysqli)
: mariadb
-------------------------------------------------------------------------------
== Database host ==
type value, press Enter to use default value (localhost)
: localhost
-------------------------------------------------------------------------------
== Database name ==
type value, press Enter to use default value (moodle)
: moodle
-------------------------------------------------------------------------------
== Tables prefix ==
type value, press Enter to use default value (mdl_)
: mdl_
-------------------------------------------------------------------------------
== Database port ==
type value, press Enter to use default value ()
:
-------------------------------------------------------------------------------
== Unix socket ==
type value, press Enter to use default value ()
:
-------------------------------------------------------------------------------
== Database user ==
type value, press Enter to use default value (root)
: moodleuser
-------------------------------------------------------------------------------
== Database password ==
type value
: yourpassword
-------------------------------------------------------------------------------
== Full site name ==
type value
: My Moodle Site
-------------------------------------------------------------------------------
== Short name for site (eg single word) ==
type value
: moodle
-------------------------------------------------------------------------------
== Admin account username ==
type value, press Enter to use default value (admin)
: admin
-------------------------------------------------------------------------------
== New admin user password ==
type value
: your-admin-password
-------------------------------------------------------------------------------
== New admin user email address ==
type value, press Enter to use default value ()
: [email protected]
-------------------------------------------------------------------------------
== Upgrade key (leave empty to not set it) ==
type value
:
-------------------------------------------------------------------------------
Have you read these conditions and understood them?
type y (means yes) or n (means no)
: y
5.6修改权限 /var/www/html/config.php

成功安装Moodle之后,您需要apache通过将权限修改/var/www/html/config.php为以下内容来允许用户读取Moodle配置:

sudo chmod o+r /var/www/html/moodle/config.php
5.7设置cron作业

此外,您需要设置一个cron作业以保持Moodle正常运行:

sudo crontab -u apache -e

用以下命令填充cron文件:

* * * * *    /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null

保存并退出:

:wq!
5.8重新启动Apache

重新启动Apache以应用所有修改:

sudo systemctl restart httpd.service
5.9修改防火墙规则以允许HTTP访问
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

最后,将您的Web浏览器指向http://203.0.113.1Moodle网站。使用您之前设置的管理员用户名和密码登录。

到此结束我们的教程。谢谢阅读。



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息