• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 初中学习 > 正文

    【基于WAMP的简体中文Moodle架设与性能优化】 性能监视器汉化版2.2

    时间:2019-01-14 03:40:32 来源:雅意学习网 本文已影响 雅意学习网手机站

      【摘要】Moodle架设和性能优化是Moodle应用难点。先给出了WAMP开源平台架设方案,然后给出了简体中文Moodle 1.9.10+系统架设和性能优化方法,最后对Moodle架设进行了实践检验,是Moodle架设的第一手资料,为Moodle的应用推广提供了关键技术支持。
      【关键词】Moodle;WAMP;开源;课程管理系统;性能优化
      【中图分类号】G40-057 【文献标识码】A 【论文编号】1009―8097(2011)04―0136―04
      
      引言
      
      Moodle(Modular Object-Oriented Dynamic Learning Environment,模块化面向对象的动态学习环境)是由澳大利亚教师Martin Dougiamas主持开发的免费开源的课程管理系统(CMS),是目前世界上应用最广泛的网络教学平台之一[1]。
      根据Moodle官方网站的统计数字[2],截止2011年5月20日,已有212个国家和地区,54436个注册站点在使用Moodle,形成了全球教师学习应用Moodle的热潮。根据世界著名的教育软件评估中心(Centre for Learning and Performance Technologies)的最新评选,在2010年世界学习工具和教育软件的排序中,Moodle在全部教育软件中排序第十位,在课程管理系统类中排在第一位。这反映了Moodle强大的教学功能越来越受到人们的好评[3]。
      由于Moodle采用开源平台,各种部件版本多样且配置复杂,Moodle架设成为应用难点;高并发性是Moodle访问的重要特征,未经优化就不能有效使用。为了让Moodle在我国尽快应用普及,本文结合作者多年对WAMP开源平台的研究成果[4],提供了一套基于WAMP平台的简体中文Moodle系统架设的完全解决方案,是国内的第一手资料。
      
      一 架设WAMP平台
      
      1 定义
      安装Moodle前,需先要架设好WAMP 平台。WAMP平台是指Windows运行环境下的免费开源软件组合Apache+MySQL+Perl/PHP/Python,是Moodle系统运行的基础平台[5]。根据以下方案架设的WAMP平台,适用于Moodle 2.0,也适合Moodle 1.9.10+及以下所有版本。WAMP平台如图1。
      
      2 选型
      WAMP架构各部件升级速度快,版本多样。如果选型不当,极易造成WAMP平台运行不稳定、效率低下甚至崩溃。大量应用经验表明,MySQL 5.1.53、 Apache 2.2.17 和PHP 5.2.0是架构WAMP的首选。
      3 全局编码选择
      WAMP架构各部件对文字的编码必须采用同一套标准才能确保相互之间正确交换数据。由于AMP具有跨平台特征,所以,MySQL数据库、Apache服务器、PHP模块、PHP程序和客户端浏览器应当采用UTF-8编码来对文字进行编码和解码。UTF-8编码包含了世界上所有的文字,也是Linux操作系统默认的编码方式。
      4 部件间的连接
       通过在Apache配置文件httpd.conf最后加上两行命令,让Apache知道PHP模块的安装路径:
      PHPIniDir "C:\Program Files\PHP\"
      LoadModule php5_module "C:\Program Files\PHP
      php5apache2_2.dll"
      通过在Apache的mime.types文件最后加上这两行命令,让Apache去执行文件扩展名为“php”程序,而不是让客户端浏览器去下载*.php程序:
      application/x-httpd-php php
      application/x-httpd-php-source phps
      而PHP通过安装MySQLi扩展(改进的MySQL驱动)来与MySQL数据库通信。
      
      二 架设Moodle
      
      1 版本选择
      2010年11月25日,经过全球数百程序员两年半时间的努力,Moodle 2.0正式发布。这就使得目前有Moodle 2.0和Moodle 1.9.x两套系统在保持更新。实验证实,Moodle 2.0对WAMP平台版本和客户端浏览器要求太高,对各版本的IE兼容性不好。而目前1.9.10+已十分成熟稳定,因此,现阶段应用Moodle,1.9.省略/downloads/上直接下载Moodle标准安装包(Standard Moodle packages)1.9.10+后,解压缩到Apache的web根目录下,再需在http://download.省略/lang16/中下载简体中文语言包(Chinese(Simplified))zh_cn_utf8.zip解压缩在Moodle的lang文件夹内,最后在浏览器地址栏中输入http://127.0.0.1后,就会自动安装。安装时,注意把Moodle数据目录放在其它盘,如D盘。在规划磁盘时,D盘应当划分得足够大,以便存储课程中不断增长的上传文件。
      3 设定访问IP
      由于Moodle只支持一个IP地址,安装完后,需要立即设置访问Moodle的IP地址,才能正确运行。如果申请的IP为http://61.164.87.150:5481,那么,需将安装根目录config.php文件中$CFG->wwwroot="http://127.0.0.1"修改为$CFG->wwwroot = "http://61.164.87.150:5481"。如果安装Moodle的服务器没有外网IP,那么,必需要将该IP设置为服务器的内网IP地址。
      4 简体中文问题的修正
       Moodle1.9.x针对简体中文存在三个常见的问题,可相应采取如下三种修正方案:
       (1)有些地方汉化不妥当或遗漏,可直接打开Moodle安装目录下的lang\zh_cn_utf8文件夹内去修改moodle.php等相应文件;
       (2)对于上传文件名不能包含汉字,可采取把文件主名修改成时间戳+0~32768随机数+扩展名的方法,这样同时解决了文件名冲突,如上传test.doc后,会修改为形如1304062173_28055.doc的文件名。只需把下面这块代码拷贝在 moodle安装目录下lib\uploadlib.php文件的 if (move_uploaded_file($this->files[$i]["tmp_name"], $destination."/".$this->files[$i]["name"]))语句上方:
      $parts = explode(".", $this->files[$i]["name"]);
      if (count($parts) > 1) {//存在扩展名
       $extension = ".".array_pop($parts);
       $name = implode(".", $parts);}
      else{
       $extension = "";//扩展名为空字符串
       $name = $this->files[$i]["name"];}
      $this->files[$i]["name"]=time()."_".rand().$extension;
       (3)针对首页日历上出现乱码“2011骞”的修订方案,解决办法:先用记事本打开Moodle安装目录下的lang\zh_cn_utf8\ langconfig.php,把该文件中的“简体中文”四个字修改为“Chinese (Simplified)”。再单击“文件-另存为”菜单,以ANSI编码方式保存该文件。
      5 使用SMTP方式发送邮件和Moodle Cron服务
      SMTP方式发送邮件提高了Moodle的交互性。admin用户登录Moodle,在“网站管理-服务器-邮件”中设置第三方SMTP服务器信息后,Moodle就可通过该服务器来方式发送邮件,而不必在本机安装SMTP服务器。
      由于邮件不会自动发送出去,所以, Windows中可以安装Moodle Cron服务来自动执行邮件发送任务。可到http://www.省略/vread-187.省略//admin/cron.php的URL即可。
      
      三 优化Moodle性能
      
      很多研究者怀疑WAMP架构的性能,提出应当把Moodle架设到象LAMP架构这样的全开源环境中去[6]。其实Moodle访问慢的主要原因在于缺少系统优化。针对Moodle系统,主要从以下几方面进行性能优化:
      (1)尽量提高服务器硬件速度与容量。CPU一般采用多核心的,内存3.5GB以上。
      (2)根据实际情况调整MySQL,可不定期通过show variables和show status命令分别查看MySQL变量设定值和当前值,主要调整MySQL缓存,使其达到最佳性能[7]。修改MySQL的配置文件my.ini,包括增加并发连接数max_connections,增大查询缓冲区query_cache_size,增大打开表缓冲table_cache,增大线程缓冲thread_cache_size,增加innodb数据库引擎的表缓冲池innodb_buffer_pool_size到物理内存的50%~80%。可以在MySQL的命令行客户端中通过使用show variables来观察MySQL变量设定值和使用show status命令来观察MySQL变量当前值,通过观察,动态调整MySQL各项参数,以使MySQL性能达到最优化。应当主要观察以下几个状态值:
      Uptime:MySQL服务器运行时长,计量单位为秒;
      Max_used_connections:MySQL服务器已产生的最大并发连接数;
      Open_tables:当前打开表的数量,这个值应当小于table_cache设置;
      Qcache_free_memory:查询缓存中的空闲内存。
      Qcache_hits:每次查询在缓存中命中时就该值增大。
      Qcache_inserts:每次插入一个查询时就增大。
      Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。
      (3)修改PHP配置文件php.ini,包括延长会话生存周期session.gc_maxlifetime来增加系统的稳定性;增加memcache内存缓冲扩展php_memcache.dll,再在Moodle的“网站管理-服务器-性能-缓存类型”中使用memcached内存缓冲模式,这样,moodle对象将缓存在内存中,直接减少了对外存的访问次数,这将大大提高moodle访问速度。
      (4)在Apache中使用MPM多路处理模块提高Apache性能,使moodle能应对多达上千的访问高峰[8]。在Windows中,mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两条指令来优化Apache性能。使用WinNT多路处理模块MPM后,Apache在Windows操作系统中只有一个父进程httpd.exe(监控进程),父进程再会启动一个子进程httpd.exe(工作进程)。父进程在创建完子进程后,把80端口的监控权转交给子进程,而此时父进程主要监管子进程运行状态,子进程则直接监听80端口。子进程在生成时会一次性创建ThreadsPerChild个线程(以后不再创建新线程,所以,这个数值要足够大,以便可以处理可能的请求高峰,但最大值不能超过1920,一般300~500为宜)。子进程(工作进程)接到访问请求后,将该请求交由线程去处理。在子进程的生命周期内,子进程处理完MaxRequestsPerChild个请求后,子进程将会被父进程杀死,并释放所占资源,然后会重新创建新的子进程和相应线程。如果 MaxRequestsPerChild设为0,父进程(监控进程)则永远不会将子进程(工作进程)杀死。下面是error_2011_04_12.log 日志中MPM启动信息:
      Apache/2.2.17 (Win32) PHP/5.2.0 configured -- resuming normal operations
      Server built: Oct 18 2010 01:58:12
      Parent: Created child process 8588
      Child 8588: Child process is running
      Child 8588: Acquired the start mutex.
      Child 8588: Starting 1920 worker threads.
      Child 8588: Starting thread to listen on port 80.
      (5)将KeepAlive设置为On,允许持续HTTP连接。一方面,可以减少TCP连接建立和关闭的次数,从而节约了CPU时间和TCP协议控制块消耗的内存;另一方面,在一次TCP连接上就可以实现HTTP请求和应答的流水线作业,这意味着客户端程序可以不必等待应答就可以连续发出多个请求,减少了系统延迟,提高了单个TCP连接的利用率[9]。
      (6)按日期存储Apache错误日志和访问日志文件[10]。Apache默认将错误日志和访问日志以追加方式分别保存在logs/error.log和logs/access.log文件中,使得这两个文件尺寸会不断增大,从而影响Apache服务器运行效率,直至写满磁盘。解决办法:1)在D盘根目录下新建日志存放目录D:\ApacheLogs;2)将httpd.conf文件的ErrorLog "logs/error.log"和CustomLog "logs/access.log" common修改为:ErrorLog"|bin/rotatelogs.exe D:/ApacheLogs/error_%Y_%m_%d.log 86400 480"和CustomLog "|bin/rotatelogs.exe
      D:/ApacheLogs/access_%Y_%m_%d.log 86400 480" common,这样,Apache就会每天产生两个名如“error_2011_04_12.log”和“access_2011_04_12.log”的日志文件。
      经过性能优化,Moodle访问速度有明显提高,系统能轻松应付访问高峰。
      四 网络教学互动平台应用实例
      按以上的架设方法,笔者使用Moodle 1.9.10+系统成功架设了宁波职业技术学院电子信息工程系网络教学互动平台,网址http://61.164.87.150:5481。服务器CPU为tel® Xeon™ CPU 3.40GHz双核,内存为3.5G配置信息和WAMP平台配置如表1所示。
      
      经过三个月累计10万次访问处理表明,该网络教学互动平台各项功能都能正常使用,事件查看器中无一异常事件,系统运行稳定,服务器负载轻松,响应速度快,能轻松应付Web并发数高达1500的网络访问高峰,很好地满足了全系1500人的网络教学互动。
      
      五 结语
      
       本文先讲述了WAMP开源平台架设方案,然后再讲述了moodle 1.9.10+架设和性能优化方法,最后对moodle系统架设与性能优化进行了实证。利用本文提供的思路,在Windows上运行moodle就可以获得最佳性能。moodle 平台架设好了,要深入应用moodle,接下去的事情,还得稍加学习专门的moodle培训教材。
      
      参考文献
      [1] 曾棕根. Moodle网络课程平台[M].北京:北京大学出版社,2010:1.
      [2] Moodle统计[EB/OL].省略/stats/.>
      [3] 黎加厚:课程管理系统Moodle (魔灯)在中国的发展[EB/OL].
      [4] 曾棕根.源程序在线评测系统技术改进[J].计算机工程与应用,2011,47(4):68-71.
      [5] 丁革建,曾棕根,等.LAMP开发实践教程[M].北京:中国铁道出版社,2009:1.
      [6] 连仙枝.浅析网络教学平台Moodle的构建与应用[J].太原大学学报,2010,11(4):105-107.
      [7] 杨鹏.Linux服务器架设[M].北京:清华大学出版社,2008:532-534.
      [8] PHPChina:多路处理模块MPM. [EB/OL]
      [9] 张中庆,等.Apache源代码全景分析第1卷[M].北京:电子工业出版社,2009:385-386.
      [10]百度空间:apache日志文件每天一个文件.[EB/OL]
      
      
      The Platform Erection and Performance Optimization of Simplified Chinese Moodle Based on WAMP
      ZENG Zong-gen
      (Electronic Information Engineering Department, Ningbo Polytechnic, Ningbo, Zhejiang 315800, China)
      Abstract: Moodle erection and Performance Optimization are difficult. This paper gives the erection method of WAMP open-source platform firstly, then gives the erection and Performance Optimization method of Simplified Chinese 1.9.10+, finally, Successfully tested moodle. This paper is a first-hand information on moodle, provides key technical support for moodle application and promotion.
      Key words: moodle; WAMP; open-source; CMS; performance optimization
      
      收稿日期:2011年3月11日
      编辑:红叶

    推荐访问:简体中文 架设 优化 性能

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章