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

・13 分钟阅读

使用不同的系统?

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

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

前提条件

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

步骤1更新系统

使用sudo用户登录到你的服务器以安装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向访问者列出网络目录文件:


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的一个降级,我们将安装最新的稳定版本MariaDB 10.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密码,而不是下面示例中的:

  • 输入root (输入为无)的当前密码: 按下Enter按钮即可
  • 设置root密码[Y/n] :Y
  • 新密码:your-root-password
  • 输入新密码:your-root-password
  • 删除匿名用户[Y/n] :Y
  • 不允许远程登录root[Y/n] :? Y
  • 删除测试数据库并访问它? [Y/n] :Y
  • 现在重新加载权限表[Y/n] :? Y
3.3为Moodle创建一个MariaDB数据库

root的形式登录到MySQL shell :


mysql -u root -p

键入提示时设置的MariaDB root密码。

在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扩展

PHP也是Moodle所必需的,为了获得更好的性能,你可以安装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 Program Files

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

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


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 root目录的外部:


sudo mkdir /var/moodledata
sudo chown -R apache:apache /var/moodledata
sudo chmod -R 755 /var/moodledata

5.3为Moodle设置虚拟主机

注意:记住用你自己的值替换ServerAdminServerNameServerAliasErrorlogCustomLog的值。


cat <<EOF | sudo tee -a /etc/httpd/conf.d/moodle.conf
<VirtualHost *:80>
ServerAdmin admin@example.com
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

Centos7服务器实例上SELinux在默认情况下是禁用的,这可能不太安全但更容易配置安全策略,如果你希望保持这种状态,只需忽略本节中的说明,然后转到下一节。

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

显示SELinux的状态:

 
sestatus

 

在CentOS 7Minimal 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 ()
: admin@example.com
-------------------------------------------------------------------------------
== 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作业,以便使Moodle正常运行:


sudo crontab -u apache -e

使用以下方法填充文件:


* * * * * /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

最后,将你的网页浏览器指向http://203.0.113.1以访问Moodle网站,使用前面设置的管理员和密码的用户名登录。

这是我们的教程,感谢阅读。

Anne655 profile image