安装Moodle

别恐慌,耐心尝试!

这份向导解释第一次应该如何安装Moodle系统。因为包含了一些如何尝试和解决可能的web服务器的主要问题的详细步骤, 这份文档或许看起来很长而且复杂。别恐慌,一旦您知道了如何去做,您只需要化几分钟的时间就可以安装好Moodle服务器!

如果您遇到了问题,请仔细阅读这份文档 - 很多常见的问题在这份文档里都有答复。 如果您仍然还不能解决您的问题,您可以从 Moodle帮助上寻求帮助。

另一个选择是联系一家Moodle主机托管提供商, 他们完全可以替您维护Moodle系统,从而您可以忘掉这些技术问题,把精力关注在教育培训业务本身!

 

文档章节:

  1. 安装需求
  2. 下载和复制文档到正确的位置
  3. 站点结构
  4. 运行安装脚本来创建配置文件config.php
  5. 转到管理页面继续完成配置
  6. 配置守护进程
  7. 创建新的课程

 

1. 安装需求

Moodle主要在Linux系统上,使用Apache, MySQL 和 PHP 开发 ( 有时侯也把他们叫做LAMP平台 ), 同时它也在PostgreSQL数据库 和Windows XP, Mac OS X 和 Netware 6 操作系统上经过有规律的测试。

安装Moodle的软件需求如下:

  1. Web服务器软件。大部分人使用Apache, 但Moodle在其他支持PHP的web服务器下也工作的很好,例如 Windows平台下的IIS。
  2. PHP 脚本语言 (版本 4.1.0 或更高)。 PHP 5 从Moodle 1.4开始也被支持。
  3. 一个运行中的数据库:MySQLPostgreSQL 被完全支持也推荐和Moodle一同使用。

大多数的web主机缺省就支持这些。 如果您使用的主机托管服务商不支持这些特性,问问他们为什么, 并且考虑为自己找一个其他的托管服务商。

如果您期望在自己的计算机上运行Moodle,而所有的这些看起来有点使人畏惧, 请查看我们的指南: 安装 Apache, MySQL 和 PHP。 它提供了详细的在大多数流行的平台上安装这些软件的指导。

 

2. 下载这些文件并复制到正确的位置

有两个途径可以获得Moodle,作为一个压缩包或通过CVS。 这在下载页面有详细的解释 : http://moodle.org/download/

在下载和解压安装包, 或从CVS中检出安装文件后, 您将看到一个叫做 "moodle" 的目录,包含了很多其他的文件和子目录。

您可以把整个目录都复制到您的web服务器主文档目录, 这种情况下Moodle站点可以通过http://yourwebserver.com/moodle地址访问, 或者您可以拷贝moodle目录下所有的文件到主服务器文件所指的目录, 在这种情况下Moodle站点通过简单的URL访问 http://yourwebserver.com

如果您下载Moodle到您本地的计算机,然后上传到您的web服务器上。建议您上传整个压缩包到服务器上,然后在服务器上解压缩文件。主机托管的管理界面象Cpanel这样的系统允许您通过 "文件管理" 的功能解压。

 

3. 站点结构

您可以安全的跳过这个章节,但这里有关于Moodle目录内容的一个快速摘要,来帮助您 了解它:

config.php - 这里包含了系统的基本设置。这个文件并不包括在Moodle安装包里 - 您将在安装过程中创建它。
install.php - 通过这个安装脚本您可以创建config.php
version.php - 定义当前Moodle代码的版本号
index.php - 站点的首页

 

4. 运行安装脚本来创建config.php配置文件

要运行安装脚本 (install.php), 只需要在浏览器中输入您的Moodle站点主URL,或直接访问 http://yourserver/install.php

(安装程序将尝试设置一个会话 cookie到您本机的浏览器。如果您看到您的浏览器弹出一个警告窗口,请确认您的浏览器设置允许接受cookie!)

Moodle将会检测需要的配置并且带领您通过一些界面来创建一个新的 config.php. 配置文件。在安装程序的最后,Moodle会尝试写入配置文件到正确的目录,如果不行您可以通过一个按钮下载它并上传到服务器上的恰当的目录中。 另外,您也可以通过按一个按钮来从安装程序下载 config.php ,并且将其上传到服务器上 Moodle 的主目录。

在过程中安装程序会测试您服务器的环境,并且给您如何修复这些问题的建议。对于大部分的常见问题这些建议是很有效的,但如果您遇到麻烦,看看下面这些关于常见问题的详细信息。

