安装Moodle

来自MoodleDocs
Moten ZHang讨论 | 贡献2015年4月21日 (二) 04:05的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至:导航、​搜索

这个页面阐述了如何安装Moodle。如果你是一名行家里手,(或)急于使用Moodle请查看快速开始安装文档。

如果你只是想在本地电脑上面尝试安装Moodle,这里有为Windows系统(参阅,Windows系统完整安装包)和OSX系统(参阅,OS X系统安装包)准备的“一键”安装程序。但他们并不适用于生产服务器。

要求

Moodle主要是在Linux下使用ApachePostgreSQL/MySQL/MariaDBPHP进行开发的(有时也被称为LAMP平台)。若有疑问,但这是最为安全的组合(如若没有其他原因,这无外乎是最常用的组合)。当然也不是没有其他选择——参见下面的软件部分:

Moodle基础的要求如下所示:

硬件

  • 磁盘空间:160MB的(最小)可用空间以及尽可能大的存储空间以存储资料用。5GB大概是切合实际的最低配额。
  • 备份:备份空间(最好是在网络位置)至少要与上述磁盘空间一样大以存储你的备份资料。
  • 内存:最少要256MB,强烈建议1G以上内存。一般的经验规则告诉我们Moodle使用1GB的内存可以支持10到20名并发用户,但是这会根 据你所使用的特定的硬件、软件组合及使用方式的不同而改变。“并发”指的是同一时间在内存中的网络服务器进程(如,用户在几秒钟内在网页上与系统进行交互 的行为)。显而易见,这并不是在说已登录到系统内的用户数。

软件

  •  操作系统:任何软件都需要运行于操作系统之下;尽管选择什么样的操作系统很大程度上依赖于对性能的要求及对操作系统知识、技巧的掌握程 度。Linux和Windows是最常见的选择(当然他们都能得到很好的支持)。如果你可以自由选择,Linux普遍被认为是最佳平台。Moodle会在 Debian, Ubuntu, CentOS, RedHat, Windows 7/2012 and Mac OS X等操作系统上进行定期测试。
  • 网络服务器主要是Apache。其他常见Web服务器(IIS, lightttpd, nginx, cherokee, zeus and LiteSpeed)上没有进行过完整测试(或不能完全支持),但应可以正常工作。Moodle将来会谢绝把Moodle安装在除上述之外的其他网络服务器上。网络服务器理应正确配置以服务于PHP文件。网络服务器的版本虽没有严格要求,但最好使用最新版本来建设站点。
  • PHP——当前Moodle要求的最低版本是5.3.3。数个扩展需要启用;查看更多详情参阅PHP页面。如若缺失任何必须的扩展,安装程序会在环境检查中暂停。如果可能的话,推荐使用PHP 5.5及内置的OPcache(如若无效,在环境检查的时候可以直接忽略它)。
  • 数据库:数据库开发以MySQL和PostgreSQL为主,两者均通过了全面地测试并能够获得丰富的文档支持。MSSQL也可全面支持(需要注 意的是,自选插件可能并没有在MSSQL上进行测试),但是文档及在线帮助不及MySQL或PostgreSql那样全面。Oracle不能完全支持,也 不推荐使用它。在使用MySQL(更丰富的文档)或PostgeSQL(更好的稳定性/性能)时若有疑问,你可能会用到适用于当前数据库的PHP扩展(可 能需要对其进行配置):
    • MySQL —— 最低版本 5.1.33
    • MariaDB —— 最低版本 5.3.5 (随时准备替换Oracle公司的MySQL)
    • PostgreSQL —— 最低版本 8.3
    • MSSQL —— 最低版本 9.0
    • Oracle —— 最低版本 10.2 (不推荐)
  • 安装Ghostscript以便可以对作业中的PDF文件进行批注。
  • 可访问Moodle的浏览器最低版本:当前的火狐,IE9,Safari 6,当前的Chrome 11(低版本浏览器虽可正常访问,但不保证所有功能可正常工作)。

配置你的服务器

如果你只是想模拟一下Moodle,个人电脑就足够了。在安装基础服务器软件的时候会根特定的选择产生很多种可能性。一些链接及忠告可在Installing AMP里找到。

如果你正在使用托管的服务器,这一切你都应该着手去做。然而,(尤其是在虚拟主机上)确保你理解或能够找到如何修改PHP配置(如,文件上传大小的限制)的方法。这些在主机托管商之间都有很大的出入。

下载并复制文件到正确的位置

重要:时至今日,有很多地方都可以下载到Moodle源码,强烈建议你从moodle.org那里下载。如果运行中出现什么问题,那将会很容易得到帮助与支持。

有两个选择:

  • http://moodle.org/downloads下载你所需的版本,然后解压……
  • 或者从Git库里下载源码(建议开发人员使用Git下载,而且升级起来也很简单):
    • $ git clone -b MOODLE_27_STABLE git://git.moodle.org/moodle.git 

