欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 2478|回复: 5

[网站建设] 腾讯云搭建Moodle网络课程平台

[复制链接]

1

主题

0

好友

100

积分

小白[LV1]

Rank: 1

云币
350
威望
100
发表于 2017-5-14 12:50:59 |显示全部楼层
起因及原由:善良体贴又美丽大方的Miss Li 老师给我找了个活干,说让我帮某学院的某老师打理下Moodle平台。我当时一脸懵逼,Moodle?啥玩意儿啊?因为(google你懂的)所以baidu了一下,得出:
Moodle(魔灯)介绍:
Moodle(Modular Object Oriented Dynamic Learning Environment)是“面向对象的模块化动态学习环境”的首字母缩写。为了促进Moodle在我国教育中的使用更加本土化,黎加厚教授给Moodle翻译了一个中文名称“魔灯”。正如Google的中文名“谷歌”,蕴含“丰收之歌”的含义一样,“魔灯”则蕴含“教师是课堂上的真正魔法师,而Moodle则是他手中的那盏阿拉丁神灯”(取自老幼皆知的《一千零一夜》传说故事)。
Moodle主要功能大致分为网站管理功能、学习管理功能、课程管理三大部分,其中课程管理中有灵活、丰富的课程活动:论坛、测验、资源、投票、问卷调查、作业、聊天室、Blog和Wiki等。Moodle拥有多种语言版本,其中包括中文简体和繁体版。
Moodle是目前世界上最流行的课程管理系统(CMS)之一,由于它是开源软件、免费、设计的教育理念先进,其开放的理念使得全世界的老师和爱好者都可以参与到系统的设计开发中,其功能愈来愈强大,成为国际上首选的能够替代Blackboard的适合中小学基础教育选用的学习环境。(Blackboard是一款功能和服务都很强大的优秀的商品化课程管理系统软件,目前正在国内的许多高校推广。)
于是便将注意力转移到moodle上来了。发现其实是个开源的CMS,用于教育和学习领域。当时折腾了好一番,才搭建了一个测试的moodle。
好吧,下面直入正题:使用腾讯云云主机搭建最新版本的MoodleMoodle 3.2.3+):(距最新版本发布的时间仅2天)


0x01:准备工作:
系统选择
其实在之前的本地搭建过程中,最悲催的事情就是Moodle的系统环境选择了,曾经尝试过单独使用XAMPP的集成环境来搭建,没想到各种问题,特别是PHP扩展的支持和Mysql版本的支持,很头疼呀。这个小玩意怎么生存的环境怎么这么苛刻。
腾讯云云主机镜像选择:


操作系统:CentOS 7.1 64 位
PHP 运行环境(CentOS7.1 64 位 Apache | PHP 多版本)V1.0
软件版本详细:
l Apache2.4.18
l PHP5.3.29l PHP5.4.45l PHP5.5.33l PHP5.6.19l PHP7.0.4
l MySQL5.6.29
l Redis3.0.7
l Memcached1.4.25
l Jemalloc4.1.0
l Pure-FTPd1.0.42
l phpMyAdmin4.4.15.5

功能亮点:
1. 基于腾讯云源码安装,安全、稳定、高效!
2. 源码编译安装,细节安全优化,纯命令行,占用系统资源低
3. jemalloc 优化 MySQL 内存管理;
4. 支持 PHP5.3、5.4、5.5、5.6 和 PHP7.0 版本自由切换
5. 交互添加 Apache 虚拟主机,方便快捷
6. 菜单式 FTP 账号管理脚本,轻松建立 ftp 虚拟用户
7. 提供在线 MySQL、PHP、Redis、phpMyAdmin 升级脚本
8. 提供本地备份和远程备份(服务器之间 rsync)
用此镜像的优点:
包含OneinStack Linux+Nginx/Tengine+MySQL/MariaDB/Percona+PHP+Pureftpd+phpMyAdmin+redis+memcached+jemalloc/tcmalloc. 脚本中用到的软件包大多最新稳定版本。

其他准备:
主域名一个(这个你总得有吧,提前解析到云主机上)
FTP管理工具(FlashFXP)
Linux终端命令工具(Xshell 5)
最后准备好板凳瓜子西瓜奶茶,边嗑边吃边喝边看我表演~

0x02:基础环境配置:
配置之前进行参数优化:
cd /root/oneinstack./optimize.sh

首先我们看到最新版本的配置要求:

PHP:
版本选择:php5.6
./change_php_version.sh
安装路径:/usr/local/php56(这里太坑了,一般都以为是/usr/local/php,我也是觉得奇怪才寻找到的)

MySQL:
版本选择:默认版本MySQL5.6.29即可。
安装路径:/usr/local/mysql
默认环境配置文件路径:/etc/my.cnf
MySQL配置:
查看和修改数据库密码:
grep dbrootpwd options.conf./reset_db_root_password.sh

创建一个数据库moodle:
create database moodle;show databases;exit

授权用户并开启远程连接:
首先要在腾讯云控制端-->安全组-->添加入站规则-->设置3306端口开放
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT       //添加允许3306端口访问service iptables save                                                               //保存iptables规则
数据库用户授权远程登录:
grant all privileges on moodle.* to linuxeye@'%' identified by '123456';flush privileges;