4.1 通用的Web服务器设置

首先,确认您的web服务器设置使用 index.php 作为默认的页面 (或许还需要设置 index.html, default.htm 等等)。

在Apache中,通过使用在 httpd.conf 文件中的 DirectoryIndex 参数。 通常设置请参照下面的命令:

DirectoryIndex index.php index.html index.htm 

只需要确认 index.php 在这个列表中 (为了有效,推荐将其作为列表中的第一个)。

第二, 如果您使用 Apache 2, 那么您需要打开 AcceptPathInfo变量, 这允许脚本传递参数,例如 http://server/file.php/arg1/arg2。 这是一个允许资源之间的相对链接的基础,它提供了使用您的Moodle站点的用户一个性能上的增强, 您可以打开这个选项通过添加这些行到您的 httpd.conf 文件。

AcceptPathInfo on 

第三, Moodle 需要激活一些 PHP 的配置参数才能开始工作。 在大多数的服务器上,这些已经是缺省的设置。 然而,一些 PHP 版本(包括一些最近发布的版本)或许采用了不同的设置。 这些变量定义在PHP的配置文件(通常叫做 php.ini):

magic_quotes_gpc = 1    (推荐但非必须)
magic_quotes_runtime = 0    (必须)
file_uploads = 1
session.auto_start = 0
session.bug_compat_warn = 0
  

如果您不能修改服务器上的 httpd.conf 或 php.ini, 或者您安装Moodle的服务器同时安装了需要其他配置的程序, 那么无需担心,您通常可以覆盖缺省设置。

要完成这个,您需要创建一个叫做 .htaccess 的文件在Moodle服务器的主目录下, 并包含下面这些行。 这仅对 Apache 服务器有效,并且仅当 Overrides(覆盖)设置在主配置文件中被允许。

DirectoryIndex index.php index.html index.htm

<IfDefine APACHE2>
     AcceptPathInfo on
</IfDefine>

php_flag magic_quotes_gpc 1
php_flag magic_quotes_runtime 0
php_flag file_uploads 1
php_flag session.auto_start 0
php_flag session.bug_compat_warn 0

您也可以做一些像定义允许的最大上传文件大小的设置:

LimitRequestBody 0
php_value upload_max_filesize 2M
php_value post_max_size 2M
     

最容易的做法是从lib/htaccess 下拷贝一个范例文件,然后修改成为符合您的设置,它包含了更进一步的设置指令。 作为范例,在Unix脚本环境下:

cp lib/htaccess .htaccess

 

4.2 创建一个数据库

您需要创建一个空白的数据库(例如 "moodle") 在您的数据库系统上, 同时,设置一个数据库用户 (例如 "moodleuser") 能够访问您所创建的数据库 (您可以设置该用户只能访问此数据库)。您也可以使用"root"用户如果您在一个测试服务器上, 但不推荐您在生产环境使用这种方式; 如果黑客发现了您的密码, 那么您整个数据库系统都会有危险而不是仅仅一个数据库。

如果您使用主机托管服务,那通常会有一个web的管理界面允许您来创建数据库。

Cpanel 系统是其中一个常见的主机托管管理系统。要在Cpanel中创建数据库,

  1. 点击 "MySQL 数据库" 图标。
  2. 输入 "moodle" 在数据库字段并点击 "添加数据库"。
  3. 输入用户名和密码 (不是您目前正在使用的主机托管帐号)在相应的位置 并点击 "添加用户"。
  4. 现在使用 "添加用户到数据库" 按钮来给新用户帐号 "ALL" 权限到新的数据库。
  5. 注意用户名和数据库或许被加上您的Cpanel 帐号作为前缀。当输入这些信息到Moodle安装程序时,注意使用全称。

如果您能使用Unix命令行,那么您可以通过下面这些命令行来完成同样的工作。

这是一些范例的Unix MySQL命令行:

   # mysql -u root -p
   > CREATE DATABASE moodle; 
   > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.* 
           TO moodleuser@localhost IDENTIFIED BY 'yourpassword'; 
   > quit 
   # mysqladmin -p reload
    

这是一些PostgreSQL的范例代码:

   # su - postgres
   > psql -c "create user moodleuser createdb;" template1
   > psql -c "create database moodle;" -U moodleuser template1
   > psql -c "alter user moodleuser nocreatedb;" template1

 

4.3 创建一个数据目录

Moodle也需要您服务器上的一些硬盘空间来存储上载的文件,例如课程文档和用户的图片。