上诉命令行语句可以完整复制Moodle知识库,然后切换为2.7的稳定版本(每周最新生成的)。有关于此更为全面的讨论请参见管理员使用Git指导

输入以上语句之后应该会得到一个包含若干文件及文件夹的名为moodle的路径。

可以将整个moodle文件夹放入Web服务器的文档目录,这种情况下网站将会被定位到http://yourwebserver.com/moodle,或者也可以复制所有内容(不包含moodle文件夹)直接放到Web服务器的文档目录,这种情况下网站将会定位到看起来更为简单的http://yourwebserver.com。如果你不是十分确定源码该往哪放,请查阅系统或(和)Web服务器的相关文档。

提示:如果你想把下载到本地的源码再上传到服务器上,如果可能的话,请先把本地的源文件打包上传然后在服务器上进行解压缩(检查你的文件管理器)。如若出错,仔细查看FTP的处理过程并找出错误或丢失的文件。

  • Moodle文件的安全:确保Web服务器用户对文件没有编辑权限是至关重要的。例如,在Unix/Linux(作为root用户)上应该做以下改动:
# chown -R root /path/to/moodle
# chmod -R 0755 /path/to/moodle
# find /path/to/moodle -type f -exec chmod 0644 {} \;
(文件属于管理员/超级用户,且只能由他们来编辑——其余所有人则只有阅读权限) 如果你想使用内置的组件安装器,你需要给Web服务器用户开放特定路径的编辑权限。当你的服务器支持ACL,强烈建议你使用它,在Apache服务器上以用户“www-data”为例,那么你需要:
# chmod -R +a "www-data allow read,delete,write,append,file_inherit,directory_inherit" /path/to/moodle

创建一个空的数据库

在接下来的安装过程中需要创建一个全新的、空的数据库。为了最后的安装步骤能正常进行,还需注意下面的信息:

  • dbhost —— 数据库服务器名。如果数据库和Web服务器安装在同一台机器上,数据库地址可能是localhost,否则是数据库服务器名
  • dbname —— 数据库名。随意为其命名,如:moodle
  • dbuser —— 数据库用户名。随意为其分配名称,如,moodleuser——但请不要用root/superuser等帐号。在满足需求的情况下,创建一个适当的最低权限的帐号
  • dbpass —— 上述用户名的密码

如果你的站点托管在其他主机服务商,你需要找到可操作数据库的以Web为基础的管理员页面,你可以在控制面板那里找到它(或咨询你的管理员)。对其余人或想要知道详尽说明的人来说,请参阅你所选数据库服务器的相关页面:

  • PostgreSQL
  • MariaDB
  • MySQL
  • MSSQL
  • Oracle (有问题,不完全支持)

创建数据目录

Moodle需要用目录来存储所有的文件(站点所有的上传文件,临时数据,缓存,会话数据等等)。Web服务器对此目录有可写权限。在较大的系统上,配置此目录时需要根据使用情况考虑为其分配多大的可用磁盘空间。

如若为此目录使用较为缓慢的方式(如,NFS)进行数据缓存,则可能会出现性能问题。仔细阅读性能建议并考虑使用如memcached的缓存方式。

重要:此目录一定不能通过web页面进行访问。如若如此,这将会是一个严重的安全漏洞。不要试图把它放在web根目录下,也不要放在Moodle程序的目录下。如若如此,Moodle将不能进行安装。除了方便,却一无是处。

下面介绍了在Unix/Linux下创建此目录并授予服务器上任何人可写权限的例子。此举仅适用于Moodle的服务器为非共享的。与你的服务器管理员探讨更为合理的权限管理方式,即只允许Web服务器用户访问这些文件。
# mkdir /path/to/moodledata
# chmod 0777 /path/to/moodledata
如果服务器支持ACL,那么推荐你按照下面的方式设置权限,在Apache服务器上以用户“www-data”为例:
# chmod -R +a "www-data allow read,delete,write,append,file_inherit,directory_inherit" /path/to/moodledata
如果你计划通过命令行执行PHP语句来设置权限,那么请为当前用户根据下面的语句设置同样的权限:
$ sudo chmod -R +a "`whoami` allow read,delete,write,append,file_inherit,directory_inherit" /path/to/moodledata

确保moodledata在Web目录里的安全

如果你不得不把"moodledata"放在托管服务器的Web可访问的目录下。通过在“moodledata”目录下创建.htaccess文件可能会确保安全。但这并适用于所有系统——咨询你的服务商/管理员。名为.htaccess的文件只需包含以下寥寥数语:
order deny,allow
deny from all

开始安装Moodle

是时候运行安装程序了,安装程序会为Moodle创建数据库表并配置你的站点。推荐使用命令行的方式来安装Moodle。如果因为别的什么原因(如,Windows服务器)不能使用命令行来安装,以Web为基础的安装方式也是可行的。

