Linux系统下Moodle2学习管理平台的搭建与优化
2013-04-03简子洋
简子洋
Moodle(魔灯)作为目前最流行的学习管理平台之一,自其创始人Martin Dougiamas于2002年提出以来,由于先进的建构主义理念和免费、开源等因素,在世界范围内都得到了广泛的应用。经过10多年的发展,Moodle一直保持着更新,至截稿时止,Moodle已升级到2.4.2版本。相较以前的版本,Moodle2在功能、界面和易用性等方面都有了较大的改进,但是由于Moodle是遵循GPL的开源软件,技术支持并不完善,为适应不同环境和更有效地利用资源,通常需要根据实际情况做相应的配置,由于配置内容多样且复杂,一直以来,许多教学人员对搭建Moodle学习管理平台望而却步。
在国内,有不少开源爱好者制作了Moodle一键安装包、Windows环境运行包等简单易用的软件,为Moodle的普及作出了贡献,但是在负载、稳定性、安全性等方面都有较大的缺陷。笔者对Moodle的搭建和配置做了较为细致的研究,并针对目前Moodle2版本的最新情况,提供了一套基于Linux系统的Moodle2学习管理平台搭建的技术方案和优化方法,希望能帮助广大教师高质量地搭建Moodle学习管理平台。
一、硬件需求
与普通的Web应用比较,Moodle学习管理平台对服务器的硬件要求较高,需要对具体情况进行分析与调查,结合开放的应用服务项目,预计网络课程的数量,估算最高用户数和同时在线用户数,依此确定服务器的主要硬件CPU、内存、磁盘的需求。
根据笔者实际应用情况,以下参数适合500~1000 的并发连接数。服务器CPU的主要衡量参数是主频,大约需要2颗主频大于2 GHz的CPU才可顺畅运行,建议使用双核或四核CPU。内存需要为每个连接预备1~3 MB,因此最好在3 GB以上。硬盘主要考虑的是安全性和读写速度,目前绝大多数服务器硬盘都采用阵列技术,根据控制器和硬盘的不同会有多种阵列方式,如果资金情况允许建议采用SCSI硬盘和SAS阵列技术。
二、系统的选择与安装
虽然Moodle也可以运行于Windows环境,但是由于Moodle本就是基于Linux开发的,在稳定性上具有先天优势,另外Linux系统的性能和安全性也更优越,并且自由软件成本更低、可信度更高,因此笔者推荐使用Linux作为Moodle的运行系统。
目前可用的Linux核心系统较多,例如CentOS,Ubuntu,Gentoo,Redhat,FreeBSD等,综合统一性、稳定性、持续更新能力、较多技术支持和易上手操作等一般用户的需求, Ubuntu是较好的选择。 Ubuntu系统包含桌面版和服务器版,支持32位和64位架构,每6个月发布一个新版本,至截稿时的最新版本是12.10,长期支持稳定版是12.04.2 LTS,本文以12.04.2 server版为默认环境,对于初级用户可以使用桌面版。
从Ubuntu官方网站http://www.ubuntu.org.cn上免费下载 Ubuntu 12.04.2 LTS刻成光盘,通过引导进行安装即可,与安装Windows类似,详细安装过程可参考中文支持社区http://forum.ubuntu.org.cn上面的教程。
在安装时要注意记录设置好的IP地址、用户名、密码等,登录后用sudo passwd root命令设置root密码后用logout命令注销,重新使用root用户登录,本文默认环境均为root权限。
由于Ubuntu附带的软件并不能满足Moodle学习管理平台的需要,因此后面会根据需要再逐一进行安装,在安装系统时的软件选择,仅选择第一项OpenSSH server远程管理服务即可。
三、运行环境的选择与安装
Moodle是基于PHP脚本语言编写的,其基本运行环境包括:安装Web服务器(Apache,Nginx,IIS等)、PHP(4.0以上版本)和MySQL SERVER[1]。目前常见的服务器架构有LAMP(Linux+Apache+MySQL+PHP),LNMP(Linux+Nginx+MySQL+PHP),LLMP(Linux+Lighttpd+MySQL+PHP )以及LANMP(Lin ux+Nginx+Apache+MySQL+PHP)等组合。Nginx具有稳定、功能丰富、安装配置简单等优点,相比 Apache,Nginx 使用的资源更少,支持更多的并发连接,效率更高[2]。并且LNMP现有的一键安装包比其他组合更完善、更方便,因此笔者推荐使用LNMP这种运行环境来搭建Moodle2学习管理平台。
安装过程如下:
1.下载完整版,执行命令:wget -c http://soft.vpser.net/lnmp/lnmp0.9-full.tar.gz
2.解压缩,执行命令:tar zxvf lnmp0.9-full.tar.gz
3.进入文件夹:cd lnmp0.9-full,执行安装命令:./ubuntu.sh
(1)输入要绑定的域名;
(2)输入要设置的MySQL的root用户名和密码;
(3)安装InnoDB数据库引擎,安装输入 y回车,不安装则直接回车;
(4)LNMP脚本自动安装编译Nginx,MySQL,PHP,phpMyAdmin,Zend Optimizer这几个软件。
一段时间过后,如果显示如图1所示页面,说明安装成功。在客户端浏览器输入服务器IP地址会显示:恭喜,LNMP一键安装包安装成功!
图1 LNMP安装成功页面
4.升级PHP
由于LNMP0.9的PHP是5.2.17版本,而 Moodle2的最低要求是5.3.2,因此要进行版本升级。在lnmp0.9-full目录中执行升级命令:./upgrade_php.sh 按提示输入php版本号,如5.4.11。升级完成后通过客户端访问:http://服务器IP/phpinfo.php,可以看到PHP相关信息。
LNMP所包含的组件较多,可以根据需要有选择地进行安装。它有较好的集成环境,能直接使用LNMP命令进行统一管理,更为详细的内容可参考其官方网站http://lnmp.org。
四、Moodle2学习管理平台的安装
对于Moodle的安装,比较常见的是通过客户端远程登录进行安装包上传的方法,笔者通过实践发现,通过命令才是最简便的方法,直接运行命令:
1.下载:wget -c http://ncu.dl.sourceforge.net/project/moodle/Moodle/stable24/moodle-2.4.2.tgz
2.解压到网站目录/home/wwwroot中:tar zxvf moodle-2.4.2.tgz -C /home/wwwroot/
3.打开客户端浏览器开始安装:http://服务器IP/moodle/install.php,按照步骤完成安装
(1)选择语言:简体中文;
(2)确认路径:如果提示无法建立数据目录,则需要在Ubuntu中手动建立和赋权,执行以下命令:
mkdir /home/moodledata
chmod 777 /home/moodledata
chmod 777 /home/wwwroot/moodle
(3)设置与前面LNMP一致的MYSQL用户名和密码;
(4)设置Moodle超级用户;
(5)设置网站信息,完成安装。
安装完成显示如图2所示页面,说明Moodle安装成功,可以开始建立课程。
图2 Moodle安装成功页面
Moodle2的安装采用引导方式,正常情况下只要一直按“下一步”就能顺利安装,但是由于开源环境的特点,会出现许多意料之外的情况,例如下载时间过长页面失去反应、图片无法显示等问题,可以根据具体问题寻找相应答案,对应情况排除相应问题即可。
五、Moodle2学习管理平台的优化配置
虽然Moodle已安装完毕,并顺利访问和使用,但是在实际使用过程中,还是存在许多不够完善的地方,对用户体验带来一些负面影响,需要进行一些必要的优化配置。
1.运行环境优化配置
(1)加载PHP加速模块。为了进一步提高Moodle的负载能力,还需加装一些优化和提升PHP执行效率的程序,主要加载的程序有eAccelerator,memcached和imageMagick。LNMP0.9已包含这些组件,进入目录:cd lnmp0.9-full。安装eAccelerator,执行命令:./eaccelerator.sh,按提示选择版本,回车确认;安装memcached,执行命令:./memcached.sh;安装imageMagick,执行命令:./imageMagick.sh 。这些组件在回车确认后就会自动安装并重启Web服务。
(2)针对Moodle的应用需求对服务器的运行条件进行调整,需要对PHP和Nginx进行修改。
修改php.ini文件,输入命令:vi /usr/local/php/etc/php.ini,主要修改以下这几项的参数:
upload_max_filesize=50m,允许上传文件大小的最大值;
post_max_size = 50m,指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认是8 M;
max_execution_time=600,每个PHP页面运行的最长时间值(秒),默认30秒;
max_input_time=600,每个PHP页面接收数据所需的最长时间,默认60秒;
memory_limit=30m,定义允许PHP使用内存的最大限额 ,默认是8 M;
修改nginx.conf文件, 输入命令:vi /usr/local/nginx/conf/nginx.conf,在tcp_nopush on下一行输入参数;
client_max_body_size 50m,允许上传文件大小的最大值。
2.Moodle自身的优化配置
(1)Moodle对中文的支持在2.4.2版本中已得到很大的改进,但是由于各个运行组件之间的差异,还是难免会出现问题。如果是Moodle页面出现中文乱码,可以将moodle/php文件夹内的php.ini文件中的default_charset="iso-8859-1"改为default_charset="utf-8";如果是学生的上传文件,文件名的中文部分会变为“_”, 须修改Moodle目录下的config.php文件,在该文件中添加如下参数:$CFG->unicodecleanfilename=true 。
(2)Moodle上的服务器时间如与本地时间不一致,可以通过网站管理菜单中找到位置→位置设置,将默认时区由“服务器当地时间”改为“UTC+8”。
Moodle2学习管理平台的优化配置是根据实际需要进行的,不是运行Moodle2的必要设置,可以根据需要参考使用。本文有些配置涉及系统关键文件的修改,建议先用虚拟机系统测试成熟后再应用到运行系统上。另外server版本使用命令行模式,建议使用者系统学习命令行的使用,为以后的系统管理打下基础。
六、结束语
本文对如何快速、高效、高质量地搭建Moodle2学习管理平台进行了较为详细的论述,并对运行环境和Moodle进行了优化配置,提高了运行的效率,解决了一些应用中的问题。在笔者的实践中,一台普通服务器(基本配置:P2.5G/3G/76G)承载两个教学班(每班46人)同时使用没有压力。利用本文思路搭建的Moodle学习管理平台获得了较佳的性能,如何把它用好则还需要学习Moodle的其他相关内容。
[1] 郭小锋.基于Nginx的高负载Moodle网络教学平台的构建[J].软件导刊,2008(11):166-168.
[2] 关于LNMP[EB/OL].[2012-05-25].http://lnmp.org/about.html.