Moodle安装程序很努力的尝试为您创建这个目录,但是如果安装程序不能创建这个数据目录,您需要自己手工来创建它。

从安全的方面考虑,这个目录最好不能直接从Web目录访问。 最简单的方法是把它放在web目录之外,但如果您必须把它放在web目录下,您需要在创建一个叫 .htaccess 的在数据目录下,包含这一行:

deny from all
AllowOverride None

要确认Moodle能够保存上传的文件到这个目录,检查web服务器软件 (例如 Apache) 具有读、写和执行的权限在这个目录中。

在Unix机器上,这意味着设置目录的拥有者给用户 "nobody" 或 "apache",然后给用户读、写和执行的权力。

在 Cpanel 系统,您可以使用 "文件管理(File Manager)" 来找到这个目录,点击它,然后选择 "更改授权(Change Permissions)"。 在很多 共享主机的托管服务器,您可能需要限制所有的文件访问到您所在的 "用户组" (要防止其他的web主机用户查看或修改您的文件), 但提供全部的读/写权限给另外的人 (这允许您的web服务器访问您的文件)。

跟您的服务器管理员联系,如果您设置安全性时碰到问题。特别但一些站点使用叫做 "Safe Mode" 的PHP特性时,可能 需要 管理员来为您创建这个目录。

5. 转到管理页面继续配置

但基本的 config.php 在第一步被创建之后,尝试访问您的站点首页,您将被定位到 "管理" 页面完成后续的配置操作。

但您第一次访问管理页面,您将看到一个GPL "shrinkwrap" 协议,您必须接受这个协议才能继续完成下一步的设置。

现在 Moodle 将开始设置您的数据库并且创建数据表来存储数据。 首先,主要的数据库表格将要创建。将看到一系列的SQL语句状态跟随着状态消息(绿色或红色)的,看起来像这样:

CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default '', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM

成功

...等等同样地,跟随着: 主数据库被成功地设置。

如果您看不到这些,那么一定是数据库或您定义在config.php中配置设置有问题。 检查 PHP 没有启用限制的 "安全模式(Safe Mode)" (商业的web服务主机有时候会启用安全模式)。 您可以检查 PHP 的变量设置来创建一个小文件,包含 <?php phpinfo() ?> 并且从浏览器来查看它。 检查所有的这些并再次尝试这个页面。

拖动到页面的底部,点击 "继续" 链接。

您现在可以看到一个表单,在这里您可以定义更多的配置变量给您的安装, 例如:缺省的语言, SMTP 主机以及其他参数。 不要担心现在设置不好所有的变量 - 您以后可以随时地返回到这个页面和更改这些设置使用管理页面。 缺省的配置项目是常用的和安全的给大多数站点。 向下拖动到页面的底部,并且点击 "保存更改"。

如果 (也只是如果) 您发现自己在这个页面上碰到问题,不能够继续, 那么您的服务器或许遇到了一个我叫做 "buggy referrer" 的问题。 这很容易修复: 只需要关闭 "安全表单(secureforms)" 设置,然后,再尝试继续。

接下来,您将看到好几个打印出许多状态信息的页面,他们设置各种Moodle模块需要的数据表单。跟以前一样,他们应该都是显示为 绿色的。

滚动到页面的底部,点击 "继续" 链接。

下一个页面是一个允许您定义Moodle站点和首页参数的表单。例如:名称、格式、描述等等。 填写这个表格 (您以后可以返回这个页面并且修改它),然后,点击 "保存修改".

最后,您将被要求创建一个顶级管理员,供以后访问管理员界面。 填写详细的信息使用您的名字、email地址等等,然后点击 "保存修改"。并不是所有的字段都是需要的, 但如果您忽略了任何重要的字段,您将被要求重新输入这些字段。

确保您记住了您选择的管理员账号的用户名和密码, 他们在将来访问管理页面是必须的。

(如果您的安装因为任何原因中断,或者由于某种系统错误阻止您登录到系统使用管理员账号, 您通常可以使用缺省的用户名登录 "admin", 口令是 "admin".)

一旦顺利结束,您将被返回到您的新站点的首页! 注意,管理链接出现在页面的左手边 (这些项目也出现在一个单独的管理页面上) - 这些项目只对您可见, 因为您是作为管理员用户登录的。所有您将来在Moodle要做到的管理工作,都可以通过这个页面完成,例如:

但您还没有完成安装! 还有一件非常重要的事情去做 (看下一个章节关于守护进程cron).

 

