如何在CentOS 7上安装Moodle 3.3.x
Anne655
・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设置虚拟主机
注意:记住用你自己的值替换ServerAdmin
,ServerName
,ServerAlias
,Errorlog
和CustomLog
的值。
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网站,使用前面设置的管理员和密码的用户名登录。
这是我们的教程,感谢阅读。