命令行安装

最好是作为当前系统的Web用户时才运行如下命令行。你需要知道当前系统的Web用户是什么——参阅你的系统文档(如,Ubuntu/Debian是is 'www-data', Centos是 'apache')。

  • 运行命令行的例子 (作为root —— 用'www-data' 替代你的web用户):
# chown www-data /path/to/moodle
# cd /path/to/moodle/admin/cli
# sudo -u www-data /usr/bin/php install.php
# chown -R root /path/to/moodle
chowns命令允许脚本创建一个全新的config.php配置文件。使用下述命令语句可以找到更多信息:
# php install.php --help
安装过程中还会遇到本页所没有提及的其他设置选项——如果不确定该填什么,请接受默认选项。获取更多相关信息请参阅通过命令行来管理网站

以Web为基础的安装

如需通过Web进行安装,只需通过浏览器访问Moodle主页地址即可。

安装过程将会带你浏览数个页面。其中需要你确认版权信息、数据库是否已经安装完成,并提供详尽的管理员帐号信息及站点信息。数据库的创建过程需要一些时间——请耐心等待。最终你会停留在Moodle首页上面,首页上会显示邀请按钮邀你创建一门课程。

很有可能会要求你下载新的config.php配置文件并上传到服务器上——只需按照屏幕上指引来做就好了。

最终配置

设置Moodle里的内容

在站点系统管理员界面(可以从系统管理员版块的站点管理员标签进入)有数个选项需要选择。下面是你可能想要检查的较为重要的几个选项:

  • 管理> 站点管理 > 插件> 消息输出 > 邮件:设置SMTP服务器,如有必要还需设置认证方式 (这样Moodle就可以往外发送邮件了)。站点支持的联系方式也可以在此页面进行设置
  • '管理> 站点管理  > 服务器 > 系统路径:为du、dot及aspell二进制设置路径
  • '管理> 站点管理  > 服务器> HTTP:如果服务器开启了防火墙,那么有可能需要你在“Web代理”部分设置你的代理证书
  • '管理> 站点管理  > 位置 > 更新时区: 更新时区可以保证网站的时区信息是最新的

剩余的任务

  • 配置Cron:Moodle的后台任务(如,发送论坛邮件,执行课程备份)可以通过设置某一天的固定时间执行脚本来完成任务。这就是所谓的cron脚本。请参阅Cron指导说明
  • 设置备份:参阅站点备份课程自动备份
  • 检查邮件系统是否正常工作:创建一个包含有效邮箱的测试用户,然后给测试用户发信息。检查测试用户是否能收到信息?如若不能,检查相关配置:管理> 站点管理 > 插件> 消息输出 >邮件'。不要跳过这一步(提示:邮件用于恢复遗忘的密码,甚至包括管理员的账户密码)
  • 确保站点安全:阅读安全建议

安装已经完成

  • 创建一门全新的课程:现在你可以创建课程了。:)

 

如果出现问题……

不妨先尝试用下面的方案试着解决问题:

  • 查验安装FAQ
  • 仔细检查文件权限。核验Web服务器是否有读取(不是写入)Moodle程序文件的权限?核验Web服务器是否有读取和写入Moodle数据目录(moodledata)的权限?
  • 检查数据库权限。核验是否按照配置要求赋予了数据库用户正确的权利和权限(尤其是Web服务器和数据库服务器不在同一台电脑上的时候)?
  • 手动创建配置文件(config.php)。复制config-dist.php(位置在Moodle程序的根目录)文件内容到config.php里去,然后在config.php文件里编辑数据库/站点信息。安装程序会从正确的地方继续进行。
  • 一旦config.php文件创建成功(参考上一步),你就可以编辑它以开启debug(在第八部分)模式。这可以给你额外的信息以追踪问题。如果有访问错误日志的权限,那么查阅它也是一个好办法。
  • 重新检查php.ini/.htaccess文件的设置情况。配置项(如,内存限制)设置的合适吗?是否正确编辑了php.ini/.htaccess文件?更改配置之后是否重启(如有必要)了Web服务器?
  • 执行安装程序之前,是否向源码添加了非核心(可选)的插件、主题或其他代码?如若如此,移除它然后再试一下(非核心的内容可能会引起系统崩溃或不兼容)。
  • 论坛的安装问题版块阐述你遇到的问题。列出你所使用的软件版本;并说明你做了什么,发生了什么及显示的错误信息(如果有的话);最后试着解释你都做了什么来解决这些问题。不能什么都不说明,即使是空白页也是问题的一种展示形式。

平台特殊说明

注意:下面多数信息多由社区提供。很多信息并未经过检查或已经过期了。请结合上面的安装说明来阅读下面的文档。

另请参阅