6. 设置守护进程 -- 重要!

一些Moodle的模块需要持续的检查来完成任务。 例如,Moodle需要检查讨论组以便它能够通过邮件的方式给订阅者发送拷贝。

完成这些任务的脚本放置在管理员目录下,叫做 cron.php。 然而,它自己不会自动运行,所有您需要设置一种机制让这个脚本有规律的运行 (例如:每5分钟或10分钟)。 这提供了 "触发器(heartbeat)" 所以脚本能够执行每个模块预先定义的功能。 这种规律的机制也被叫做 守护服务.

注意,运行守护进程的机器 不一定需要是跟运行Moolde的机器是同一台机器。例如, 您有一个仅提供有限服务的主机,不支持守护进程,那么您可能选择运行守护进程在一台其他的服务器上或在您家里的计算机上。 所有这些因素围绕 cron.php 文件需要被规律的调用。

这个脚本的负载不是很大,所以5分钟的间隔通常是合理的, 但如果您还担心负载的问题,您可以缩短时间间隔到15分钟或者甚至是30分钟。 但最好不要让时间间隔太长,因为延迟的邮递任务会让课程活动的速度减慢。

首先,测试脚本能够直接从您的浏览器中运行:

http://example.com/moodle/admin/cron.php

现在,您需要设置一种途径让脚本能够自动的有规律的运行。

在 Windows 系统

最简单的办法是使用这个小包 moodle-cron-for-windows.zip ,这个包使得事情变得非常简单通过安装一个小的Windows服务。运行它并且忘了它!

在主机托管服务

您的web控制面板一般会有一个页面,允许您来设置这个守护进程。例如,在 Cpanel 系统,查找一个叫做 "守护任务(Cron jobs)" 的按钮。 在那里,您可以输入一小段像下面列出这样的 Unix 命令。

在Unix下使用命令行

从命令行环境您可以使用不同的命令行程序来调用这个页面。并不是所有的在一个给定的服务器上都适用。

例如,您可以使用 Unix 工具像 'wget':

wget -q -O /dev/null http://example.com/moodle/admin/cron.php

注意,在这个范例中输出被丢弃了(输出到 /dev/null).

相同的事情使用 lynx 完成如下:

lynx -dump http://example.com/moodle/admin/cron.php > /dev/null

作为选择,您可以使用标准版本的 PHP, 编译成允许从命令行运行。 这样做的好处是,您的web服务器日志不会被固定的到 cron.php 的请求填满。 不好的地方在于您需要具有访问命令行版本php的权限。

/opt/bin/php /web/moodle/admin/cron.php

    

在Unix环境下使用 crontab 程序

Cpanel 完成这个任务所做的工作就是提供一个web接口到一个叫做crontab的Unix 工具。如果您有一个命令行环境,您可以自己设置 crontab 工具通过命令行:

crontab -e

然后,添加一个行命令像下面这样:

*/5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php

通常, "crontab" 命名将把您带入到'vi' 编辑器环境。 您按下 "i" 进入到"插入模式", 然后输入像上面给出的一行,然后,按下ESC键退出插入模式。 输入 ":wq" 您就可以保存和退出,或者退出不保存使用 ":q!" (输入时不要包含引号)。

 

7. 创建一个新课程

现在 Moodle 系统已经可以正常运行了,您可以尝试创建一个新的课程来熟悉它。

选择 "添加一个新课程" 从管理页面 (或者从主页面的管理链接)。

填写这个表单,特别要注意课程的格式。 在这个阶段您不需要太多的担心详细的课程设置项目,因为所有的课程项目 随后都可以由老师进行修改。 注意,黄色的帮助按钮在每个地方都提供相关方面的上下文帮助。

按下 "保存修改",您将被带到一个新的表单,在那里 您可以为课程指定教师。 您只能添加一个已经存在的用户帐号从这个表单 - 如果您想创建一个新的教师账号,那么可以要求教师为他们自己创建一个账号(查看login.php上的提示), 或者使用管理页面的 "添加一个新用户" 为他们创建一个。

一旦完成,课程已经准备好被定制,也能通过首页的 "课程" 链接被访问。

请查看 "教师手册" 了解课程构建 的详细信息。

 

祝您在Moodle的世界中获得一个快乐的探索旅程!

如果您喜欢 Moodle,请考虑 捐赈 来帮助我们找回我们的付出!

 

Moodle 文档

版本: $Id: install.html,v 1.4 2008/05/08 17:06:29 liling Exp $