远程连接,我使用的是phpstudy里面的MySQL-Front工具,数据库管理或者远程连接很方便,推荐大家使用!

FTP创建账户和连接:
cd /root/oneinstack./pureftpd_vhost.sh

0x03:真正部署Moodle:
创建虚拟目录(网站目录):

得到网站根目录:/data/wwwroot/www.scseo.org
linux中下载moode最新版本,并解压到网站目录下:
wget https://download.moodle.org/stable32/moodle-latest-32.tgztar -zxvf moodle-latest-32.tgz -C /data/wwwroot/www.scseo.org赋予目录权限:
chown -R www.www /data/wwwroot/


0x04:问题出现:



0x05:问题解决:
问题1:
Your database has tables using Antelope as the file format. Full UTF-8 support in MySQL and MariaDB requires the Barracuda file format. Please convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.
解决方案:由描述中,我们可以看出,Antelope和Barracuda是MySQL中常用的两种文件格式,此处需要将Antelope全部转换为Barracuda格式。
MySQL [(none)]> show variables like "%innodb_file%";+--------------------------+----------+| Variable_name | Value |+--------------------------+----------+| innodb_file_format | Antelope || innodb_file_format_check | ON || innodb_file_format_max | Antelope || innodb_file_per_table | ON |+--------------------------+----------+4 rows in set (0.00 sec)MySQL [(none)]> SET GLOBAL innodb_file_format = barracuda;Query OK, 0 rows affected (0.02 sec)MySQL [(none)]> SET GLOBAL innodb_file_format_max = barracuda;Query OK, 0 rows affected (0.05 sec)MySQL [(none)]> show variables like "%innodb_file%";+--------------------------+-----------+| Variable_name | Value |+--------------------------+-----------+| innodb_file_format | Barracuda || innodb_file_format_check | ON || innodb_file_format_max | Barracuda || innodb_file_per_table | ON |+--------------------------+-----------+4 rows in set (0.00 sec)MySQL [(none)]>此时我们可以看见问题一已经完美解决。

问题2:
For full support of UTF-8 both MySQL and MariaDB require you to change your MySQL setting 'innodb_large_prefix' to 'ON'. See the documentation for further details.
解决方案:按报错的提示,将innodb_large_prefix设置为On,下面提供最简便的方法,设置全局变量GLOBAL innodb_large_prefix=on。
MySQL [(none)]> SET GLOBAL innodb_large_prefix=on;Query OK, 0 rows affected (0.00 sec)MySQL [(none)]>另一种方法可以去更改MySQL的配置文件/etc/my.cnf,在my.cnf中加入innodb_large_prefix=on,完美解决错误提示。


之后的设置网站内容过程就不赘述了,附上一张以前搭建的小Moodle截图。


0x06:经验总结:
个人觉得moodle这个cms并不是最佳选择,无论是环境部署还是网站运营,都有特殊性和限制性。想要做出好的Moodle网站,无论是后台的运营,还是前台的美工设计,无不花尽心思耗费人力资源。吾等吃瓜群众只能远观之,外行折腾这个玩意耗费时间,宝宝心里真苦,宝宝还是坚强的忍了。另外对于网上查找资料,百度的大部分都是几年前的陈年旧货,很多都不再适用。强烈推荐去官方论坛寻找答案,虽然是英文的,英文不好的可以使用有道翻译。
对于moodle 的二次开发的还有巨大空间,毕竟国内的Moodle只有部分学校使用,并未达到广泛普及。
在安全方面,如果各位朋友们谁有闲暇的时间,可以尝试着对moodle进行白盒测试,代码审计,或许会有许多重大发现的!我这个小白就暂且放放,继续打基础。
0x07:最后的祝愿:
希望想搭建Moodle平台的同学看完此文可以成功搭建好一个Moodle平台,更多的Moodle相关技术,还需要加强经验积累。小弟不才,就在这里终止Moodle生涯了,不再折腾咯。在这里向Moodle告别,有缘再见!


Blog:www.storysec.com

有问题欢迎来交流!











35

主题

4

好友

8964

积分

超级版主

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

云币
13687
威望
8964
发表于 2017-5-31 21:39:32 |显示全部楼层
谢谢楼主的分享哦~
回复

使用道具 举报

0

主题

0

好友

740

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
573
威望
740
发表于 2017-6-26 14:10:34 |显示全部楼层
感谢楼主大大分享!
回复

使用道具 举报

25

主题

0

好友

2010

积分

攻城师[LV3]

Rank: 3Rank: 3Rank: 3

云币
640
威望
2010
发表于 2017-6-30 12:07:30 |显示全部楼层
谢谢楼主的分享哦~
回复

使用道具 举报

9

主题

0

好友

770

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1630
威望
770
发表于 2017-7-1 22:25:01 |显示全部楼层
图片挂了,!!!
回复

使用道具 举报

0

主题

0

好友

95

积分

小白[LV1]

Rank: 1

云币
345
威望
95
发表于 2017-8-24 19:56:07 |显示全部楼层
无法发送注册邮件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-7-17 19:54 , Processed in 1.436766 second(s), 29 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部